<?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>224279</bug_id>
          
          <creation_ts>2021-04-07 08:04:12 -0700</creation_ts>
          <short_desc>OfflineAudioContext objects are leaking</short_desc>
          <delta_ts>2021-04-09 16:52:05 -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>Web Audio</component>
          <version>Safari 14</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=223380</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>224400</dependson>
          <blocked>224333</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jason">jasonlmcaffee</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>chrisguttandin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>smoley</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1747881</commentid>
    <comment_count>0</comment_count>
      <attachid>425392</attachid>
    <who name="Jason">jasonlmcaffee</who>
    <bug_when>2021-04-07 08:04:12 -0700</bug_when>
    <thetext>Created attachment 425392
iOS 14.4.2 errors after 26 calls to startRendering

Safari Desktop with latest Webkit Version 14.0.3 (16610.4.3.1.7) on Big Sur
Safari latest version for iOS 14.4.2
Safari on iOS 14.1

Hello,
I work on an application that allows users to slow down audio so they can play piano alongside of it.  
The performance of the pitchshifting done by SoundTouchJS (https://github.com/cutterbl/SoundTouchJS) degrades significantly with iOS 14.4 (confirmed on 14.4.1 and 14.4.2).  I believe iOS 14.4 has a performance degradation that affects the script processor node&apos;s onaudioprocess.
As a result, we are forced to abandon realtime processing, and opt instead to render slowed down audio with pitch correction via OfflineAudioContext (similar to HTML Audio&apos;s playRate functionality).  
We have a Single Page Application, and users may change the speed of the audio dozens of time for a given session.

We encountered a problem where the OfflineAudioContext creation starts to fail or cause the browser to crash after being called 24-60 times.

For desktop with Big Sur and latest Safari version 14.0.3, the page will either be reloaded or crash after ~60 calls to startRendering.

For iOS 14.4.2 and 14.1, calls to instantiate new OfflineAudioContext fail after ~26 calls with the error &quot;The string did not match the expected pattern.&quot;
If you get that error ~5 times, and try calling context.createBuffer, you will receive the error &quot;Channel was not able to be created&quot;.
If you refresh the page the error will immediately occur, and there does not seem to be a way to recover, other than to close the tab and open a new one.

I put together a codepen which demonstrates the issue:
https://codepen.io/jasonmcaffee/pen/GRrvLxX

```
const AudioContext = window.AudioContext || window.webkitAudioContext;
const OfflineAudioContext = window.OfflineAudioContext || window.webkitOfflineAudioContext;
const audioUrl = &quot;https://playground-assets-sean.s3.amazonaws.com/r1/00/00/00/3c/slice_59_resource_178_20210308_13h53m55s_mst.mp3&quot;;

//demonstrate that iOS starts crashing or erroring when performing offline renders more than N times.
async function main(){
  const context = new AudioContext();
  const audioBuffer = await fetchAndDecodeAudioData({url: audioUrl, context});
  for(let i = 0; i &lt; 60; ++i){
    print(`rendering ${i}`);
    try{
      const result = await renderOffline(audioBuffer); 
    }catch(e){
      print(`error rendering offline: `, e.message);
      createBuffers();
    }
  }
  print(`done rendering`);
}

//demonstrate that after receiving the error from the OfflineAudioContext creation, creation of audio buffers fail.
async function createBuffers(){
  const context = new AudioContext();
  print(`creating buffers`);
  for(let i = 0; i &lt; 1; ++i){
    try{
      const buffer = context.createBuffer(2, 44100 * 10, 44100);  
    }catch(e){
      print(`error creating buffer: `, e.message);
    }
  }
}

async function renderOffline(audioBuffer: AudioBuffer){
  let offlineAudioContext = new OfflineAudioContext(audioBuffer.numberOfChannels, audioBuffer.duration * audioBuffer.sampleRate, audioBuffer.sampleRate);
  let source = offlineAudioContext.createBufferSource();
  source.buffer = audioBuffer;
  source.connect(offlineAudioContext.destination);
  return new Promise((resolve, reject)=&gt;{
    offlineAudioContext.oncomplete = (e)=&gt;{
      let renderedBuffer = e.renderedBuffer;
      resolve(renderedBuffer);
      //attempt to cleanup in hopes it will resolve the issue (Narrator: it doesnt)
      source.buffer = null;
      cleanupSource(source);
      offlineAudioContext.oncomplete = undefined;
      offlineAudioContext = undefined;
      source = undefined;
      renderedBuffer = undefined;
    };
    source.start();
    offlineAudioContext.startRendering();//ios doesn&apos;t support promise version
  });
  
}

async function fetchAndDecodeAudioData({url, context}: {url: string; context: AudioContext}): Promise&lt;AudioBuffer&gt; {
  const response = await fetch(url, {cache: &quot;force-cache&quot;});
  const arrayBuffer = await response.arrayBuffer();
  return decodeAudioData(context, arrayBuffer);
}

async function decodeAudioData(context: AudioContext, arrayBuffer: ArrayBuffer): Promise&lt;AudioBuffer&gt;{
  return new Promise((resolve, reject) =&gt; context.decodeAudioData(arrayBuffer, resolve, reject));
}

//attempt to use a stracth buffer to force safari to release references to buffers (doesnt work for this issue)
const context = new AudioContext();
let scratchBuffer = context.createBuffer(2,1,44100);
function getScratchBuffer(){
  return scratchBuffer;
}

function cleanupSource(source: AudioBufferSourceNode | undefined){
  if(!source){ return; }
  try{
    source.stop();
  }catch(e){}
  source.onended = null;
  source.disconnect(0);
  try{source.buffer = getScratchBuffer();}catch(e){}
}

const outputEl = document.querySelector(&apos;#output&apos;);
function print&lt;T extends unknown&gt;(...params: T[]){
  const message = params.map(p =&gt; JSON.stringify(p).replace(/[&apos;&quot;]+/g, &apos;&apos;)).join(` `);
  outputEl.innerHTML += `${message}&lt;br/&gt;`;
}

main();


```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747882</commentid>
    <comment_count>1</comment_count>
      <attachid>425393</attachid>
    <who name="Jason">jasonlmcaffee</who>
    <bug_when>2021-04-07 08:05:01 -0700</bug_when>
    <thetext>Created attachment 425393
iOS 14.4.2 immediately errors after page refresh</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747928</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-07 09:52:47 -0700</bug_when>
    <thetext>&gt; I believe iOS 14.4 has a performance degradation that affects the script processor node&apos;s onaudioprocess.

That is correct, we introduced a performance regression in a very recent bugfix update that impacted ScriptProcessorNode. We have identified and fixed it but the fix has not shipped to customers yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747931</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-07 09:56:37 -0700</bug_when>
    <thetext>The &quot;Channel was not able to be created&quot; error seems to indicate we failed to allocate the buffer memory, which likely indicates we ran out of memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747934</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-07 09:58:12 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; The &quot;Channel was not able to be created&quot; error seems to indicate we failed
&gt; to allocate the buffer memory, which likely indicates we ran out of memory.

When I ran the provided codepen on macOS, I saw a banner indicating we were using too much memory and then a crash (likely due to reaching the memory limit).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747948</commentid>
    <comment_count>5</comment_count>
    <who name="Jason">jasonlmcaffee</who>
    <bug_when>2021-04-07 10:13:16 -0700</bug_when>
    <thetext>I have further narrowed down the issue to just the instantiation of the OfflineAudioContext.  Number of instantiations until you receive the error is based on the length param.  The larger the length, the sooner you will encounter the issue.  With length 4000 * 44100, iOS 14.4.2 starts throwing errors on the 2nd instantiation.  Desktop safari (Version 14.0.3 (16610.4.3.1.7)) will show the same errors as iOS &quot;The string did not match the expected pattern&quot; after ~20 iterations, then crash or reload the page.

https://codepen.io/jasonmcaffee/pen/wvgrqLb

```
const AudioContext = window.AudioContext || window.webkitAudioContext;
const OfflineAudioContext = window.OfflineAudioContext || window.webkitOfflineAudioContext;

//demonstrate that iOS starts crashing or erroring when performing offline renders more than N times.
async function main(){
  const sampleRate = 44100;
  const length = 4000 * sampleRate;
  for(let i = 0; i &lt; 60; ++i){
    print(`rendering ${i}`);
    try{
      new OfflineAudioContext(2, length, sampleRate);
    }catch(e){
      print(`error rendering offline: `, e.message);
    }
  }
  print(`done`);
}

const outputEl = document.querySelector(&apos;#output&apos;);
function print&lt;T extends unknown&gt;(...params: T[]){
  const message = params.map(p =&gt; JSON.stringify(p).replace(/[&apos;&quot;]+/g, &apos;&apos;)).join(` `);
  outputEl.innerHTML += `${message}&lt;br/&gt;`;
}

main();
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747950</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-07 10:13:56 -0700</bug_when>
    <thetext>(In reply to Jason from comment #5)
&gt; I have further narrowed down the issue to just the instantiation of the
&gt; OfflineAudioContext.  Number of instantiations until you receive the error
&gt; is based on the length param.  The larger the length, the sooner you will
&gt; encounter the issue.  With length 4000 * 44100, iOS 14.4.2 starts throwing
&gt; errors on the 2nd instantiation.  Desktop safari (Version 14.0.3
&gt; (16610.4.3.1.7)) will show the same errors as iOS &quot;The string did not match
&gt; the expected pattern&quot; after ~20 iterations, then crash or reload the page.
&gt; 
&gt; https://codepen.io/jasonmcaffee/pen/wvgrqLb
&gt; 
&gt; ```
&gt; const AudioContext = window.AudioContext || window.webkitAudioContext;
&gt; const OfflineAudioContext = window.OfflineAudioContext ||
&gt; window.webkitOfflineAudioContext;
&gt; 
&gt; //demonstrate that iOS starts crashing or erroring when performing offline
&gt; renders more than N times.
&gt; async function main(){
&gt;   const sampleRate = 44100;
&gt;   const length = 4000 * sampleRate;
&gt;   for(let i = 0; i &lt; 60; ++i){
&gt;     print(`rendering ${i}`);
&gt;     try{
&gt;       new OfflineAudioContext(2, length, sampleRate);
&gt;     }catch(e){
&gt;       print(`error rendering offline: `, e.message);
&gt;     }
&gt;   }
&gt;   print(`done`);
&gt; }
&gt; 
&gt; const outputEl = document.querySelector(&apos;#output&apos;);
&gt; function print&lt;T extends unknown&gt;(...params: T[]){
&gt;   const message = params.map(p =&gt; JSON.stringify(p).replace(/[&apos;&quot;]+/g,
&gt; &apos;&apos;)).join(` `);
&gt;   outputEl.innerHTML += `${message}&lt;br/&gt;`;
&gt; }
&gt; 
&gt; main();
&gt; ```

Thanks, this is very helpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747959</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-07 10:31:14 -0700</bug_when>
    <thetext>Indeed, the OfflineAudioContext objects are clearly leaking. I am investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747963</commentid>
    <comment_count>8</comment_count>
    <who name="Jason">jasonlmcaffee</who>
    <bug_when>2021-04-07 10:42:10 -0700</bug_when>
    <thetext>Awesome! No problem.  Glad I was able to help narrow it down.  If you can think of any work arounds, please let me know.
  
For the script processor node fix, do you know if that is part of iOS 14.5 preview?  If so, I can update to the preview, and realtime processing could be the fix.  We can just tell our customers with 14.4.x to update once it is released.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747965</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-07 10:48:02 -0700</bug_when>
    <thetext>(In reply to Jason from comment #8)
&gt; Awesome! No problem.  Glad I was able to help narrow it down.  If you can
&gt; think of any work arounds, please let me know.
&gt;   
&gt; For the script processor node fix, do you know if that is part of iOS 14.5
&gt; preview?  If so, I can update to the preview, and realtime processing could
&gt; be the fix.  We can just tell our customers with 14.4.x to update once it is
&gt; released.
&gt; 
&gt; Thanks!

I am not 100% sure but I think the script processor node fix is indeed in iOS 14.5 beta 7.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748034</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-07 13:07:33 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; (In reply to Jason from comment #5)
&gt; &gt; I have further narrowed down the issue to just the instantiation of the
&gt; &gt; OfflineAudioContext.  Number of instantiations until you receive the error
&gt; &gt; is based on the length param.  The larger the length, the sooner you will
&gt; &gt; encounter the issue.  With length 4000 * 44100, iOS 14.4.2 starts throwing
&gt; &gt; errors on the 2nd instantiation.  Desktop safari (Version 14.0.3
&gt; &gt; (16610.4.3.1.7)) will show the same errors as iOS &quot;The string did not match
&gt; &gt; the expected pattern&quot; after ~20 iterations, then crash or reload the page.
&gt; &gt; 
&gt; &gt; https://codepen.io/jasonmcaffee/pen/wvgrqLb
&gt; &gt; 
&gt; &gt; ```
&gt; &gt; const AudioContext = window.AudioContext || window.webkitAudioContext;
&gt; &gt; const OfflineAudioContext = window.OfflineAudioContext ||
&gt; &gt; window.webkitOfflineAudioContext;
&gt; &gt; 
&gt; &gt; //demonstrate that iOS starts crashing or erroring when performing offline
&gt; &gt; renders more than N times.
&gt; &gt; async function main(){
&gt; &gt;   const sampleRate = 44100;
&gt; &gt;   const length = 4000 * sampleRate;
&gt; &gt;   for(let i = 0; i &lt; 60; ++i){
&gt; &gt;     print(`rendering ${i}`);
&gt; &gt;     try{
&gt; &gt;       new OfflineAudioContext(2, length, sampleRate);
&gt; &gt;     }catch(e){
&gt; &gt;       print(`error rendering offline: `, e.message);
&gt; &gt;     }
&gt; &gt;   }
&gt; &gt;   print(`done`);
&gt; &gt; }
&gt; &gt; 
&gt; &gt; const outputEl = document.querySelector(&apos;#output&apos;);
&gt; &gt; function print&lt;T extends unknown&gt;(...params: T[]){
&gt; &gt;   const message = params.map(p =&gt; JSON.stringify(p).replace(/[&apos;&quot;]+/g,
&gt; &gt; &apos;&apos;)).join(` `);
&gt; &gt;   outputEl.innerHTML += `${message}&lt;br/&gt;`;
&gt; &gt; }
&gt; &gt; 
&gt; &gt; main();
&gt; &gt; ```
&gt; 
&gt; Thanks, this is very helpful.

Note that even if I fix the leak, this test case will still fail. The reason is that you are never yielding so JS garbage collection does not get a change to run. A better test case would use setTimeout() to make sure GC has a chance to destroy the audio contexts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748035</commentid>
    <comment_count>11</comment_count>
    <who name="Jason">jasonlmcaffee</who>
    <bug_when>2021-04-07 13:13:45 -0700</bug_when>
    <thetext>Ok, that makes sense.  I&apos;ve updated the codepen to use a setTimeout of 1ms between calls:
https://codepen.io/jasonmcaffee/pen/wvgrqLb

```
const AudioContext = window.AudioContext || window.webkitAudioContext;
const OfflineAudioContext = window.OfflineAudioContext || window.webkitOfflineAudioContext;

async function main(){
  const sampleRate = 44100;
  const length = 4000 * sampleRate;
  for(let i = 0; i &lt; 60; ++i){
    print(`rendering ${i}`);
    try{
      new OfflineAudioContext(2, length, sampleRate);
      await sleep(1);
    }catch(e){
      print(`error rendering offline: `, e.message);
    }
  }
  print(`done`);
}

async function sleep(ms: number){
  return new Promise((resolve, reject)=&gt;{
    setTimeout(resolve, ms);
  });
}

```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748051</commentid>
    <comment_count>12</comment_count>
    <who name="Jason">jasonlmcaffee</who>
    <bug_when>2021-04-07 13:49:50 -0700</bug_when>
    <thetext>iOS 14.5 beta 7 does indeed fix the performance issue with script processor node.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748130</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-07 16:20:25 -0700</bug_when>
    <thetext>Never mind Nick.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748163</commentid>
    <comment_count>14</comment_count>
      <attachid>425461</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-07 17:14:05 -0700</bug_when>
    <thetext>Created attachment 425461
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748174</commentid>
    <comment_count>15</comment_count>
      <attachid>425467</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-07 18:01:42 -0700</bug_when>
    <thetext>Created attachment 425467
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748189</commentid>
    <comment_count>16</comment_count>
      <attachid>425467</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-07 19:47:51 -0700</bug_when>
    <thetext>Comment on attachment 425467
Patch

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

Surprised there is no less-intrusive solution, but this seems to be implemented well.

&gt; Source/WTF/wtf/WeakPtr.h:126
&gt; +    explicit WeakPtr(Ref&lt;WeakPtrImpl&lt;Counter&gt;&gt;&amp;&amp; ref, EnableWeakPtrThreadingAssertions enableWeakPtrThreadingAssertions)

I would use a shorter argument name. Like shouldEnableAssertions.

&gt; Source/WTF/wtf/WeakPtr.h:171
&gt; +    template&lt;typename U&gt; WeakPtr&lt;U, Counter&gt; createWeakPtr(U&amp; object, EnableWeakPtrThreadingAssertions enableWeakPtrThreadingAssertions = EnableWeakPtrThreadingAssertions::Yes) const

Ditto.

&gt; Source/WTF/wtf/WeakPtr.h:249
&gt; +#if ASSERT_ENABLED
&gt; +    m_areThreadingAssertionsEnabled = o.m_areThreadingAssertionsEnabled;
&gt; +#endif

Seems like this is not needed. The WeakPtr we are assigning can keep its m_areThreadingAssertionsEnabled, doesn’t need to inherit it from the thing it’s getting the pointer value from.

&gt; Source/WTF/wtf/WeakPtr.h:258
&gt; +#if ASSERT_ENABLED
&gt; +    m_areThreadingAssertionsEnabled = o.m_areThreadingAssertionsEnabled;
&gt; +#endif

Ditto.

&gt; Source/WebCore/Modules/webaudio/BaseAudioContext.h:110
&gt; +    WEBCORE_EXPORT static unsigned numberOfInstances();

Seems like we should have a comment somewhere, not necessarily here, to make it clear that this is specifically for lifetime testing and not otherwise part of the interface of this class.

&gt; Source/WebCore/Modules/webaudio/DefaultAudioDestinationNode.h:36
&gt; +    DefaultAudioDestinationNode(BaseAudioContext&amp;, Optional&lt;float&gt; = WTF::nullopt);

I think we should use explicit here.

&gt; Source/WebCore/rendering/FloatingObjects.cpp:37
&gt; +    WeakPtr&lt;RenderBox&gt; renderer;

Do we need a check somewhere that WeakPtr is same size as a pointer when assertions are disabled?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748191</commentid>
    <comment_count>17</comment_count>
      <attachid>425467</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-04-07 20:12:41 -0700</bug_when>
    <thetext>Comment on attachment 425467
Patch

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

&gt; Source/WebCore/ChangeLog:73
&gt; +          BaseAudioContext now ows the AudioDestinationNode when we take care of destroying its

Nit. s/ows/owns/g.

&gt; Source/WTF/wtf/WeakPtr.h:132
&gt; +        UNUSED_PARAM(enableWeakPtrThreadingAssertions);

Need &apos;#if !ASSERT_ENABLED&apos;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748304</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-08 08:40:11 -0700</bug_when>
    <thetext>(In reply to Peng Liu from comment #17)
&gt; Comment on attachment 425467 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=425467&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:73
&gt; &gt; +          BaseAudioContext now ows the AudioDestinationNode when we take care of destroying its
&gt; 
&gt; Nit. s/ows/owns/g.

OK.

&gt; 
&gt; &gt; Source/WTF/wtf/WeakPtr.h:132
&gt; &gt; +        UNUSED_PARAM(enableWeakPtrThreadingAssertions);
&gt; 
&gt; Need &apos;#if !ASSERT_ENABLED&apos;?

I don&apos;t think it is worth the extra #ifdefs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748320</commentid>
    <comment_count>19</comment_count>
      <attachid>425510</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-08 09:24:01 -0700</bug_when>
    <thetext>Created attachment 425510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748390</commentid>
    <comment_count>20</comment_count>
      <attachid>425510</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-08 11:41:35 -0700</bug_when>
    <thetext>Comment on attachment 425510
Patch

Clearing flags on attachment: 425510

Committed r275668 (236304@main): &lt;https://commits.webkit.org/236304@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748391</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-08 11:41:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748392</commentid>
    <comment_count>22</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-08 11:42:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/76411680&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>425392</attachid>
            <date>2021-04-07 08:04:12 -0700</date>
            <delta_ts>2021-04-07 08:04:12 -0700</delta_ts>
            <desc>iOS 14.4.2 errors after 26 calls to startRendering</desc>
            <filename>ios rendering stops working after 26 renders-min.jpg</filename>
            <type>image/jpeg</type>
            <size>72140</size>
            <attacher name="Jason">jasonlmcaffee</attacher>
            
              <data encoding="base64">/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAP//////////////////////////////////////////
////////////////////////////////////////////2wBDAf//////////////////////////
////////////////////////////////////////////////////////////wAARCAqsCAADASIA
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
7yts4/asl336tl5Bl5YAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWNoMAAAAAAAAAAbGNgMAAaxoAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADGsAbOWNnILARkAAAAAAAAAAAAAAAAAATq4+VJ1cfIJA
VpoAAAAAAAAAAAAAAAAABQoMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABuTLAG5MsAbkywB
uTLAG5MsAbkywBuTLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrAG4MMAbgwwBuDDAG4MMAbgwwBuBg
AAA1gDRgDRgDRgDRgDRgDRgDRgDRgDRgDRgDRgDRgDRgDRgDRgDRgDRgDWAA2csAdBzM3vRI6Dnm
96ZvehHQc83vTN70I6Dnm96ZvehHQc83vTN70I6Dnm96ZvehHQc83vTN70I6Dnm96ZvehHQc83vT
N70I6Dnm96ZvehHROq9E5vcCAArRgDRgDRgDRgDRgDRgDRgDRgDRgDWAAAAK9Ort94enV2+8BIr0
3t94em9vvASN9N/tjfTe33gJFem9vvD03t94CRuLt7+8b6b2+8BIr03t94z03t94DBXpvb7w9N7f
eAkV6b2+8PTq7feAkb6b/bG+nV2+8BIr06u33jLLOYDBXp1dvvGYtz7AwV6dXb7w9Ort94CRXp1d
vvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w
9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq
7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33
gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CR
Xp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6d
Xb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+
8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD0
6u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort
94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feA
kV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFe
nV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1d
vvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w
9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq
7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33
gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CR
Xp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6d
Xb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+
8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD0
6u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort
94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feA
kV6dXb7w9Ort94CRXp1dvvD06u33gJFenV2+8PTq7feAkV6dXb7w9Ort94CRXp1dvvD06u33gJFe
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARf1aflYAAAyyXloAAAAAy5u3HdFl
04st54oOgyy3rhFmJzfbcHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEY+vHsXbGmdcm/qzjbGOn5bqluLOYDLLmWSTHv/BZ9c8fl
s9V5mO5v6pcbYx0BmMapjrk51XtP9tsvqlxtPDLLLmb55gFn1aflvOq9cY/vDLm2XHHuWWXM+YDZ
LLnaS9P7EyTOqdFTN3u3sTObcc+AZqknp8mvieW6pbjE4uehqzZMTrnoDNUkmeueW6uJ2zv4NWbM
Sf6LnH/gM1TjyvhGbP8ABUuZkGp5vtP9/wAFz0jM6v8A5+8Babvqk7b/AIUydbet+3QGgAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAJsziy4sUAn6utnwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHNu0uNt/8AjZLLeMXoChz0yXOe7bJ6pPb8
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AATjVOLMe6gGYvVoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMfXj2LtjTOuQWIsuZZJMe/8ABZ9c8fkFiMY1THXJzqva
f7Av6tPytFn1aflvOq9cY/vAKEyWXO0l6f2JkmdU6AuyXlqNUk9Pk18TyCxGqSTPXPLdXE7Z38Ao
RqnHlfAMsz7f7TjGqYt35Wi503OczgG6rjEnNuC7TM6c+7NX6tPn8N1fpv8AeoKGaeJ4jQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Rv6s42xjp+W6pbizmKATPVeZjub+qXG2MdFAJsvqlxtPDLLLmb55iwEXNsuOPcssuZ8xYCZm73b2
JnNuOfCgE6pbjE4uehqzZMTrnooBOrNmJP8ARc4/8UmzOLLiwGZs/wAFS5mWfV1s+FAy2ziZZz0x
OVAM1TM95vGXN2xjv/CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAET9V8fgFgAAzEznqDQAAAAAATqvE73HwC
hFkm82xP3MSyd+c9QWI0/wCXlUklvvyDQAAAAZeL4BoizEu9z5pJmTe5x3oLEXnT/eywAAAABmep
LmZBoMxMy9QaAAAAAAIvOnz+FWS4z0oNBGr/AB8wFgAAAAy3GJ3BoAAAAAAy3GJ3aACL+rT8gsAA
ZbvJ3Tq50+fwCwAAAAAAAAAAAAZbgGgAAjV/j5gLAAAABmd8ewNGZ3kaAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACObdpcbb/8bJZbxi9GWWXM
3zzGzPN/YE6ZLnPdtk9Unt+W6ZZnM5uejLn1S42xjoBq+mYm2a2yY8cN1TMZvjGN/sCbvozef5VJ
Nr1wWfTibtnEBrnpkuc93ROmWZzObnoDOtmM4xz/AMbJZc7SXp/Yyyy5nzGzN3u3sDJJnVOnYm2q
zps2ZzbjnwTPqtxtfAM075vvieCTGq+CS6bcTMpM+q3HIE3zcS79f+EmJZeOhi6bcTMrd8XPPaAz
TJZMn+fw3TmTFhv6s42xjoDLPrnj8mMapjrlu/qlxtjHQsvqlxtPAF/VM8Y28ssnq+NzVnPGduCX
HOnHuC0c6r7LTZZczfvAZdrLOu1NU30+W4zZ0kNWbjE4uegGqTF2jdPE8RlzZdufH5bM4m3HgE6f
8vNNPOrz+W6ZZnM5uehMy3bnwDJJnVOnYm2qzps2ZzbjnwTPqtxtfAMm+biXfr/xumWZ7dGYum3E
zKqZ5v7ASScdWsmd8zDQTq/TW6eJ4ZqzZZI3TnElnAJ1c6fP4LJLps7tstsxOPBqluMTi56AXfVj
2yYuc7Tv/cFlzLOSZvMxAUi3FuZteq0775mZ8AYnpuON7GST08dGybWd8/BMyYx/oGaZLJkv654v
/rdOZMWFz6pcbTwDLPqnvksk1acbNufVLjaePyXNs248AX9Wnt/6yz6p43bqzmbZ9mZs504BaedW
OkmflSbLn1TfvAZqn1afJq50+S5tlxx7t1S2zbi56AXfVJ05Zqm+m+7bLmapz2Zc3G3FBaNXOnz+
FpuczbjwDLJLps7l31SdOW6s3GJxc9Cy5lnM6AzVtiw1c6fe/ht+rExidcmqXazfFBSNfE8rTqls
2nUGapMZ69yyenPXHLdWbMSf6Lm6cY3x7Ac6ZvjaZTedNkxvy2y+mbbzGxc3G3F4yBq50+fw28yd
KWXa9iy3F6wC6d5eMMv6tPy2eq8zBZfVLjaeAZZJq042ytNzbNuPCgRZ9Wn5NXOnz+G2XMs3wy5t
07cc8AWSXTZ3bd9WPbJqluMTi56FlzLOQMXOdp3/ALhSZm8zEUCObdpcbb/8bJZbxi9P7GWWXM3z
zGzPNnwCb9N24v2XJJMMxmXM3ppzjFnzsCdMllz3rZtdU6Tc08XbrWyc29f9AybziXPv/Bvp03Pw
T1adpMzo3GZZeaB6ZZj7s1TaeZMk9U2x85bqls26AatpJOtx2ZZbxJLPf+G2WztWT1cY+QLvqkvb
NNU3033bZcyzoy5uNuKC0ap9WlaNXOn5BmqY3m2FXmW/t7lmdsYnXJZfVLJnbAMn6r02MT18dDF9
WcdP2bZfVmTO2AZZPXNun5beZO0zgsuZZM7YLLtZzAMXOdp3/uGYnqs6Y/DZ6rzMMmfVbja+AZqk
kmO7dUkmeueW6pbxOuTVmzEn+gUMtuNpu0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4ubZee7cXrZ4jQAAAAAAAAAAAAA
AAAAAAAAAAAAAAAE2XOZf3MW84+FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ0yznHOVAAAAA
AAAAAmy2y7bKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAABM3t9toTTi3tegKHPTJc57t62YzjHP/AAFiZLLnaS9P7DEzetoKZLmJ0/p/
c0T6Z8gqSS335ajTzq8/kkmdU6dgWIm2qzpsT9WrPx4BYjTN77XZYI086vP5WiTN1Z7/AJJMasTi
wFiNPOr4/wDSfq1fANt3k6c1l+ni87YMT1zbp+TXJibdZ/6DfTMyzbx1UnVtJJ1uGWW8SSz3/gFi
NU309/8AjbpxLjmgrMESy4nFiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAARZZczfPMVM839mgJ0yzOZzc9GWWXM+YsBMzedvZkzMzHXlYC
dMsllNOZMWcKATMy3bnwTObcc+FAJmfVbja+GXObtnt7LTjVOLMe4EvSzHbspmL1aCZmW7Zl7Em+
b4kUAjeW7ZlJL6rccrARv6s42xjp+W6pbjE656KATZmdqyerjHysBFlzMTjwq5xty0BFmcbYvfZY
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAACL+rT8rAAAGWS8tAAAAAGWZ9v8AacY1TFu/ILBGnnV1/tBYAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIx9ePYu2NM65N
/VnG2MdPy3VLcWcwGWXMskmPf+Cz654/LZ6rzMdzf1S42xjoDMY1THXJzqvaf7bZfVLjaeGWWXM3
zzALPq0/LedV64x/eGXNsuOPcssuZ8wGyWXO0l6f2JkmdU6KmbvdvYmc2458AzVJPT5NfE8t1S3G
Jxc9DVmyYnXPQGapJM9c8t1cTtnfwas2Yk/0XOP/AAGapx5XwjNn+CpczINRc6bnOZwq2ziZZz0x
OQUjTzq8/laZmW7c+AUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmzOLLixQCfq62fCgAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEc27S423
/wCNkst4xegKHPTJc57tsnqk9vyCxGr6ZibZrbJjxwChzu+jN5/lUk2vXAKBz0yXOe4OgjrZjOMc
/wDGyWXO0l6f2AoRJM6p07E21WdNgWifqvj8GnfN98TwSY1XwCxE3zcS79f+EmJZeOgLZiZz1Tpk
smT/AD+AWIs+uePyYxqmOuQWJv6pnjG3llk9XxuCwRzqvsC06rxO9x8Mu1lnXamqb6fIFkm82xP3
MSyd+c9W6pMXaN08TxATp/y8qkkt9+U6f8vNNPOrz+QWIkmdU6dibarOmwLETfNxLv1/43TLM9ug
KZeL4JJOOrQRZiXe580kzJvc471ur9Nbp4ngE3nT/ey0audPn8Fkl02dwWJu+rHtkxc52nf+4BQI
txbmbXqCs9SXMyzE9NxxvYySenjoC2YmZeqdMlkyX9c8X/0FiLPqnvksk1acbAsTf1ae3/rLPqnj
cFgnnVjpJn5Bl50+fwqyXGelTqn1afJq50+QWjV/j5jbvqk6cs1TfTfcFgjVzp8/gFiLJLps7l31
SdOQWy3GJ3Tq2xYaudPvfwCwRr4nkFiNUmM9e5ZPTnrjkFiedM3xtMpvOmyY35BduMTu1GrnT5/D
bzJ0oKRf1aflt07y8YZf1afkFiLJNWnG2Vgy3eTunVzp8/gs+rT8mrnT5/ALEWSXTZ3bd9WPbIKE
4uc7Tv8A3CgBHNu0uNt/+Nkst4xen9gKHO/TduL9lySTANHPTJZc962bXVOk3BYibziXPv8Awb6d
Nz8AtluGemWY+7NU2nmTILE6tpJOtx2ZZbxJLPf+AWjV/j5hd9Ul7Zpqm+m+4LBGqfVpBY56pjeb
YVeZb+3uCmZ3x7Jn6r02MT18dAVneRqLJ65t0/LbzJ2mcAoTi5ztO/8AcMxPVZ0x+AWOeqSSY7t1
SSZ655BYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AIssuZvnmNmeb+ygE6ZZnM5uejLn1S42xjosBmqZjN8Yxv8AZQCbPpxN2ziNAE6ZZnM5ueigEWWX
M+Y2Zu929lAJmc2458Ez6rcbXwoBEl024mZSZ9VuOVgIxdNuJmVu+LnntFAJ05kxYb+rONsY6KAT
v6pcbYx0LL6pcbTwoBGrOeM7cEuOdOPduLm2Xnu3F62eIDU2WXM37xQCcZs6SGrNxicXPRQCbmy7
c+Py2ZxNuPDQE6ZZnM5uehMy3bnwoBMzm3HPgmfVbja+FAIxdNuJmVUzzf2aAyZ3zMNAE6s2WSN0
5xJZw0BNltmJx4NUtxicXPRQCbLmWckzeZiKAE775mZ8KATJtZ3z8EzJjH+lAJ05kxYXPqlxtPCg
E3PqlxtPH5Lm2bceFAJ1ZzNs+zM2c6cNsucy/uYt5x8ApNlz6pv3igEXNsuOPduqW2bcXPRQCbLm
apz2Zc3G3FWAJuczbjwoBOrNxicXPQsuZZzOigE36sTGJ1yapdrN8VQAnVLZtOqgE6s2Yk/0XN04
xvj2UAiy+mbbzGxc3G3F4ysBNl2vYstxesUAmeq8zBZfVLjaeFAJubZtx4UAJsuZZvhlzbp2454W
AnVLcYnFz0LLmWcqATM3mYigBFllzN88xszzZ8KATjMuZvTTnGLPnZQCNPF261snNvX/AEaZZzjn
KgRPVp2kzOjcZll5qgET1TbHzluqWzbooBNls7Vk9XGPlYCbLmWdGXNxtxVgCNXOn5Wmy2y7bAWZ
2xidcll9UsmdsKARi+rOOn7NsvqzJnbCgE2XMsmdsFl2s5igEz1XmYZM+q3G18LATqlvE65NWbMS
f6UAy242m7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABkuYDRkklvvy0AAAAARp51efysAAATbvJ05rL9PF52wCxPpmZZt46qAAADMAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATN7f
baE04t7Xoyyy5m+eYqZ5v7AjTJc57t62YzjHP/G6ZZnM5uejLLLmfMBsllztJen9hiZvW0mbzt7M
mZmY68gaf0/uaJ9M+W6ZZLKacyYs4BmnnV5/JJM6p07NmZbtz4JnNuOfAMm2qzpsT9WrPx4bM+q3
G18Muc3bPb2A0ze+12WmXpZjt2UCJM3Vnv8AkkxqxOLGzMt2zL2JN83xIDNPOr4/9J+rV8G8t2zK
SX1W45AxPXNun5NcmJt1n/pv6s42xjp+W6pbjE656AatpJOtwyy3iSWe/wDDbMztWT1cY+QNU309
/wDjbpxLjmssuZiceFXONuQTLLicWLRZnG2L32WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnGqcWY91AMxerQAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAEY+vHsXbGmdcgsRZcyySY9/4LPrnj8gsRjGqY65OdV7T/YF/Vp+Vos+rT8t51XrjH94BQmS
y52kvT+xMkzqnQF2S8tRqknp8mvieQWI1SSZ655bq4nbO/gFCNU48r4Blmfb/acY1TFu/K0XOm5z
mcAq5u3HdFl04st54ronm+0/3/AKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG/qzjbGOn5bqluLOYoBM9V5mO5v6pcbYx0UAmy+q
XG08MssuZvnmLARc2y449yyy5nzFgJmbvdvYmc2458KATqluMTi56GrNkxOueigE6s2Yk/0XOP8A
xSbM4suLAZmz/BUuZln1dbPhQMts4mWc9MTlQCbnpGZ1f/P3iwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAET9
V8fgFgAAzEznqDQAAAAAATqvE73HwChFkm82xP3MSyd+c9QWI0/5eVSSW+/INAAAABl4vgGiLMS7
3PmkmZN7nHegsRedP97LAAAAAGZ6kuZkGgzEzL1BoAAAAAAi86fP4VZLjPSg0Eav8fMBYAAAAMtx
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
7ZlJL6rccrARv6s42xjp+W6pbjE656KATZmdqyerjHysBFlzMTjwq5xty0BFmcbYvfZYAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ACL+rT8rAAAGWS8tAAAAAGWZ9v8AacY1TFu/ILGW4mUzTn/K35BYAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIx9ePYu2NM65N/VnG
2MdPy3VLcWcwGWXMskmPf+Cz654/LZ6rzMdzf1S42xjoDMY1THXJzqvaf7bZfVLjaeGWWXM3zzAL
Pq0/LedV64x/eGXNsuOPcssuZ8wGyWXO0l6f2JkmdU6KmbvdvYmc2458AzVJPT5NfE8t1S3GJxc9
DVmyYnXPQGapJM9c8t1cTtnfwas2Yk/0XOP/AAGapx5XwjNn+CpczINRc6bnOZwq2ziZZz0xOQVZ
Lyiz07z5irmcTLN7zMQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJsziy4sUAn6utnwoAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>425393</attachid>
            <date>2021-04-07 08:05:01 -0700</date>
            <delta_ts>2021-04-07 08:05:01 -0700</delta_ts>
            <desc>iOS 14.4.2 immediately errors after page refresh</desc>
            <filename>ios rendering will not work at all after page refresh-min.jpg</filename>
            <type>image/jpeg</type>
            <size>83395</size>
            <attacher name="Jason">jasonlmcaffee</attacher>
            
              <data encoding="base64">/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAP//////////////////////////////////////////
////////////////////////////////////////////2wBDAf//////////////////////////
////////////////////////////////////////////////////////////wAARCAgACqwDASIA
AhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECA//EACwQAQEAAQMCBgICAwEBAQEAAAABEQIh
MUFxEjJRYYHhodFCwZGx8CJSgvH/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/EABcRAQEBAQAAAAAA
AAAAAAAAAAARAUH/2gAMAwEAAhEDEQA/AMAsx1/AINyab6/hnGc44gIDVkk+cAyDVkk+cAyCyZoI
LZir4f8AzkGRZvcLqmKDIAAsmZb1i6dOcgyLJmp2AAxQBrVMY7MgDXh2z15+GQBcX0QAFmOufgEG
5NN9WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABuafWr/4
/wCyDmN3T6VgAWSXOekyv/n3BkakzveIYmMy/FBkakmJnO/CY3wCC3GdiAg1v6mL6/gKyNydb04Z
zQQXNAQAAAGuNPvf9Jvv+S3NMg1plxmc8T9mL4eOuWM1rO2PyC6ZcZnPE/Zi+HjrljNaztj8gy3J
/wCb7sLbnHsDWqbT22JcTT3sZlxLPUztJ6A1J4c302nymrp2hdWZJ/1S3OPaYBAAa0849ZhfLJ3z
WJstubkGrt4vfafJxJvjKW5knoS7YszAW4uN83qarZcTiM256YXxeszfUF18zszJmyFuSXAOmP8A
10xwxJjVj3ZblzqlA8V8Xzws21XsmZm7b55SXFzyCW2oEBq7THW89mVtzcoAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcxd9VXOn0/Dm34pjGPjoBcTfTfhgAa
lxnbKzGrMxJt0ZlwuZ0mMgsx4e1NtUu0lm+zMuPeXoudsSYAl9s43i/71fiVmbX1M75BbJvjpyk6
9lt52xnlIDU4htnfhN/Qz7flEdMy+7nqxxIucTE5u/8AlnFVUWf2Yp7AXlAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUBAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAABrDIAAAAAAAAAAAAAAAAAAAAAAAAALigguKYoIAAAAAAAAAAAAAAu
Md147sgAAAAAAAAAAAAqCggAAAAAAAAACzdFnIGfQygDW3KZOiKLn1Ki3oCAIAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAADWnGM3sDItmKgAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs3sW6rnboDI1q6X1jIALJb0BBbLOSS3gEFss6IAL
4b6Lq409v0DIslvBZZyCC4vJ4b6AgL4begIHC4v+QQXFnRABZnO3KAC+G+iAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANSSzbkxJzvfRZc9JJ6gwLbmoAACA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL0W3CZULxDkvEM0EFu8RAAAAAAAAA
ABcbZReiAAAAAAAAAAAs4qZXpScqG5v7mTNBejK5q5yDICAAAAAAAAA1PyyADXPdkAAAAAAAAAAA
ABYiggAAAAAAAAACzlFnIIAC9EXogC3oi3oCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAoALJm4au8vt/pNO2asszxjIMNXiQk/8AXYuq+oF3kvpsy3LnMrAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANaZ19G/DPRnR1+P7bBnVNuzm6auHMCc
xrVd8ejLdmd4DOdsNXaTHVLJJvyvmk9YCabvj1WbeL2JMb1Jd7nqCZvOWtXE/wC9E8N+PVdXE/70
BbLtJwklxZS/+t5ymMTf/ALLjT8sy2VqeX5Sab14BbP/AF+SzVb9pn/1kunO86gtm2/MLcaYzZjr
ut8sA03fDLWnlJM0F08k819smnzf5JcUEtq3fTL1PDenBeJPQGQAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtPPZldNxQTlc3GCzFQA4WTNLc2ggAIAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3lFvKAt4iAC9PlF6fKAAAAAAAAAsx1NvVAGts
eybep0RUXZARQAAAAAAAF6UnJOMLIqMgIosRYCAAAAAAAAAAAALnM90AAAAAAAAAAAAAVAAAAAAA
AAAAAWcoAu09zb0QBrbCbIKLt2L0QQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABc31
v+UAM31AAAAAAAAAAABrP/nHXLIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAA1nO1/yf+fWsgNW9JtGQAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAarOFzTNUTBhc0zUDogAAAAAAAAAAAvRAAAAAAAAAAAAWcoAuKmFzTNBM
LDNM1RAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAABUAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAU
QBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRA
FEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAU
QBRAFEAUQBRAFEAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHSSaZm/wDdjxz0oOY6WTVMxiTfHuCDpb4c
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
6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14d
Xp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh
1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNe
HV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI1
4dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMj
Xh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAy
NeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YD
I14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5g
MjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fm
AyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+
YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en
5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6
fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dX
p+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1
en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeH
V6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4
dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmH
h1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+Y
eHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5
h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6f
mHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp
+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1e
n5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV
6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14d
Xp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh
1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNe
HV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI1
4dXp+YeHV6fmAyNeHV6fmHh1en5gMjXh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gMj
Xh1en5h4dXp+YDI14dXp+YeHV6fmAyNeHV6fmHh1en5gOoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAJmesPFPWEmP85Z0cXuDWZzlWNUxpv8A3WL4pJO0Brg5S2Sb8GZjPQFEz33UATxTOEmq
XYGhMksvwCjPim/sssvAKCZ6f6AzLtFYm+q9v01n57AomZjKeKYyDQnimMksvAKJnvexmWZBRnxR
ZZeAUTxTnfHqmq4ncGhMyb3/AEeKZwCjPinvj1W3EzyCiabmTng8U98evQFEzOTO+NwUEzOOewKJ
LLMp4oDQksvCgmZc+ypLLnHyZ77AomZjPqZ3xuCiSy3HoZmcdQUTP/Qll4BQSWXeAoksvBmb+wEs
vCpLMZn+k03OeeQWWXhWJcatXw1LLwCpbJzVYlxquevF9gazL1VMbymenUFM4SWVm3/1OePQGpZe
FTab9b/kll7gqW43qeKb+x4pjPQGgTVcQDMJZeCTEY02SXvf6B0Ell4M972BRMyzM3TTc555BZZe
FYlxdXf9tSy8AoJn57ASy8Kxp51fDWe97AomZZnoZnv/AIAzM4zurGrnT3/TWcXAKM24sm/K52zw
CiZnvO6245AEzPedy2QFGfFP+4aAEtwZmcdfcFE8UzgmqW4BUzM4zuW4Ztzq0/INpmbT1VMzMnUF
TM9WdV3mn15bAM45Y8ur2v8AstxqlvGAazPVWbJcX3i2ZgKJpuZ/stxLQMycmZeqaeM3mmqbZ6ze
A0lsiS5mf9Jpu3Xe3oDWZ/26eKeqS/8Aq7Xj0NUmdPf9A1bJyqWyclsnIKM+Kf8AcNcACZmccd1A
HO25mrpnHx/2XQATMzjqZmcdQVMzOM7mWc51zt+wazM46qmZnHUtwCiZmcdfdnVvZp/yDWZ6rmCY
xc+oKJnvexmWZBRnxRZZZmAozpuc88rn57AomZZmE1Sy30BRM7Z3TTcz/PYGgTxTnfHqCjOq4ndc
zGeO4KJmcbzPqWyXAKM+Kb4zsabmAvinrP8AKsaP5d0nn246/wDdwdA4TMzjjuCieKZwTVLcAqZm
cZ3LcM251afkGxMksvwCpbJynim/seKbe/ANCWycp4p/3ANBbjlPFJzsChylsnIKJbJyW4mQLZOS
2Tktm2f9Jr8t+AXMm687s3y3sunyzsCgninvj1xsCiWycmdsgomdsmZnHHcFE8UzgmqW4BRm6v8A
1Jv+1zMyeoKJbJt6luAVMzOOpLLt1Zvnna/2DWZnGd1Yvm0/LVslwCiW4UAS3BmZx19wUZ8U4XxT
GfgFEzM46+5noC8JLneGcy/MZ02TTPn/AGDYS53S3AKksvCabmf57Jpsme9BsSWXgzPf4BQlzvEt
k5BRnxRczGegKJ4p7zPC245AE8UnOxmYyCiZmccd1AEtwSy7dfQFE8Uzgll4BQTM43ncFEtkuE8U
39gaGfFNvdc/PYFEllTxT/ANByluAUSWXbqzb/6nPXoDUsqsarjfG92zhrPXjuCiZnG87lslwCiS
y8dFAGfFPfHr0W2QFTMzjO5LLcdWb5tPyDVsnNLZOWdfTvGrZOQUS2TlPFJ/2wNBwninXMBS3G5L
lLZOQUZtxM46LpuZOeAXODMvA5zOnfpbc/5B0zjkzlLvL2pOJ2gKJbiZSXbrwCyy8KksszOE8UBo
TxTGf/6Sy8Aome97GZZnoCiZnv8A4UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAABjRxe7bM0465+PsDV5b/AN1L5PhbMzCYuMZ/H2B/D/8AP9Jj
OmRcXGM+3H2YuMZ464+wTNzJqnats4zjPTdoGP5zsaudN65L552axvm9OAZnmu+OPRcb5zc/BdOd
5cVZLObmgzPNq+CefV2n9LJZbc8+32Yubc8+32DTGjr65bZ8O+ZcZ5BJ59Xaf0ad879b6fpZp3zk
unfMuAJJM+5o8q4253vWpJZMZ/H2CaOL3pP597/ayWdfx9kmM7878fYGjy/5SebV6Lizi7elWTGf
W9QZ0de9NPOruslmd+fb7JMZ359vsGd9O130rq4neLi4xn8b/wCy6czHoBq8t/7qs4nZLLZjP4XG
2L2Bn+NxtMX5P4fCzTcYzsTTtjIJ/D4WTM5uMe36WTExbnoz4bONWIC42kl4uxLvizFXHGLjBjfN
6cArM5uPm+7TPhstxdqCaOvemjr3qyYzv/39klmd+fb7BNPOru2zJi3fn2+2gY086u/7N9OcbzlZ
MW3PPt9mLOs/x9gcyY29CXfFmKeHaYuMLjfN6cAzPPq7T+j+d7fpbLnMuPU8O+cgmne6t8b+36ak
xbc71Lp3zLirJjrmgrE/82zpd20szZfQGZ/5tz1mWpx+aWZx7VQY0cXvf6NHXvVkx1z8EmLd9ucA
k82r4J59Xaf0slltzz7fZi5tzz7fYNJZNSs4szi83igzM6bJzK11256mN83pweHfMuM8gmnzavg/
nO37WacW3PJi5zn8fYFxmdb/AEk8/wALZvmXFPDvnP8A39Ak897T+l1+W/H+zFznPPt9rZmYzgFn
EY19O7UTVMwGmNHF71qXMyklnF294CTa6sen5XR5f8rJj55TFnF29KCTzavQ0de9akx3vKSYt325
wCaedXc0+bV8LJZnfn2+yTFtzz7fYNMaOPltnw2Xa4z0wCTzavg07zm/j9LNOLbnlPDvmXAL4ZJZ
nlM2bauPVrG2M89UstmLduwJq509/wBLpvPr1LM2XPHt9l075lxe32CaudPf9GrnT3WzON94tmZv
/kE1eWs3+GWsW7W7f7WzMBNXlrN8unvP9NYt2t2/2mvid4C6p/5vss4naJZbtbt/toGbjbrc7Jc+
LTn3WzOLnFh4bmXO8BL552/ZfNp+Vxc5z7cfZZbZc8e32CTz3sXzaflbp3zLinhuZc8ewNMXzafl
tmy2y549vsE1bapW0szMUxfWfM+wZ1b6tMauLtSTHvfVMXOZcAzZdO849HRnFvN29It2gM6P5d2t
W8qaZie93rQM6PLFvF7JjFzNvboYzzdvSAaJiJo8vy2zJjbP4+wSefV2n9GrnT3/AEuLm3PPt9lm
cb8e32Ca+neGvid5/a2W4349vsst6/j7BNflLzp+VstmM/j7LMzF/wAgWZ5t27fpbx73aJNN63Ji
5znjpj7AxcYxP839Gm7Y9NmmZpstuefb7BP53t+j+c7ftbN8y4p4d85BJ5tRfPO37W6d8y4p4bmX
P4BL59Pa/wBn8/jZcXMuePb7WzO/FgM6+l65Ltrl9f8A+NY4t6FkoKl4vapjV6z5n2uATR5f8pPN
q9FxZxdvSrJjPreoM6OvemnnV3WSzO/Pt9kmLd+fb7BNHXvTTvnfrfT9LJi3fbnBdO+ZcAsklvux
dr7W7928bc7+pjbAHRNHlnz/ALWTExnKSY67A0576drvpdGcXGM/jf8A2CauJ3i6sY3/AOpdOZj0
LpzOd/UE1Z/859YaudPf9LdNuM3ee39F024349vsFvF7X/SafLGujMlnXtsDOmZ8W+N10+nFn5Wa
bOvPt9l05uZcUDVzp+SzPNu3b9FmZv8A5JpvW5BL552/ZfNp+Vxc5z+PsstsuePb7BJ572L5tPyt
075lxTw3MuePYEnmu+OPRcb5zc/BdOd5cUkxzc0Enm1fBr6d4slltzz7fZZnG+Me32Ca+J3n9mvy
rZb1/H2WWzGfx9gauJ7bpq3xJ657Lekzvn/RjV/9fgGmdUzPys3kUGL/AOpO2f8AH2S5x/m/H21J
jPvSTGfegzr6d4uvy34/2WZxvjHt9rZmYz+PsEvlvb+l0+WdjFxjP4+yTEwCavLTGZzcXt+muWPD
Z/K4BbP/ADj/AAkuZJ/n45/r/LaSYtvqCaudPyWZ5t27fpbMxJpvW5BL552/ZfNp+Vxc5z+Pssts
uePb7BL552/Zq82n5/pbM2WXFhZnG+84oJq5091uMzrf6LptxvwXTvmXFBJ5/gvn09r/AGvh3znv
/wB0MXMuePb7BL5tPyuqZmes3LLbLnj2+2gZz4sf5v8A3f8A00zpmJ3v46NAz/OdtlxM56pdOfaw
kvW5BP5/C3G3rnYxc5z+Psszi5xYCXPi059y5lzN/WL4bmXO8XFzbLz0oJLmX8mjy/5Mc+t5JLJj
P4+wTRx8t3hnTMbZz8NAzo8s+f8AaaOvdZMdexJZnfn2+wSfz73+zTvJvfx+lkxbvz7faeGzi4Bq
STaJq8tWTCavLQJP/Mnt/TMx4N+MtSXE36fJdMswCas4nebLq47XJdNs3pekzvnP+ATVviT1z2XV
zp+TGr/6/BjxSZAszzbt2/TTM03rctAxPPexq5033WzfM2q43zenAM3zzt+22cXOc/j7aBnV/HuX
Tnm38fpbMzCTTetzPQE1c6e/6a1cXslltlzx7fa2ZmM/9/kEnlnZNHHy1JiYTGLmXnoCTz3saedX
dqTGb1qSWW3PPt9g0zcZnW/00zZvmXFBJ5/gvm0/K+HfOe//AHQstsuePb7BNfE7xdX8e62ZmEsz
MW59wLpzzb+P0mrnT3/SzTetzPQstsuePb7BpnXx8tJZmYAxLPZLjM63ok03jxbei2ZssuLAT+cz
6fsvm0/K+HeXP/f0WZsuePb7BNfTvDXx8rZnG/Ht9llsxn8fYGvymry34/2WWzGfx9llsxn8fYJZ
nT/il/8AUxP/AOLeJM79Pgxq/wDr8A0zq8tWbzcszMAl8n/5n+l08TtDG2PbBJjrkFZm8+b/ALrS
SWdc/H2DHlzLxc4bnE7QszMKCavLexp4naFmZgksnPbYGdHF73+jR17rJZ1/H2SWZ359vsE086u/
7J5tXaf0slltzz7fZJc2559vsE07zm/j9L4ZJZnlPDvmXDWNsZ56gzmzbVx6ts2WzFu3ZbLtvjH5
BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAATw75zc/H6UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEsz6qAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABLJeU8M9be9aAAAAAAAAAAAAAAAAAAAAAAAGbplua0AAAAAAAA
AAAAAAAAAJZnZQEkxsoAJZLyoDPhnrb3rQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkvKeGetv
etAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmes
BRMz1igCSy8KAAAJmTqZl4oKAAAABmAAZzwABnHIAksvFUAOEll4oKAACWydQUAAAAAAAAAAAAAA
AATMxnoSy7goksvCgAAAAAACWydVAAAAAAAAABJZeAUAAAAOElzvAUAADMgAJmQFAAAAAAAAAAAA
EzLtFAAAAAE8UUAAAAAAAAAAATMu0UAAATMzjqoAAAAAAAJmAoJmXqCgACW43qgAAAAAAAACZnrF
AE8U/wC/agAAAksvAKAAAAHCS53gKAAAAAAAAAAAAAAJmZxndQAAAAAAAAAAAAAAAAAM45AEzP8A
JmesBRPFPWGZzmAocgAkud4oAAAAAAAAAAAAAAAAAAAAAmZnGd1AAAAAEzM4zuoAAAksvCgCSy8K
AAAAAAAAAAABbjcAAAAAAAAAAAAAC3G4AAAAAAAJmbT1BQAAABLZMe6gCeKf9+yWXgFAAAAAAAAA
AAAAAAAAAAABMzGc7AoAAAAlsnJbJyCiZk3XncAS2TledwAAAABLZOaWyTNBQAAABMzOOqgAAAAA
ACSy8KACZnrAUEll26/4BQAAAAAAAEtxMqzqmYDPj9Y6OPhvo7TaYAABLf8APoSy9/RmebUXzaQa
8UzgllZ/n8H852/YNsavNpbY1ebSC6sYuTTf/O5dMppuZv0BZZeDPzjnDOji97/Rp2zL6g1LLwrO
mYl97loGNNxmXnLWN8+sSyav2kzL4bvOgNZmcdTMzjqz/O9v0fznb9gvinCy53jP8/hsBjTzq7/t
tjTzq7/sG2NHF73+m2NHF70G0xm7qAxZjVpx1bSTfN+PaKCYyzJ/6zOMb922MeHVMdeQbABm3Fk3
5TV/HuaudPf9Gr+PcF8Uzj/+NZwxr4neLfNO1BczOOL7qzZxbbt2/TQJ4pnCTVLsn852NXOm9cg1
np1JZU67c9U0+bV8A1n57E1S8Mza2X1yumc31uwLnvexLLvGdO85v4/TUkmQLcGZjPRWJcZnpx88
A1LngzMZ6MT/AM5n+PlvGJj2AmLNuGdHF73+l0+WfP8AtNHF70DT/Lu2xp/l3bBM/PYzMZzsmjj5
3LJJcel/0B4pt7rmcc9k0+WE5uPm+4LLLvDxTnfHrhnTxq71M3TtZmeoLq/j3XxTOP8A+Jq/j3hr
4neA2luFYvm0g1mccdy2RNfHZNX8e8BqWXaFuOVS8XtQTxTb3XP/AETT5Ymne6t8b+36BqWXhnT/
AC7tSYtud6zp/l3oNZ+exLLwzo4+See9ga8U99uVzndicXHG+6fw/wC9QatmL6evQ0eWfP8Atf4/
H9Jo8s+f9g0Jc9ExZxc9/wBg0xq6X3jUz12Z19O8BtnTvLetq3ipo8v+QTTzZ6cNsTzar8NgninO
+PUyxvp2u+lbd9Pp/wBgGszOOO5nCWZ5t27fpJ5tXwDUsvcz057GJnPVnR19cg1LKnim/sn8+83J
5tXwDUsvBnp/pmefV2n9Gjr65Am+q9v01nvszPPq7T+jfTnG85Bub7pbjkmLJjhNWMb/APUFzON5
n1Z13Y1Z/wDOfWLr8oFsxnF29l03MnPCavLeyfw+Aa8U98evQtk3STM5uMe36TVMace/9g1mZwoA
z4pyuWdPXuTzXfHHoDUsvwnim/sY3zm5+Enm1fANSy8Gen+mZ59Xaf0aOvrkCb6r2/TWfnszPPq7
T+jTvnfrfT9A1mYynim3uSSZ9zR5QXMzjqeKZwz/AD+C+edv2DU1S3BnDN82n5W7apemMAeKdmme
dWekjQAzi+th/wCvSX34A1XE97wTE2zLevrUvOnJrm2esA1cyet3XVtJfSpfNpq6/KDTOq4xPeLO
J2Z1fx7g1bMb/mFskzU1+W/H+zV5fif0B4ot1SfSfx+P6J5fgGvdPFPfHrjZj+H/AHq1jM5uL2/Q
LkzvhLNpi7zglzcWYoNAAxfPO37XVcSpfPO37XX5b8f7gExZJj05i245JxOxeL2oJ4pt7rn57Jp8
sTTvnfrfT9A1LLwzp/l3akkt92dP8u9BrPe9iWXhNHl/yk21avQF8U98erTH8bjaYvyn8P8AvUGr
Zi+nr0NHlnz/ALX+Px/SaPLPn/YNJ4p749cbJq8tWcTsCs+Ke+PXox/C93Taz2wBmcmZnHHdm86f
RqydegGZnHUzM49Wb59Pz/Zq82nvf6BrxTODxRm+bT8tWZnvzO4Gd8bqxLcyapv0rYDHi/8AWN+P
Rtj+fwBfNp+WpqluGb5tPyaudPf9A1kll26+jP8AK742XG8ubn4/QNM+Kb+zTE82r4BrxT/BLKz/
ADvb9H852/YNZJZWZvdW+N/ZcSXOd7AXxTnfHqZwxvp2u+lqzOLOZvAXO+DM97jnCS5uLMUnXHrv
fcFlzvDM+PVnT5b8k2046zM7g1LLweKe+PXozizR7rJmc3GPb9A0zqmZVkxMKDNn/rT7ZXHPuoDG
nnV3/a2YmpNPOrv+2tXlvYGZqkk7RrMxnon8P/z/AETyfFBZZjM4Mz3/AMM6d9GO/wDumbNtXHqD
aZkuFY1ebT8gvimcLbhnXxn3W8z1wCyy7dTPTqzPP8HGq+8BrxT59DP/AEST/wBW9E073Vvjf2/Q
NSy8KkmLbneqCSy7wll4Zn/m2dLuT/zbnrMg1mb+yeKe+PXGx03+flL5fSbY9QatwZ3xulmZMczF
hLvizFBpnxTf2aYnnvaf0DWZjJmZxxfdm+adNqtnFtu3b9Al82n5atwzfNp+S+edgazM44vuW4Z1
8Z91vM9cAssu3Uz/AJ9GZ5/g086u4E31/DWf+jP8/g073Vvjf2/QNSy8GZ73smMZud8U0+WAmjr3
bY0de9bBz02TTu3LLwzo8qTbx4/7kG8z37rnr0ZkzJvePb9JZjTieoL4p749ei2yGJZ7JcZnW9AW
WW46mZnHVn+cz6fs/nO37BrMzjqZ6M3z6fn+y5lzN/WA1Lk8U98evRnOdNs2vVZMzm4x7foGktk5
JMTCavLQLcTOOi6bmTnhL5P/AMz/AEunidoBbgzMZ6KxLjM9OPngGpc8GZz0Yn/nM/x8tXE04vAL
4p7zPBbhnVnE7zZbLtZzAWXOysy5u8xWgSWXjoSy59mdPOruafNq+P7BrM9+5bMZvDO+n30rfLt6
AuZJnonihfJ/+Yfw/wDz/QNe6eKc749WZM6MexzpxjfGAall4XhJtJCzMwBnvuZmZOrObmTVO1L5
tPyDVuE8U67F5l+DnVL0gL4pnB4pbhm+bT8mrnT3/QNWzMl56JquJU1c6e/6XX5b8f7gG1m84xzF
ll4JxOzGny6u9/0DeYZmM9E0+Wdi4kx0BfFPeZ4LZGdWcTvNjV/HuC+KZx//AA1XGJ7xNfE7w1fx
7g2lsnKs6/KB4pP+2W6pE1eW9j+H/wCf6Br3Z8U9++Nmf4T4aszObj4/QLbInin/AHCauNPeGvj5
BfFPvo1wzq8t+P8Aaav495n8A14p7zuWycmri9mL5J8A14pwssvCsT/zbOl3gNZzmMY/8Y65/tuc
e93UBLZOVZ1TM/ILbJyW4mWb/wCpO2f8fZLnH+b8fYLbJya/LfhNfHyuvy34/wBgXy3sunyzsl8t
7f0unyzsBq4vaszVJJ2a1cXtU0+Wdgaz1TxT3x642c/46u/6bxmc3F7foGjhJtMM6udM9wNV26tW
yTdNflNXl/wC52yZ3xulmZPXaxJbmTVN+lBfFPXhZqlZ/ne36NXm00C+edr/AG1bjbqzfPp7X+1v
O03x/iAssvwSyszzXtP6Ltql6Xag1nfBn57E3tvxO0+2dO+d+t9P0DUsvBme97JjE1WXfGTT5YCa
OvdtjR171sBjT5tTbGnzagNV3088tbXfG7Orzae9/psAAAAAAAAAAAAAAGbN8za/7XG+bz/pQGcX
Oc/j7MXOc/j7aAGbptsuePb7aAZst6/4n2smJiKAzJ4c7+/H2kl5mrEu/DbPhnTM7UCZzi3OzSSY
UGZLOL/lZN83e/6UBmzfMuKeHfOWgGcXOc/j7aABmSy2559vtoAZkx1z8fbQCWXbfH9pZb1x8NAM
+G9dX4+1su2+P7UBLL0vxgx1u9UBnVnay/Hq0AJZnG+LEstxvxvx9tAM2W9fx9lme/q0AzJety0A
MXzzs1jfN6cHh3zm5+P0oM+HfMuM8k04tuWgGJLc2XEt9FmZcW5PDOmZ2qyYBnw75lw1JhQBMb5U
BMby+hd4oCSWTGfx9pJZ1/H20AzJjO/Pt9tADHhudrjLWNsZ55tUBJMTGcp4bLcXatAMzTjO/Ofy
YtmLfxu0AzdOcb4x7fZZb1/H20AJZnvOKoDOLeb9lmcb4x7fbQAlmZhQEkxMZyl075lxWgEkx1zf
VJMZ359vtoBnGLmXnosnPreVAZmmzbO3/dSacTFuWgGZps2zt2XTMTGVAAAGbM9cY9vtoAZxjOLy
0AkmFAGcXGM/jf8A2XTLMenDQDM03rcl05uZcVoBJPW5qYxcy88xoBJOvVJLLbnn2+2gGcXNuefb
7PDvmXGeWgGZp3zkxZ1n+PtoBJMTBZmKAzdNuM3ee39FmZjLQCYzMUkxMW56KAx4bONWIt05mM4/
LQBAAZkxnfOfb7LpzvLitAJJZzc1JLLbnn2+2gGcXNuefb7PDvmXGeWgGZp3zkunfMuGgExtzvet
JMTGcqAzi5zn8fZi5zn8fbQDNltlzx7faXe7XGJu2zdMu/F9gT/1OufbDaSY9b33UAAEsyYzz/8A
1QEsymM4z0aAEsz7YUBmy2Yz+Cy2Yz+PtoBnFxjPTHH2YsmM/j7aAZkxMXeJ4bP5XDYCY4xcYMb5
qgJJc3f4UAZ8NznP4+1szMZ/H2oCTYszMKAkmJjOUunfMuGgEkx1zfVJMZ3534+2gGcWcXb0qyc+
/KgMzTcYzsTTti7tAMzTZtnbsumYmMqAcsyWbS7dt40AmJjHRmabNvFs2Al0yzH+EkvW5aAZsziy
4sPDbZc8NAM2W2XPHt9rZnG+MXKgM4zZb0N/Fz8NADNm+ZcNAM2XMuePb7LLbLnj2+2gGbpzvxfU
kvW5aAGZLLbnn2+2gGcXOc/j7MXOc+3H20AzdObmXFWT1uaoDOLjGfxv/tccYuMKAmN81Jps67en
20AzJ4Zd9kk1Y21fhvlnwz1v+QJneXf7Tw2casRvgA4AAABmabM78+32tmZhQGcXGM9McfZJZMZ/
H20AzNO2M/gstmLduzQAxq50/LaWZuc3b/vQDGcZ6JZvmXFaAZ8O+c9/+6Ji22y46f4bZ8M53nag
f+pZm5yXTvmXFWTH3uoJJjrmqAJZmy+hZnHtVASzMwnhuMWtAM4u2/C43zenCgDOLnOefb7aASzK
SXrctAM2W2XPHt9rZn2s6qAzi3GenoWb5lxWgGfDvnPf/uh4d8y49WgGfDc5yXTvmXFaAST13zyk
02cXZoBmTGd2gBmSzaXb3iyY/tQGPDZxcRrExhQGJpvHi29FszZZcWNAM+HeXP8A39FmbLLixoBn
w7y54XFzbLz0UBJOfflnw2casRsA4SzMwoCY2x7YJMdcqAJjfKgJjeX0LMzCgM3TbN6uLtc/agJJ
vm88KAM+G5tlxnkmnFtzy0Azi4xn8fZZtiNAM4uMZ9uPsxcYz0xx9tAM4xpxn2nRMav/AK/DVkvK
eGet/wAgsz16Usz7KAzjOM9Nyy2y549vtoBm73a4sn+0/wDU3zn2w1dMu/X1hJ3ve5BLLbLnj2+y
y2y549vtoBmy3G/Ht9rZmYz+PtQEmcc/j7STG2c59mgGPDZxcRbpzMNAM3TbN6WW43434+2gGbLe
v4+yzON940AT/KWZmM4UBmy2Yz+PsxcYz0xx9tAM42xd0mm8eLZsBmzON8Y9vsszMZ/H20AzZbMZ
/H2uMzFUBnFxi3b8lmZjidmgCM6pLZPn4au+ySScAoAAAJJjPvSTGfeqAzqmds4+Cy2Yz+PtoBMX
GM/j7JMTCgF3mGZLJjO3bdoBMTGOjPhs/lcNgCWZUBm6bZi38FmZjP4aATFxN+OuExmy3o0Ax/O4
9P01jfN+PYxvnNz8fpQZxcy549vss3zLhoBnw75yat5j147tMzTJuDU22ZunfMuGgEk+c8pNNnF2
aAZkxndZLOblQBmabLbnn2+2gGbLbLnj2+2gAAAAAAAAAAAAAABMzOOqpmZx1S6v/Um/7BoEtwCi
ZmccX3TxTf2BoTxTGfUzM46+4KcJnoZzL8wCXO8VjTZNM+f9ty53AE8U98evQzMZBRM743UAGPFv
drtPQGszOM7qxfPO37amqW4BRMksoKDPim/sDQnin+CWUFEz/wBCWXgFE8U53x6mcAomd8GZ73HO
AUSXO8Mz49QUSWXg8U98evQFLccjOqZnzAXM46qzj/1L7f8Af7aAHPOLNXS7fH/bugAcM+Kcg0Jm
WZTxQGhM4JZduvoBmZxndWLtr+FmqXYFzM4zurF82n5ayCiSy7dfc8U/wCieKf49SapdgUE8UzgF
EllmTM43ncFE8UzhJqluAaEySy7dfQFEzOOexmYzNwUZ03P+fhc972BThJZd4lsxfT16AuZjOdiW
XhNPl/ymnbT/AJBsSWXgzvj0BQTM972BQlzwmYCiZmM9DxT3BRLZNvUtk5BRLZE8U39gaGfFNvdc
/PYFEll4Mz3vYCWXhWNHXu3wAJLLMksvAKksvBmb+xLMZnHYFSWXhNNz/n4SXF1d/wBg2JLLwoJm
b78cqxjbV72/TU2k7AqWyFuGdO8xfcGxMybTp6dCWXgCWXjoZluGdPOrv+yee9v0DYlv+fQll7+g
KJmZx1MzON8gomd8GfnsCiSy8GZ9gSy8LnHLGjj5avF7UCXO8ViapNMz/wBu1mYz0BRJc8EufgFE
twmm5n+ewLLLwrGmyZ71qWXgFEzPf4WXO8AEtwZmM9AUTMxnonim3uC5luFYnnvb9NgCW/59CWXv
6AqSy7df8M6rvp55a2u+NwVLZOU1XH7NW+m/91gNHDPikk7RbZJvwC8iZmM9DPfcFBPFM4BRmapd
lz06gokspnp1BRJqlM/PYFEll4UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGL59Pa/2Xzz
t+1xcy549vsszZZcUGmf5zts0zdOfawFxM56szz3tP6WS9bkxc5zz7fYFxt652S58WnPutmcXOLD
w3Mud4CXMuZv6xZcy/lcXNsvPSpjn1vIGjy/5Znkvy1JZMZ/H2TTiY5nYCTM5uMe36MbYl4u3dPD
ZxqxGrNpi4wDMtzJqm/Sts4zZb0N/Fzt6egNMTz6u0/ptnG+ZceoJfPO37L5tPyuLnOfx9lltlzx
7fYJPNd8cei43zm5+C6c7y4qyY5uaCsTzavhtmSy2559vsE/ne36P5zt+1xc5z+Psxc5z7cfYJp3
urfG/t+lkktueS6d8y4qye+beoMb6drvpaszizmbwxcYz+N/9rjjFxgElzcWYpOuPXe+643zUmmz
rt6fYJp8t+SbacdZmd1k8Mu+ySasbavwBizR7rJmc3GPb9EzvLv9p4bONWIDUmJhTgATVxic3ZWc
XOc/GPsCy2YxP839Gm5nbZpmabLbnn2+waY0cNsaM42oGna6p0NHHy1Jjv6ppmOufj7BJ572NXOm
+62b5m1XG+b04Bn+fwaudN65WzfMu643zfgGb5tPyfyu+NlstsuePb7LpzvnF9QMby5ufj9JPPe3
6WS9bkxc5zz7fYJ/P4L59PyuLnOfx9lltlzx7fYNMXzzt+22cXOc/j7A1fx7l055t/H6WzMwk03r
cz0BL5tPa/2a+l65L5p2v9tYzZb0Bn+V3xsuN5c3Px+i6c78UkvW5AnNx833TR171fDZbi7Ukxnc
E0cfNNO85v4/SyY67eieHfMuALPDpuGv4/H9GNsXfPKTTZtnbsBp8v8Ak0eUkxMZ/H/f7JMTGcgk
/wDNs6XeNTj3u6apLZPn4aBLxeyafLGmZLOLt79AZm3jw1p8s7LJj55Z8NnFxANWJJOmd2rJeTEx
hJpvW5noCav494a+J3jVmUum3m9QTV/Hu1eL2qWW4349lstmP6+wTT5YmnfO/W+n6akxMZyl075l
wBjE1WXfGTT5YsnznlJps4uwJo6962zJjO7QMT/zdU+YT/zbL3jVmbL6FmbL6ASYiaPK0mmYmM5B
nRx8mnnV3WTHXb0JLM78+32CafNq+G2ZMW3PPt9tAAAXisafL/n+2qSYmM5+PsE0eX/KTzavRcWc
Xb0qyY73mgzp51d/2Tz3t+lkxbc8+32Yuc5/H2CTzai+bStm+Ztf9rjfN5/0DN2svxS8zV0zhqzM
wWbYAnNvxPj7Z0753630/TUmJhLp3zLgEs8M1Yu9a08TsSbb755SabNs7dgTRx8tXi9qmmY6tAzp
8s/7qmn+U6ZWSzaXbtusmAZl8Ns6cxqTE9+b3SzNntv/AN8tAXhnR5Z8/wC2mZMdewJo69yfz73+
1kszvz7fZJi3fn2+wTTvJvfx+mpJNoz4bOLhqTAJq8tP4f8A5/pqzMwz4bjGemwJ/D4a08Tsnh2x
n8LJiYBmee9v02zi5zn8fbQMTzai+bStm+Ztf9rjfN5/0DOrzae9/ptmy2y549vtoGNfE7xdXlv/
AHVbMzCWWzGfwBfJ8H8P/wA/0YuMZ/H2YuMZ9uPsExnTIZuZNU7VcXGM8dcfZjOM9NwaY/nOzbF8
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMzOM
7qAAAJbJyoAAAAAJmXqCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz4pwsssyz/P4NXOnpyDWZnHHc8UzhLM827dv
0l887fsGpqluC3DN82n5J572Atzq0/LWWb5tPyTzXfHHoDUsvwnim/sY3zm5+Enm1fAL4pt78LbJ
yzr6d4a+J3n9gvin/cNW45Y1+VdXE9twXxSc7Lyxq3xJ657Ngxq6T1q6uM+nCaudN911eW/91BZv
JVScTsoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAM4uc5/H2tmYoDM03rcmLnOfx9tAM2W2XPHt9l075lxWgGfDcy54
9i6c7y4rQDMmObmklltzz7fbQDNmcb4x7fZZb1/H20AzZbMZ/H2XpM75/wBNJZLyCY1f/X4WbyJ4
Z62960CWZmExbzePz3aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMksvwCjPinJ4oDQkssyeKe+PXGwKJbJyeKZ
wCgz4pyDQmSWX4BRnxTf2WWXgFTMu0M9P9MzfVe36BsTPz2MzGQVMzOOqeKbe65mcdQUTxTOCapb
gFEzhPFOwNAluAUSWXbr6M6rxN+YDWZnHX/B4p/3H+U1WYzi53xtwTFkmOk6AssvBmXPszp/l3al
lzj5BRnxTf2WWXgFEz89iWXgFEll46Ld5gE8U9YeKesTV5aSZ0zsC5nGVY1bXR/3o14pnAKJnBLM
46+4KCZ+QUTO2Ul2zQaTMzjqnim3uuZnHUFEzM4PFLcAoluE8U67A0CW4AzM4zuWyY92bc6tPdq2
ZkvPQFS2TqW4Z1XfT3BsEtkuAUTxTOC3AKJmZxxfdLcWTfkGgS2TkFGfFPvoXVIDQlskyZnG8z6g
ozbiyb8rnbIKmZnGdzMzjjuzfNp+QbEmqW4UBMzOM7pbvJumrnT3/QNieKZwZwCiSzOOvuoAmSWX
46dQUSWXjoSy7goz4pyssvAKJme/wZzuCjPinvj16Gq4m3XqDQmevHc8U953gKlsnUtwzqu+nuDY
JmS4BRnxTOFtwCiSy7dWfF/6xvx6A2MeL/1Jv/hrIKJLM46+6eKb+wNDPimM+p4p/wBwDQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTe
6t8b+yyYuc3NLpzcy4qyWdc0GdPXuXzzt+1kxnfOfb7MXOc/j7BNfE77tXi9izMxUxcYzt23Bn+H
/erc4nZLMzHEWbTAKxp6922ZMZ3zn2+wSea7449FxvnNz8F053lxVks5uaDM82r4J59Xaf0slltz
z7fZi5tzz7fYJo6+uSefV2n9L4d8y4zyTTvnIJp3zv1vp+lkkz7l075lwuNud71oJo8qfz+GpMTG
cpi5zn8fYJfPO37L5tPyuLnOfx9lltlzx7fYF21S9MYOdWekiXe7XGJuf+p1z7YBtiee9m2bN8za
gmrnTfc1fx7tY3zenCWW4349vsF1eW9icTtCy2Yz+PsksmM/j7BnT/LuaedXf9rJZnfnfj7JLLbn
n2+wSebV8E8+rtP6WSy2559vsxc2559vsE0753630/TUklvul075lwsmPe+oKJJZnNyoM6vLV08T
sWZmMkmJgGdXOnv+jV/HutmbLnj2+yy3G/G/H2CXzemy43ltu3b9F057zqSXrcg0xcy2zeXmNpi5
u/IJmXTcelNPlnZZMSz1zn5SSyYz+ANHlS+fT2v9tSYmM5TFzLnj2+wS+bT8mrnT3/S2W2XPHt9l
ltlzx7fYF5l+DnVL0iXe7XFk/wBn/qb5z7YBtj+fabNs3TneXFBNXOnv+jVzp7/pbptxbePYszjf
j2+wS+edjV/Hut05xvizqXTbjN49gaY1c6e/6bZszZc8e32Cav49y+edlstxvxvx9lmces6gmvjP
uaudPf8AS4txnp6LZnG+LAVjXxO8bZ1TPXHwBr8t+C+X4LLZjP4+yy2Yz+PsE28Mz7f5NWf/ADn1
i3TmSZ44pdNuM3ee39AmrnT3/Rq50rZnG+86l05mL/kFsnXozfNp+VkvW5LLbLnj2+wTVzp7/ptm
y2y549vtoGL5tPyaudPf9LZmy5xYWW2b8e32Cav49y+b02Wy3G/G/H2XTnvOoGN5bbt2/TTMl63L
QMTe6t8b+yyYuc3NLpzcy4qyWdc31+gY1bXM/wD1j0dJxtwkm3rn2SSzrmdvsE0cXvSbatWPTJpz
vj1rUmO95BnTvJvfx+izw6bIeGzi4axtgDaz2wzq4nef2TTZt4tmrMzHAJq6d4WZ5t/H6XGZi7sz
TePFt6Afyk9tjV/Hut059rC6bcZvHsDTGrzafltjVzp+QNfGfdbzPXC4zjPRLN8y4oJPP8H8/hfD
vnPf/uhZvmXAJfPO37L5vTZbN5ZcY+S6c951AxvLbdu36See9p/SyXrcmLnOefb7BNfE7z+zX5V1
TPXHwWWzGfx9g0JZbOce6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZlz7KAAAAAJLLx0UAAAM4SWX4BRMzhQZumXfi+yyY9b
33UAAAAAAAAAAAAAAAAAAAAAAAAAAAABLpl36+sJO973KgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAJJjjKgAAAAAAAAAlmbnN2/70UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMksvxymnzav+2XEz70E8U5XLOnr3J5rv
jj0BqWUzPe45wmN85ufgnXHrvfcFztmbppuZ/nsmny35XR5Z8/7BZZc4+U8U39k086u/7J5tXwDU
svBnp1Znn1dp/RNtVz13BqapVZ0ze31aBiWS6u/7all4Z086u/7P595uDUsufYlluPRnT5tXef2T
z6u0/oC3/wBTnj0NWPTnGdj+c7fs18TvP7Bra73p67HinvO8TV07wszzb+P0C2yXBNUufZnVzo/7
0aszLPUDPfdWM2Ymqdq2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADN075lxVkx1zfX6UBmTGd859vsunO8uK0AkmObmpNNnX
b0+2gGZpx1JMdezQDMlltzz7fZJZbc8+320Azi5tzz7faYttsuN22fDOmZ2oE8Uszc5aSTCgziy2
y885WTG/VQGcXOZcZ52JpxbctAM4uc5/H2WW9fx9tAJZmYv/AH+2ZpvHi29GwGbM2XPHt9rZmYUB
nFvNaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAZ8U4WWWZBRMzOOO54pnAKJNUtwW4AzM4zurFudWn5ayCiSy/CeKb+wLbJ
yrPim3vwtsnIKM+Kf9w1bjkATxSc7LyAZgxp51d/2DYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMfz+DVzp6cri5z
n8fa2ZgJZnm3bt+kvnnb9rNN63Ji5zn8fYJfNp+See9lstsuePb7Lp3zLigl82n5J5rvjj0Xw3Mu
ePYunO8uKBjfObn4SebV8LJjm5pJZbc8+32Ca+neGvid5/a2ZxvjHt9llvX8fYJr8q6uJ7bllsxn
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnT5tX/bLiZ96l075lxVkx1zfX6BnT17k813xx6L
JjO+c+32XTneXFAxvnNz8E649d77rJjm5qTTZ129PsE0+W/K6PLPn/ZNOOpJjr2BNPOrv+yebV8L
JZbc8+32SWW3PPt9gk8+rtP6Jtqueu64ubc8+32mLbbLjcF0ze31aZnilmbnLQMaedXf9n8+83XF
ltl55ysmN+oM6fNq7z+yefV2n9Li5zLjPOxNOLbkE/nO37NfE7z+1xc5z+Psst6/j7A1dO8LM82/
j9LZmYv/AH+2ZpvHi29ANXOj/vRqzMs9UszZc8e32tmZgGc2Ymqdq2zi3mtAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACZmcZ3UAABnwzpmdqtsnKgkmFAAAAEll4oKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPinCyyzLP8AP4NXOnpy
DWZnHHc8UzhLM827dv0l887fsGpqluC3DN82n5J572Atzq0/LWWb5tPyTzXfHHoDUsvwnim/sY3z
m5+Enm1fAL4pt78LbJyzr6d4a+J3n9gvin/cNW45Y1+VdXE9twXxSc7Lyxq3xJ657NglmWdUxiza
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAY/n8GrnT05XFznP4+1szASzPNu3b9JfPO37Wab1uTFznP4+wS+bT8k897LZbZc8e32XTvmXFB
L5tPyTzXfHHovhuZc8exdOd5cUDG+c3Pwk82r4WTHNzSSy2559vsE19O8NfE7z+1szjfGPb7LLev
4+wTX5V1cT23LLZjP4+y9JnfP+gTVviT1z2bZxq/+vws3kBWNUxiz1asvS4Meu4KAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAlkvKgM+GetvetCZl2gKAACZmcdQUAAAAAAAATMzjr/g8U/7j/IKJLLwZ
lz7AoAAAAAAninrDxT1gKJmcZUAAAAAAAEzM46goAAAAAAmZnGdy2THuCglsnUFAAAAAAAAAAAAA
ABMzOM7goAAJmZxncFAAAAAAAAAAAAAAAABLZOoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZJZfhmb3Vvjf2WTFzm5o
HinJ4omnr3L552/YNSyzJ4p749cbM6+J33avF7AWycnimcMfw/71bnE7ArPinLTGnr3BrJLL8Mzz
XfHHouN85ufgDxTf2WWXhmebV8E8+rtP6BrPT/TM31Xt+jR19ck8+rtP6BrPz2MzGWdO+d+t9P0s
kmfcDxTb3XMzjqmjyp/P4BrxTOCapbhm+edv2XzafkGs4TxTsXbVL0xg51Z6SA0luFYnnvYGpZdu
vozqvE35hq5033NX8e4LqsxnFzvjbgmLJMdJ0XV5b2JxO0BnT/Lu1LLnHyzp/l3NPOrv+wXxTf2W
WXhmebV8E8+rtP6BrPz2JZeGdO+d+t9P01JJb7gSy8dFu8wAM6vLSTOmdjV5aunidgZ1bXR/3o14
pnDOrnT3/Rq/j3BrOCWZx192b5vTZcby23bt+gaTPyrFzLbN5eYDWdspLtmmZdNx6U0+WdgPFNvd
czOOqaPKl8+ntf7BrMzg8UtwzfNp+TVzp7/oGrcJ4p12LzL8HOqXpAaS3Csfz7TYC3OrT3atmZLz
0Z1c6e/6NXOnv+gatwzqu+nuXzzsav49wbS2S4VjVzp7/oGvFM4LcM6v49y+edgazM44vuluLJvy
mvjPuaudPf8AQNpbJyrGvid4C+KffQuqQ1+W/BfL8AtskyZnG8z6s7eGZ9v8mrP/AJz6wFtxZN+V
ztlnVzp7/o1c6QazM447s3zaflqydejN82n5BqapbhWNXOnv+mwZt3k3TVzp7/ovm0/Jq509/wBA
14pnBnDOr+Pcvm9NgalmcdfdWcby23bt+mgTJLL8dOrM3urfG/ssmLnNzQWWXjoSy7satrmf/rHo
6TjbgGfFOVll4Z0cXvSbatWPTINZnv8ABnO7OneTe/j9Fnh02QF8U98evQ1XE269V2s9sM6uJ3n9
g1nrx3PFPed4mrp3hZnm38foFtwzqu+nufyk9tjV/HuDaZkuFY1ebT8gvimcLbhnXxn3W8z1wCyy
7dWfF/6xvx6E8/wfz+APF/6k3/w1lm+edv2XzemwNSzOOvunim/sY3ltu3b9JPPe0/oF8Uxn1PFP
+4TXxO8/s1+UGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAZunNzLirJZ1zVAZkxnfOfb7MXOc/j7aASzMxUxcYzt23aAZszMcRZtMKAMy
YzvnPt9tAM3TneXFWSzm5qgMyWW3PPt9mLm3PPt9tAM+HfMuM8k075y0AzdO+ZcLjbne9aoCSYmM
5TFznP4+2gGcXOc/j7LLbLnj2+2gGLvdrjE3P/U659sLdMu/F9lkx63vuCs2b5m1aATG+b04Sy3G
/Ht9tAJZbMZ/H2SWTGfx9qAzJZnfnfj7JLLbnn2+2gGZLLbnn2+zFzbnn2+2gGbp3zLhZMe99VAS
SzOblQBLMzGSTEwoDNmbLnj2+yy3G/G/H20AzdOe86kl63LQAmLm78qAkmJZ65z8pJZMZ/DQCSYm
M5TFzLnj2+2gGbLbLnj2+yy2y549vtoBi73a4sn+z/1N859sNXTLv19YSd73uQVm6c7y4rQDN024
tvHsWZxvx7fbQDN05xvizqXTbjN49mgBmzNlzx7fbQDNluN+N+Psszj1nVoBnFuM9PRbM43xYoAz
qmeuPhoBmy2Yz+PsstmM/j7aAZunMkzxxS6bcZu89v6aAZszjfedS6czF/y0AzJetyWW2XPHt9tA
M2W2XPHt9tADNmbLnFhZbZvx7fbQDNluN+N+PsunPedWgGZL1uWgBm6c3MuKslnXN9fpQEk29c+y
SWdczt9tAMac749a1JjveSTHGVBjw2cXDWNsKAxNNm3i2aszMcKAmMzF3Zmm8eLb0bAZunPtYXTb
jN49mgBjVzp+W0szc5u3/egGM4z0SzfMuK0Az4d857/90LN8y4aAZs3llxj5Lpz3nVoBmS9bkxc5
zz7fbQDOqZ64+Cy2Yz+PtoBLLZzj3UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMksvxyCjPinK5BRJZTM97jnAKJnbM3TTcz/PYFzLn2
VJZc4+U8U39gaEll4M9OoKJNUqgksvHRWJZLq7/tqWXgFEllz7Estx6AucJLL8M2/wDqc8ehqx6c
4zsDWZwqbXe9PXY8U953gKJbJcE1S59gUTPfdQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ0+bV/2y4mfepdO+ZcVZMdc31+
gZ09e5PNd8ceiyYzvnPt9l053lxQMb5zc/BOuPXe+6yY5uak02ddvT7BNPlvyujyz5/2TTjqSY69
gTTzq7/snm1fCyWW3PPt9klltzz7fYJPPq7T+ibarnruuLm3PPt9pi22y43BdM3t9WmZ4pZm5y0D
GnnV3/Z/PvN1xZbZeecrJjfqDOnzau8/snn1dp/S4ucy4zzsTTi25BP5zt+zXxO8/tcXOc/j7LLe
v4+wNXTvCzPNv4/S2ZmL/wB/tmabx4tvQDVzo/70aszLPVLM2XPHt9rZmYBnNmJqnats4t5rQAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAmZnGd1AAAZ8M6ZnarbJyoJJhQAAAAz+QAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ8U4WWWZ
Z/n8GrnT05BrMzjjueKZwlmebdu36S+edv2DU1S3Bbhm+bT8k897AW51aflrLN82n5J5rvjj0BqW
X4TxTf2Mb5zc/CTzavgF8U29+Ftk5Z19O8NfE7z+wXxT/uGrccsa/Kurie24L4pOdl5Y1b4k9c9m
wOHO+bTb1v8Ahq5zNszn5ZtudO32DoEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZxc5z+PtbMxQGZpvW5MXOc/j7a
AZstsuePb7Lp3zLitAM+G5lzx7F053lxWgGZMc3NJLLbnn2+2gGbM43xj2+yy3r+PtoBmy2Yz+Ps
vSZ3z/ppLJeQTGr/AOvws3kTwz1t71oBLM2X0UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
b0bAZszZc8e32tmZhQGcW81oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnxThZZZkFEzM447nimcAok1S3BbgDMzjO6sW51
aflrIKJLL8J4pv7AtsnKs+Kbe/C2ycgoz4p/3DVuOQBPFJzsvICeKesNVxNmZ4b039wbAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAABj+fwaudPTlcXOc/j7WzMBLM827dv0l887ftZpvW5MXOc/j7BL5tPyTz3stltlzx7
fZdO+ZcUEvm0/JPNd8cei+G5lzx7F053lxQMb5zc/CTzavhZMc3NJLLbnn2+wTX07w18TvP7WzON
8Y9vsst6/j7BNflXVxPbcstmM/j7L0md8/6BNW+JPXPZtnGr/wCvws3kBWNU69ZY1ZbxcGPW5BQA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
LnOfx9llvX8fYGrp3hZnm38fpbMzF/7/AGzNN48W3oBq50f96NWZlnqlmbLnj2+1szMAzmzE1TtW
2cW81oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAATMzjO6gAAM+GdMztVtk5UEkwoAAAAmYCgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Az4pwsssyz/P4NXOnpyDWZnHHc8UzhLM827dv0l887fsGpqluC3DN82n5J572Atzq0/LWWb5tPyT
zXfHHoDUsvwnim/sY3zm5+Enm1fAL4pt78LbJyzr6d4a+J3n9gvin/cNW45Y1+VdXE9twXxSc7Ly
xq3xJ657NgzquJ/omJ1lt5TVzp7/AKXVNuwNCTidlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnFznP4+1szFAZmm9
bkxc5z+PtoBmy2y549vsunfMuK0Az4bmXPHsXTneXFaAZkxzc0kstuefb7aAZszjfGPb7LLev4+2
gGbLZjP4+y9JnfP+mksl5BMav/r8LN5E8M9be9aBLMzCYt2t+2gAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATJLL
8Aoz4pyeKA0JLLMninvj1xsCiWycnimcAoM+Kcg0Jkll+AUZ8U39lll4BUzLtDPT/TM31Xt+gbEz
89jMxkFTMzjqnim3uuZnHUFE8UzgmqW4BRM4TxTsDQJbgFEll26+jOq8TfmA1mZx1/weKf8Acf5T
VZjOLnfG3BMWSY6ToCyy8GZc+zOn+XdqWXOPkFGfFN/ZZZeAUTPz2JZeAUSWXjot3mATxT1h4p6x
NXlpJnTOwLmcZVjVtdH/AHo14pnAKJnBLM46+4KCZ+QUTO2Ul2zQaTMzjqnim3uuZnHUFEzM4PFL
cAoluE8U67A0CW4AzM4zuWyY92bc6tPdq2ZkvPQFS2TqW4Z1XfT3BsEtkuAUTxTOC3AKJmZxxfdL
cWTfkGgS2TkFGfFPvoXVIDQlskyZnG8z6gozbiyb8rnbIKmZnGdzMzjjuzfNp+QbEmqW4UBMzOM7
pbvJumrnT3/QNieKZwZwCiSzOOvuoAmSWX46dQUSWXjoSy7goz4pyssvAKJme/wZzuCjPinvj16G
q4m3XqDQmevHc8U953gKlsnUtwzqu+nuDYJmS4BRnxTOFtwCiSy7dWfF/wCsb8egNjHi/wDUm/8A
hrIKJLM46+6eKb+wNDPimM+p4p/3ANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxN7q3xv7LJi5zc0unNzLirJZ1zQZ09e5fPO37WTGd8
59vsxc5z+PsE18Tvu1eL2LMzFTFxjO3bcGf4f96tzidkszMcRZtMArGnr3bZkxnfOfb7BJ5rvjj0
XG+c3PwXTneXFWSzm5oMzzavgnn1dp/SyWW3PPt9mLm3PPt9gmjr65J59Xaf0vh3zLjPJNO+cgmn
fO/W+n6WSTPuXTvmXC4253vWgmjyp/P4akxMZymLnOfx9gl887fsvm0/K4uc5/H2WW2XPHt9gXbV
L0xg51Z6SJd7tcYm5/6nXPtgG2J572bZs3zNqCaudN9zV/Hu1jfN6cJZbjfj2+wXV5b2JxO0LLZj
P4+ySyYz+PsGdP8ALuaedXf9rJZnfnfj7JLLbnn2+wSebV8E8+rtP6WSy2559vsxc2559vsE0753
630/TUklvul075lwsmPe+oKJJZnNyoM6vLV08TsWZmMkmJgGdXOnv+jV/HutmbLnj2+yy3G/G/H2
CXzemy43ltu3b9F057zqSXrcg0xcy2zeXmNpi5u/IJmXTcelNPlnZZMSz1zn5SSyYz+ANHlS+fT2
v9tSYmM5TFzLnj2+wS+bT8mrnT3/AEtltlzx7fZZbZc8e32BeZfg51S9Il3u1xZP9n/qb5z7YBtj
+fabNs3TneXFBNXOnv8Ao1c6e/6W6bcW3j2LM4349vsEvnnY1fx7rdOcb4s6l024zePYGmNXOnv+
m2bM2XPHt9gmr+PcvnnZbLcb8b8fZZnHrOoJr4z7mrnT3/S4txnp6LZnG+LAVjXxO8bZ1TPXHwBr
8t+C+X4LLZjP4+yy2Yz+PsE28Mz7f5NWf/OfWLdOZJnjil024zd57f0CaudPf9GrnStmcb7zqXTm
Yv8AkFsnXozfNp+VkvW5LLbLnj2+wTVzp7/ptmy2y549vtoGL5tPyaudPf8AS2ZsucWFltm/Ht9g
mr+Pcvm9Nlstxvxvx9l057zqBjeW27dv00zJety0DE3urfG/ssmLnNzS6c3MuKslnXN9foGNW1zP
/wBY9HScbcJJt659kks65nb7BNHF70m2rVj0yac749a1JjveQZ07yb38fos8OmyHhs4uGsbYA2s9
sM6uJ3n9k02beLZqzMxwCauneFmebfx+lxmYu7M03jxbegH8pPbY1fx7rdOfawum3Gbx7A0xq82n
5bY1c6fkDXxn3W8z1wuM4z0SzfMuKCTz/B/P4Xw75z3/AO6Fm+ZcAl887fsvm9Nls3llxj5Lpz3n
UDG8tt27fpJ572n9LJetyYuc559vsE18TvP7NflXVM9cfBZbMZ/H2DQlls5x7qAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmX
PsoAAAAAksvHRQAAAzhJZfgFEzOFBm6Zd+L7LJj1vfdQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEumX
fr6wk73vcqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkmOMqAAAAAAAAACWZuc3b/vRQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAEySy/HKafNq/7ZcTPvQTxTlcs6evcnmu+OPQGpZTM97jnCY3zm5+Cdceu99wXO2Zumm5
n+eyafLfldHlnz/sFllzj5TxTf2TTzq7/snm1fANSy8GenVmefV2n9E21XPXcGpqlVnTN7fVoGJZ
Lq7/ALall4Z086u/7P595uDUsufYlluPRnT5tXef2Tz6u0/oC3/1OePQ1Y9OcZ2P5zt+zXxO8/sG
trvenrseKe87xNXTvCzPNv4/QLbJcE1S59mdXOj/AL0aszLPUDPfdWM2Ymqdq2AAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADN
075lxVkx1zfX6UBmTGd859vsunO8uK0AkmObmpNNnXb0+2gGZpx1JMdezQDMlltzz7fZJZbc8+32
0Azi5tzz7faYttsuN22fDOmZ2oE8Uszc5aSTCgziy2y885WTG/VQGcXOZcZ52JpxbctAM4uc5/H2
WW9fx9tAJZmYv/f7Zmm8eLb0bAZszZc8e32tmZhQGcW81oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnxThZZZkFEzM447n
imcAok1S3BbgDMzjO6sW51aflrIKJLL8J4pv7AtsnKs+Kbe/C2ycgoz4p/3DVuOQBPFJzsvIGccp
4p6wszz/AIZ1ScSTNuAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABnT5tX/bLiZ96l075lxVkx1zfX6BnT17k813xx6LJjO+c+32XTneXF
AxvnNz8E649d77rJjm5qTTZ129PsE0+W/K6PLPn/AGTTjqSY69gTTzq7/snm1fCyWW3PPt9klltz
z7fYJPPq7T+ibarnruuLm3PPt9pi22y43BdM3t9WmZ4pZm5y0DGnnV3/AGfz7zdcWW2XnnKyY36g
zp82rvP7J59Xaf0uLnMuM87E04tuQT+c7fs18TvP7XFznP4+yy3r+PsDV07wszzb+P0tmZi/9/tm
abx4tvQDVzo/70aszLPVLM2XPHt9rZmYBnNmJqnats4t5rQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmZnGd1AAAZ
8M6ZnarbJyoJJhQAAABMz1BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAz4pwsssyCiZmccdzxTOAUSapbgtwBmZxndWLc6tPy1kFEll+E8U3
9gW2TlWfFNvfhbZOQUZ8U/7hq3HIAnik52XkBMz1Z1c6Z0tXVxn0BoSbyX2UAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAGP5/Bq509OVxc5z+PtbMwEszzbt2/SXzzt+1mm9bkxc5z+PsEvm0/JPPey2W2XPHt9l075lxQS
+bT8k813xx6L4bmXPHsXTneXFAxvnNz8JPNq+Fkxzc0kstuefb7BNfTvDXxO8/tbM43xj2+yy3r+
PsE1+VdXE9tyy2Yz+PsvSZ3z/oE1b4k9c9m2cav/AK/CzeQCzLGrO0zm32dEk6831BQAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEsl5UBnwz1t71oTMu0BQAATMzjqCgAAAAAAACZmcdf8Hin/cf5BRJZ
eDMufYFAAAAAAE8U9YeKesBRMzjKgAAAAAAAmZnHUFAAAAAAEzM4zuWyY9wUEtk6goAAAAAAAAAA
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAATMzjO6gAAM+GdMztVtk5UEkwoAAAAZgAJmXqCgAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz4pw
sssyz/P4NXOnpyDWZnHHc8UzhLM827dv0l887fsGpqluC3DN82n5J572Atzq0/LWWb5tPyTzXfHH
oDUsvwnim/sY3zm5+Enm1fAL4pt78LbJyzr6d4a+J3n9gvin/cNW45Y1+VdXE9twXxSc7Lyxq3xJ
657NgMaedXf9tsaedXf9gauk9aurjPpwmrnTfddXlv8A3UFm8lVJxOygAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzi5z
n8fa2ZigMzTetyYuc5/H20AzZbZc8e32XTvmXFaAZ8NzLnj2LpzvLitAMyY5uaSWW3PPt9tAM2Zx
vjHt9llvX8fbQDNlsxn8fZekzvn/AE0lkvIJjV/9fhZvInhnrb3rQDMlltzz7fbQCWZmExbzePz3
aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAABMksvwCjPinJ4oDQkssyeKe+PXGwKJbJyeKZwCgz4pyDQmSWX4BRnxTf
2WWXgFTMu0M9P9MzfVe36BsTPz2MzGQVMzOOqeKbe65mcdQUTxTOCapbgFEzhPFOwNAluAUSWXbr
6M6rxN+YDWZnHX/B4p/3H+U1WYzi53xtwTFkmOk6AssvBmXPszp/l3allzj5BRnxTf2WWXgFEz89
iWXgFEll46Ld5gE8U9YeKesTV5aSZ0zsC5nGVY1bXR/3o14pnAKJnBLM46+4KCZ+QUTO2Ul2zQaT
Mzjqnim3uuZnHUFEzM4PFLcAoluE8U67A0CW4AzM4zuWyY92bc6tPdq2ZkvPQFS2TqW4Z1XfT3Bs
EtkuAUTxTOC3AKJmZxxfdLcWTfkGgS2TkFGfFPvoXVIDQlskyZnG8z6gozbiyb8rnbIKmZnGdzMz
jjuzfNp+QbEmqW4UBMzOM7pbvJumrnT3/QNieKZwZwCiSzOOvuoAmSWX46dQUSWXjoSy7goz4pys
svAKJme/wZzuCjPinvj16Gq4m3XqDQmevHc8U953gKlsnUtwzqu+nuDYJmS4BRnxTOFtwCiSy7dW
fF/6xvx6A2MeL/1Jv/hrIKJLM46+6eKb+wNDPimM+p4p/wBwDQAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTe6t8b+yyYuc3NLpzcy4qy
Wdc0GdPXuXzzt+1kxnfOfb7MXOc/j7BNfE77tXi9izMxUxcYzt23Bn+H/erc4nZLMzHEWbTAKxp6
922ZMZ3zn2+wSea7449FxvnNz8F053lxVks5uaDM82r4J59Xaf0slltzz7fZi5tzz7fYJo6+uSef
V2n9L4d8y4zyTTvnIJp3zv1vp+lkkz7l075lwuNud71oJo8qfz+GpMTGcpi5zn8fYJfPO37L5tPy
uLnOfx9lltlzx7fYF21S9MYOdWekiXe7XGJuf+p1z7YBtiee9m2bN8zagmrnTfc1fx7tY3zenCWW
4349vsF1eW9icTtCy2Yz+PsksmM/j7BnT/LuaedXf9rJZnfnfj7JLLbnn2+wSebV8E8+rtP6WSy2
559vsxc2559vsE0753630/TUklvul075lwsmPe+oKJJZnNyoM6vLV08TsWZmMkmJgGdXOnv+jV/H
utmbLnj2+yy3G/G/H2CXzemy43ltu3b9F057zqSXrcg0xcy2zeXmNpi5u/IJmXTcelNPlnZZMSz1
zn5SSyYz+ANHlS+fT2v9tSYmM5TFzLnj2+wS+bT8mrnT3/S2W2XPHt9lltlzx7fYF5l+DnVL0iXe
7XFk/wBn/qb5z7YBtj+fabNs3TneXFBNXOnv+jVzp7/pbptxbePYszjfj2+wS+edjV/Hut05xviz
qXTbjN49gaY1c6e/6bZszZc8e32Cav49y+edlstxvxvx9lmces6gmvjPuaudPf8AS4txnp6LZnG+
LAVjXxO8bZ1TPXHwBr8t+C+X4LLZjP4+yy2Yz+PsE28Mz7f5NWf/ADn1i3TmSZ44pdNuM3ee39Am
rnT3/Rq50rZnG+86l05mL/kFsnXozfNp+VkvW5LLbLnj2+wTVzp7/ptmy2y549vtoGL5tPyaudPf
9LZmy5xYWW2b8e32Cav49y+b02Wy3G/G/H2XTnvOoGN5bbt2/TTMl63LQMTe6t8b+yyYuc3NLpzc
y4qyWdc31+gY1bXM/wD1j0dJxtwkm3rn2SSzrmdvsE0cXvSbatWPTJpzvj1rUmO95BnTvJvfx+iz
w6bIeGzi4axtgDaz2wzq4nef2TTZt4tmrMzHAJq6d4WZ5t/H6XGZi7szTePFt6Afyk9tjV/Hut05
9rC6bcZvHsDTGrzafltjVzp+QNfGfdbzPXC4zjPRLN8y4oJPP8H8/hfDvnPf/uhZvmXAJfPO37L5
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
AB//2Q==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425461</attachid>
            <date>2021-04-07 17:14:05 -0700</date>
            <delta_ts>2021-04-07 18:01:39 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>224279_OfflineAudioContext_leak_wip.patch</filename>
            <type>text/plain</type>
            <size>58410</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQvb2Zm
bGluZWF1ZGlvY29udGV4dC1sZWFrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L09mZmxpbmVBdWRpb0NvbnRleHQvb2ZmbGluZWF1ZGlvY29udGV4dC1sZWFrLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg0OWY0YjI1OThmZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRl
eHQvb2ZmbGluZWF1ZGlvY29udGV4dC1sZWFrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBA
CitNYWtlcyBzdXJlIHRoYXQgdGhlIE9mZmxpbmVBdWRpb0NvbnRleHQgb2JqZWN0cyBhcmUgbm90
IGxlYWtpbmcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGludGVybmFs
cy5udW1iZXJPZkJhc2VBdWRpb0NvbnRleHRzKCkgPj0gaW5zdGFuY2VzVG9DcmVhdGUgaXMgdHJ1
ZQorUEFTUyBpbnRlcm5hbHMubnVtYmVyT2ZCYXNlQXVkaW9Db250ZXh0cygpIDwgaW5zdGFuY2Vz
VG9DcmVhdGUgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL09mZmxpbmVBdWRp
b0NvbnRleHQvb2ZmbGluZWF1ZGlvY29udGV4dC1sZWFrLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9PZmZsaW5lQXVkaW9Db250ZXh0L29mZmxpbmVhdWRpb2NvbnRleHQtbGVhay5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTc5OWUyZjA3MTgxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC9v
ZmZsaW5lYXVkaW9jb250ZXh0LWxlYWsuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJNYWtlcyBzdXJlIHRoYXQg
dGhlIE9mZmxpbmVBdWRpb0NvbnRleHQgb2JqZWN0cyBhcmUgbm90IGxlYWtpbmcuIik7Citqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworY29uc3QgaW5zdGFuY2VzVG9DcmVhdGUgPSAxMDA7CisKK2Z1
bmN0aW9uIGFsbG9jYXRlQ29udGV4dHMoKSB7CisgICAgbGV0IGNvbnRleHRzID0gW107CisgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCBpbnN0YW5jZXNUb0NyZWF0ZTsgaSsrKQorICAgICAgICBjb250
ZXh0cy5wdXNoKG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDIsIDEsIDQ0MTAwKSk7CisgICAgc2hv
dWxkQmVUcnVlKCJpbnRlcm5hbHMubnVtYmVyT2ZCYXNlQXVkaW9Db250ZXh0cygpID49IGluc3Rh
bmNlc1RvQ3JlYXRlIik7Cit9CisKK2FsbG9jYXRlQ29udGV4dHMoKTsKK2djKCk7CitzZXRUaW1l
b3V0KCgpID0+IHsKKyAgICBnYygpOworICAgIHNob3VsZEJlVHJ1ZSgiaW50ZXJuYWxzLm51bWJl
ck9mQmFzZUF1ZGlvQ29udGV4dHMoKSA8IGluc3RhbmNlc1RvQ3JlYXRlIik7CisgICAgZmluaXNo
SlNUZXN0KCk7Cit9LCAwKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvV2Vha1B0ci5oIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCmlu
ZGV4IDMzNWY3NDQ2ZDJiZi4uNmY2MmYyMTJlOTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9XZWFrUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCkBAIC0zOCw2ICszOCw4
IEBAIHN0cnVjdCBFbXB0eUNvdW50ZXIgewogICAgIHN0YXRpYyB2b2lkIGRlY3JlbWVudCgpIHsg
fQogfTsKIAorZW51bSBjbGFzcyBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA6IGJv
b2wgeyBObywgWWVzIH07CisKIHRlbXBsYXRlPHR5cGVuYW1lIENvdW50ZXIgPSBFbXB0eUNvdW50
ZXI+IGNsYXNzIFdlYWtQdHJJbXBsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYWtQ
dHJJbXBsPENvdW50ZXI+PiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2Vha1B0ckltcGwp
OwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtOTEsNyArOTMsNyBAQCBwdWJsaWM6
CiAgICAgVCogZ2V0KCkgY29uc3QKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBPdXIgR0MgdGhy
ZWFkcyBjdXJyZW50bHkgbmVlZCB0byBnZXQgb3BhcXVlIHBvaW50ZXJzIGZyb20gV2Vha1B0cnMg
YW5kIGhhdmUgdG8gYmUgc3BlY2lhbC1jYXNlZC4KLSAgICAgICAgQVNTRVJUKCFtX2ltcGwgfHwg
VGhyZWFkOjptYXlCZUdDVGhyZWFkKCkgfHwgbV9pbXBsLT53YXNDb25zdHJ1Y3RlZE9uTWFpblRo
cmVhZCgpID09IGlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgQVNTRVJUKCFtX2ltcGwgfHwgIW1f
YXJlVGhyZWFkaW5nQXNzZXJ0aW9uc0VuYWJsZWQgfHwgVGhyZWFkOjptYXlCZUdDVGhyZWFkKCkg
fHwgbV9pbXBsLT53YXNDb25zdHJ1Y3RlZE9uTWFpblRocmVhZCgpID09IGlzTWFpblRocmVhZCgp
KTsKICAgICAgICAgcmV0dXJuIG1faW1wbCA/IHN0YXRpY19jYXN0PFQqPihtX2ltcGwtPnRlbXBs
YXRlIGdldDxUPigpKSA6IG51bGxwdHI7CiAgICAgfQogCkBAIC0xMDQsMTMgKzEwNiwxMyBAQCBw
dWJsaWM6CiAKICAgICBUKiBvcGVyYXRvci0+KCkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VS
VCghbV9pbXBsIHx8IG1faW1wbC0+d2FzQ29uc3RydWN0ZWRPbk1haW5UaHJlYWQoKSA9PSBpc01h
aW5UaHJlYWQoKSk7CisgICAgICAgIEFTU0VSVCghbV9pbXBsIHx8ICFtX2FyZVRocmVhZGluZ0Fz
c2VydGlvbnNFbmFibGVkIHx8IG1faW1wbC0+d2FzQ29uc3RydWN0ZWRPbk1haW5UaHJlYWQoKSA9
PSBpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIHJldHVybiBnZXQoKTsKICAgICB9CiAKICAgICBU
JiBvcGVyYXRvciooKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2ltcGwgfHwgbV9p
bXBsLT53YXNDb25zdHJ1Y3RlZE9uTWFpblRocmVhZCgpID09IGlzTWFpblRocmVhZCgpKTsKKyAg
ICAgICAgQVNTRVJUKCFtX2ltcGwgfHwgIW1fYXJlVGhyZWFkaW5nQXNzZXJ0aW9uc0VuYWJsZWQg
fHwgbV9pbXBsLT53YXNDb25zdHJ1Y3RlZE9uTWFpblRocmVhZCgpID09IGlzTWFpblRocmVhZCgp
KTsKICAgICAgICAgcmV0dXJuICpnZXQoKTsKICAgICB9CiAKQEAgLTEyMSwxMiArMTIzLDE5IEBA
IHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1lPiBmcmllbmQgY2xhc3Mg
V2Vha1B0cjsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWU+IGZyaWVuZCBjbGFzcyBX
ZWFrUHRyRmFjdG9yeTsKIAotICAgIGV4cGxpY2l0IFdlYWtQdHIoUmVmPFdlYWtQdHJJbXBsPENv
dW50ZXI+PiYmIHJlZikKKyAgICBleHBsaWNpdCBXZWFrUHRyKFJlZjxXZWFrUHRySW1wbDxDb3Vu
dGVyPj4mJiByZWYsIEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQ
dHJUaHJlYWRpbmdBc3NlcnRpb25zKQogICAgICAgICA6IG1faW1wbChXVEZNb3ZlKHJlZikpCisj
aWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAgLCBtX2FyZVRocmVhZGluZ0Fzc2VydGlvbnNFbmFi
bGVkKGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zID09IEVuYWJsZVdlYWtQdHJUaHJl
YWRpbmdBc3NlcnRpb25zOjpZZXMpCisjZW5kaWYKICAgICB7CisgICAgICAgIFVOVVNFRF9QQVJB
TShlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7CiAgICAgfQogCiAgICAgUmVmUHRy
PFdlYWtQdHJJbXBsPENvdW50ZXI+PiBtX2ltcGw7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBi
b29sIG1fYXJlVGhyZWFkaW5nQXNzZXJ0aW9uc0VuYWJsZWQgeyB0cnVlIH07CisjZW5kaWYKIH07
CiAKIC8vIE5vdGU6IHlvdSBwcm9iYWJseSB3YW50IHRvIGluaGVyaXQgZnJvbSBDYW5NYWtlV2Vh
a1B0ciByYXRoZXIgdGhhbiB1c2UgdGhpcyBkaXJlY3RseS4KQEAgLTE1OSwxMiArMTY4LDEyIEBA
IHB1YmxpYzoKICAgICAgICAgbV9pbXBsID0gV2Vha1B0ckltcGw8Q291bnRlcj46OmNyZWF0ZShj
b25zdF9jYXN0PFQqPigmb2JqZWN0KSk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VT4gV2Vha1B0cjxVLCBDb3VudGVyPiBjcmVhdGVXZWFrUHRyKFUmIG9iamVjdCkgY29uc3QKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBXZWFrUHRyPFUsIENvdW50ZXI+IGNyZWF0ZVdlYWtQdHIo
VSYgb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBlbmFibGVXZWFrUHRy
VGhyZWFkaW5nQXNzZXJ0aW9ucyA9IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZ
ZXMpIGNvbnN0CiAgICAgewogICAgICAgICBpbml0aWFsaXplSWZOZWVkZWQob2JqZWN0KTsKIAog
ICAgICAgICBBU1NFUlQoJm9iamVjdCA9PSBtX2ltcGwtPnRlbXBsYXRlIGdldDxUPigpKTsKLSAg
ICAgICAgcmV0dXJuIFdlYWtQdHI8VSwgQ291bnRlcj4obWFrZVJlZigqbV9pbXBsKSk7CisgICAg
ICAgIHJldHVybiBXZWFrUHRyPFUsIENvdW50ZXI+KG1ha2VSZWYoKm1faW1wbCksIGVuYWJsZVdl
YWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zKTsKICAgICB9CiAKICAgICB2b2lkIHJldm9rZUFsbCgp
CkBAIC0yMzUsMjUgKzI0NCwzMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBDb3Vu
dGVyPiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgV2Vha1B0cjxULCBDbwogdGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgQ291bnRlcj4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5l
IFdlYWtQdHI8VCwgQ291bnRlcj4mIFdlYWtQdHI8VCwgQ291bnRlcj46Om9wZXJhdG9yPShjb25z
dCBXZWFrUHRyPFUsIENvdW50ZXI+JiBvKQogewogICAgIG1faW1wbCA9IHdlYWtfcHRyX2ltcGxf
Y2FzdDxULCBVPihvLm1faW1wbC5nZXQoKSk7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBtX2Fy
ZVRocmVhZGluZ0Fzc2VydGlvbnNFbmFibGVkID0gby5tX2FyZVRocmVhZGluZ0Fzc2VydGlvbnNF
bmFibGVkOworI2VuZGlmCiAgICAgcmV0dXJuICp0aGlzOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBDb3VudGVyPiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgV2Vha1B0
cjxULCBDb3VudGVyPiYgV2Vha1B0cjxULCBDb3VudGVyPjo6b3BlcmF0b3I9KFdlYWtQdHI8VSwg
Q291bnRlcj4mJiBvKQogewogICAgIG1faW1wbCA9IGFkb3B0UmVmKHdlYWtfcHRyX2ltcGxfY2Fz
dDxULCBVPihvLm1faW1wbC5sZWFrUmVmKCkpKTsKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIG1f
YXJlVGhyZWFkaW5nQXNzZXJ0aW9uc0VuYWJsZWQgPSBvLm1fYXJlVGhyZWFkaW5nQXNzZXJ0aW9u
c0VuYWJsZWQ7CisjZW5kaWYKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKLXRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGlubGluZSBhdXRvIG1ha2VXZWFrUHRyKFQmIG9iamVjdCkKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+IGlubGluZSBhdXRvIG1ha2VXZWFrUHRyKFQmIG9iamVjdCwgRW5hYmxlV2Vha1B0clRo
cmVhZGluZ0Fzc2VydGlvbnMgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMgPSBFbmFi
bGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQogewotICAgIHJldHVybiBvYmplY3Qu
d2Vha1B0ckZhY3RvcnkoKS50ZW1wbGF0ZSBjcmVhdGVXZWFrUHRyPFQ+KG9iamVjdCk7CisgICAg
cmV0dXJuIG9iamVjdC53ZWFrUHRyRmFjdG9yeSgpLnRlbXBsYXRlIGNyZWF0ZVdlYWtQdHI8VD4o
b2JqZWN0LCBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7CiB9CiAKLXRlbXBsYXRl
PHR5cGVuYW1lIFQ+IGlubGluZSBhdXRvIG1ha2VXZWFrUHRyKFQqIHB0cikgLT4gZGVjbHR5cGUo
bWFrZVdlYWtQdHIoKnB0cikpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgYXV0byBtYWtl
V2Vha1B0cihUKiBwdHIsIEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIGVuYWJsZVdl
YWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlv
bnM6OlllcykgLT4gZGVjbHR5cGUobWFrZVdlYWtQdHIoKnB0cikpCiB7CiAgICAgaWYgKCFwdHIp
CiAgICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIG1ha2VXZWFrUHRyKCpwdHIpOworICAg
IHJldHVybiBtYWtlV2Vha1B0cigqcHRyLCBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9u
cyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIENvdW50
ZXI+IGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgV2Vha1B0cjxULCBDb3VudGVyPiYgYSwg
Y29uc3QgV2Vha1B0cjxVLCBDb3VudGVyPiYgYikKQEAgLTI4OSw2ICszMDQsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBDb3VudGVyPiBpbmxpbmUgYm9vbCBv
cGVyYXRvciE9KFQqIGEsCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNpbmcgV1RGOjpDYW5NYWtl
V2Vha1B0cjsKK3VzaW5nIFdURjo6RW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM7CiB1
c2luZyBXVEY6OldlYWtQdHI7CiB1c2luZyBXVEY6OldlYWtQdHJGYWN0b3J5OwogdXNpbmcgV1RG
OjpXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IGEwODMwOWYwMThmMS4uN2FlMzhh
MzBhOGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuY3BwCkBAIC0xNTIsMTUgKzE1MiwxMSBAQCBkb3VibGUgQXVkaW9Db250ZXh0OjpiYXNl
TGF0ZW5jeSgpCiB7CiAgICAgbGF6eUluaXRpYWxpemUoKTsKIAotICAgIGF1dG8qIGRlc3RpbmF0
aW9uID0gdGhpcy0+ZGVzdGluYXRpb24oKTsKLSAgICByZXR1cm4gZGVzdGluYXRpb24gPyBzdGF0
aWNfY2FzdDxkb3VibGU+KGRlc3RpbmF0aW9uLT5mcmFtZXNQZXJCdWZmZXIoKSkgLyBzYW1wbGVS
YXRlKCkgOiAwLjsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihkZXN0aW5hdGlvbigp
LmZyYW1lc1BlckJ1ZmZlcigpKSAvIHNhbXBsZVJhdGUoKTsKIH0KIAogQXVkaW9UaW1lc3RhbXAg
QXVkaW9Db250ZXh0OjpnZXRPdXRwdXRUaW1lc3RhbXAoRE9NV2luZG93JiB3aW5kb3cpCiB7Ci0g
ICAgaWYgKCFkZXN0aW5hdGlvbigpKQotICAgICAgICByZXR1cm4geyAwLCAwIH07Ci0KICAgICBh
dXRvJiBwZXJmb3JtYW5jZSA9IHdpbmRvdy5wZXJmb3JtYW5jZSgpOwogCiAgICAgYXV0byBwb3Np
dGlvbiA9IG91dHB1dFBvc2l0aW9uKCk7CkBAIC0xODIsNyArMTc4LDcgQEAgdm9pZCBBdWRpb0Nv
bnRleHQ6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoc3RhdGUoKSA9PSBTdGF0ZTo6Q2xvc2VkIHx8ICFk
ZXN0aW5hdGlvbk5vZGUoKSkgeworICAgIGlmIChzdGF0ZSgpID09IFN0YXRlOjpDbG9zZWQpIHsK
ICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0x
OTEsMTUgKzE4NywyMCBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6Y2xvc2UoRE9NUHJvbWlzZURlZmVy
cmVkPHZvaWQ+JiYgcHJvbWlzZSkKIAogICAgIGxhenlJbml0aWFsaXplKCk7CiAKLSAgICBkZXN0
aW5hdGlvbk5vZGUoKS0+Y2xvc2UoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KV0geworICAgIGRlc3RpbmF0aW9uKCkuY2xvc2UoW3RoaXMsIGFjdGl2aXR5ID0gbWFrZVBlbmRp
bmdBY3Rpdml0eSgqdGhpcyldIHsKICAgICAgICAgc2V0U3RhdGUoU3RhdGU6OkNsb3NlZCk7CiAg
ICAgICAgIHVuaW5pdGlhbGl6ZSgpOwogICAgIH0pOwogfQogCi1EZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGUqIEF1ZGlvQ29udGV4dDo6ZGVzdGluYXRpb24oKQorRGVmYXVsdEF1ZGlvRGVzdGlu
YXRpb25Ob2RlJiBBdWRpb0NvbnRleHQ6OmRlc3RpbmF0aW9uKCkKK3sKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlJj4oQmFzZUF1ZGlvQ29udGV4dDo6
ZGVzdGluYXRpb24oKSk7Cit9CisKK2NvbnN0IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZSYg
QXVkaW9Db250ZXh0OjpkZXN0aW5hdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZSo+KEJhc2VBdWRpb0NvbnRleHQ6OmRlc3Rp
bmF0aW9uKCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUmPihCYXNlQXVkaW9Db250ZXh0OjpkZXN0aW5hdGlvbigpKTsKIH0KIAogdm9p
ZCBBdWRpb0NvbnRleHQ6OnN1c3BlbmRSZW5kZXJpbmcoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYgcHJvbWlzZSkKQEAgLTIwOSw3ICsyMTAsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6c3VzcGVu
ZFJlbmRlcmluZyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGlzU3RvcHBlZCgpIHx8IHN0YXRlKCkgPT0gU3RhdGU6
OkNsb3NlZCB8fCAhZGVzdGluYXRpb25Ob2RlKCkpIHsKKyAgICBpZiAoaXNTdG9wcGVkKCkgfHwg
c3RhdGUoKSA9PSBTdGF0ZTo6Q2xvc2VkKSB7CiAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ29udGV4dCBpcyBjbG9zZWQiX3MgfSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC0yMjMsNyArMjI0LDcgQEAgdm9pZCBBdWRpb0NvbnRleHQ6
OnN1c3BlbmRSZW5kZXJpbmcoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIAog
ICAgIGxhenlJbml0aWFsaXplKCk7CiAKLSAgICBkZXN0aW5hdGlvbk5vZGUoKS0+c3VzcGVuZChb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAg
ZGVzdGluYXRpb24oKS5zdXNwZW5kKFt0aGlzLCBhY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZp
dHkoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oT3B0aW9uYWw8RXhjZXB0aW9u
PiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmIChleGNlcHRpb24pIHsKICAgICAg
ICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4Y2VwdGlvbikpOwogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtMjQwLDcgKzI0MSw3IEBAIHZvaWQgQXVkaW9Db250ZXh0OjpyZXN1bWVSZW5k
ZXJpbmcoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGlmIChpc1N0b3BwZWQoKSB8fCBzdGF0ZSgpID09IFN0YXRlOjpDbG9z
ZWQgfHwgIWRlc3RpbmF0aW9uTm9kZSgpKSB7CisgICAgaWYgKGlzU3RvcHBlZCgpIHx8IHN0YXRl
KCkgPT0gU3RhdGU6OkNsb3NlZCkgewogICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkNvbnRleHQgaXMgY2xvc2VkIl9zIH0pOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtMjU0LDcgKzI1NSw3IEBAIHZvaWQgQXVkaW9Db250ZXh0OjpyZXN1
bWVSZW5kZXJpbmcoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIAogICAgIGxh
enlJbml0aWFsaXplKCk7CiAKLSAgICBkZXN0aW5hdGlvbk5vZGUoKS0+cmVzdW1lKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICBkZXN0aW5h
dGlvbigpLnJlc3VtZShbdGhpcywgYWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlz
KSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNl
cHRpb24pIG11dGFibGUgewogICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CiAgICAgICAgICAgICBw
cm9taXNlLnJlamVjdChXVEZNb3ZlKCpleGNlcHRpb24pKTsKICAgICAgICAgICAgIHJldHVybjsK
QEAgLTI5MywxMCArMjk0LDEwIEBAIHZvaWQgQXVkaW9Db250ZXh0OjpzdGFydFJlbmRlcmluZygp
CiAgICAgaWYgKGlzU3RvcHBlZCgpIHx8ICF3aWxsQmVnaW5QbGF5YmFjaygpIHx8IG1fd2FzU3Vz
cGVuZGVkQnlTY3JpcHQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1ha2VQZW5kaW5nQWN0aXZp
dHkoKTsKKyAgICBzZXRQZW5kaW5nQWN0aXZpdHkoKTsKIAogICAgIGxhenlJbml0aWFsaXplKCk7
Ci0gICAgZGVzdGluYXRpb24oKS0+c3RhcnRSZW5kZXJpbmcoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgeworICAg
IGRlc3RpbmF0aW9uKCkuc3RhcnRSZW5kZXJpbmcoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgewogICAgICAgICBp
ZiAoIWV4Y2VwdGlvbikKICAgICAgICAgICAgIHNldFN0YXRlKFN0YXRlOjpSdW5uaW5nKTsKICAg
ICB9KTsKQEAgLTMwOSw3ICszMTAsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6bGF6eUluaXRpYWxp
emUoKQogCiAgICAgQmFzZUF1ZGlvQ29udGV4dDo6bGF6eUluaXRpYWxpemUoKTsKICAgICBpZiAo
aXNJbml0aWFsaXplZCgpKSB7Ci0gICAgICAgIGlmIChkZXN0aW5hdGlvbk5vZGUoKSAmJiBzdGF0
ZSgpICE9IFN0YXRlOjpSdW5uaW5nKSB7CisgICAgICAgIGlmIChzdGF0ZSgpICE9IFN0YXRlOjpS
dW5uaW5nKSB7CiAgICAgICAgICAgICAvLyBUaGlzIHN0YXJ0cyB0aGUgYXVkaW8gdGhyZWFkLiBU
aGUgZGVzdGluYXRpb24gbm9kZSdzIHByb3ZpZGVJbnB1dCgpIG1ldGhvZCB3aWxsIG5vdyBiZSBj
YWxsZWQgcmVwZWF0ZWRseSB0byByZW5kZXIgYXVkaW8uCiAgICAgICAgICAgICAvLyBFYWNoIHRp
bWUgcHJvdmlkZUlucHV0KCkgaXMgY2FsbGVkLCBhIHBvcnRpb24gb2YgdGhlIGF1ZGlvIHN0cmVh
bSBpcyByZW5kZXJlZC4gTGV0J3MgY2FsbCB0aGlzIHRpbWUgcGVyaW9kIGEgInJlbmRlciBxdWFu
dHVtIi4KICAgICAgICAgICAgIC8vIE5PVEU6IGZvciBub3cgZGVmYXVsdCBBdWRpb0NvbnRleHQg
ZG9lcyBub3QgbmVlZCBhbiBleHBsaWNpdCBzdGFydFJlbmRlcmluZygpIGNhbGwgZnJvbSBKYXZh
U2NyaXB0LgpAQCAtMzQ2LDcgKzM0Nyw3IEBAIGJvb2wgQXVkaW9Db250ZXh0Ojp3aWxsUGF1c2VQ
bGF5YmFjaygpCiAKIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBBdWRpb0NvbnRleHQ6
Om1lZGlhU3RhdGUoKSBjb25zdAogewotICAgIGlmICghaXNTdG9wcGVkKCkgJiYgZGVzdGluYXRp
b25Ob2RlKCkgJiYgZGVzdGluYXRpb25Ob2RlKCktPmlzUGxheWluZ0F1ZGlvKCkpCisgICAgaWYg
KCFpc1N0b3BwZWQoKSAmJiBkZXN0aW5hdGlvbigpLmlzUGxheWluZ0F1ZGlvKCkpCiAgICAgICAg
IHJldHVybiBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdBdWRpbzsKIAogICAgIHJldHVybiBNZWRp
YVByb2R1Y2VyOjpJc05vdFBsYXlpbmc7CkBAIC0zNTQsNyArMzU1LDcgQEAgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFTdGF0ZSgpIGNvbnN0CiAKIHZv
aWQgQXVkaW9Db250ZXh0OjptYXlSZXN1bWVQbGF5YmFjayhib29sIHNob3VsZFJlc3VtZSkKIHsK
LSAgICBpZiAoIWRlc3RpbmF0aW9uTm9kZSgpIHx8IHN0YXRlKCkgPT0gU3RhdGU6OkNsb3NlZCB8
fCBzdGF0ZSgpID09IFN0YXRlOjpSdW5uaW5nKQorICAgIGlmIChzdGF0ZSgpID09IFN0YXRlOjpD
bG9zZWQgfHwgc3RhdGUoKSA9PSBTdGF0ZTo6UnVubmluZykKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgaWYgKCFzaG91bGRSZXN1bWUpIHsKQEAgLTM2Nyw3ICszNjgsNyBAQCB2b2lkIEF1ZGlvQ29u
dGV4dDo6bWF5UmVzdW1lUGxheWJhY2soYm9vbCBzaG91bGRSZXN1bWUpCiAKICAgICBsYXp5SW5p
dGlhbGl6ZSgpOwogCi0gICAgZGVzdGluYXRpb25Ob2RlKCktPnJlc3VtZShbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9u
KSB7CisgICAgZGVzdGluYXRpb24oKS5yZXN1bWUoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgewogICAgICAgICBz
ZXRTdGF0ZShleGNlcHRpb24gPyBTdGF0ZTo6U3VzcGVuZGVkIDogU3RhdGU6OlJ1bm5pbmcpOwog
ICAgIH0pOwogfQpAQCAtNDQxLDEyICs0NDIsMTIgQEAgdm9pZCBBdWRpb0NvbnRleHQ6OnJlc3Vt
ZSgpCiAKIHZvaWQgQXVkaW9Db250ZXh0OjpzdXNwZW5kUGxheWJhY2soKQogewotICAgIGlmICgh
ZGVzdGluYXRpb25Ob2RlKCkgfHwgc3RhdGUoKSA9PSBTdGF0ZTo6Q2xvc2VkKQorICAgIGlmIChz
dGF0ZSgpID09IFN0YXRlOjpDbG9zZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGxhenlJbml0
aWFsaXplKCk7CiAKLSAgICBkZXN0aW5hdGlvbk5vZGUoKS0+c3VzcGVuZChbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9u
KSB7CisgICAgZGVzdGluYXRpb24oKS5zdXNwZW5kKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIHsKICAgICAgICAg
aWYgKGV4Y2VwdGlvbikKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNDY4LDggKzQ2OSw4IEBA
IGJvb2wgQXVkaW9Db250ZXh0Ojppc1N1c3BlbmRlZCgpIGNvbnN0CiAKIHZvaWQgQXVkaW9Db250
ZXh0OjpwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpCiB7Ci0gICAgaWYgKGRlc3RpbmF0aW9uTm9k
ZSgpICYmIGRvY3VtZW50KCkgJiYgZG9jdW1lbnQoKS0+cGFnZSgpKQotICAgICAgICBkZXN0aW5h
dGlvbk5vZGUoKS0+c2V0TXV0ZWQoZG9jdW1lbnQoKS0+cGFnZSgpLT5pc0F1ZGlvTXV0ZWQoKSk7
CisgICAgaWYgKGRvY3VtZW50KCkgJiYgZG9jdW1lbnQoKS0+cGFnZSgpKQorICAgICAgICBkZXN0
aW5hdGlvbigpLnNldE11dGVkKGRvY3VtZW50KCktPnBhZ2UoKS0+aXNBdWRpb011dGVkKCkpOwog
fQogCiB2b2lkIEF1ZGlvQ29udGV4dDo6bWVkaWFDYW5TdGFydChEb2N1bWVudCYgZG9jdW1lbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAppbmRl
eCBjNTVhNTI5NmQ2NzQuLjhjMGFlMzVlMDdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC01NSw3ICs1NSw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogCi0gICAgRGVmYXVs
dEF1ZGlvRGVzdGluYXRpb25Ob2RlKiBkZXN0aW5hdGlvbigpOworICAgIERlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZSYgZGVzdGluYXRpb24oKTsKKyAgICBjb25zdCBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUmIGRlc3RpbmF0aW9uKCkgY29uc3Q7CiAgICAgZG91YmxlIGJhc2VMYXRlbmN5
KCk7CiAKICAgICBBdWRpb1RpbWVzdGFtcCBnZXRPdXRwdXRUaW1lc3RhbXAoRE9NV2luZG93Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGlu
YXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0
aW5hdGlvbk5vZGUuY3BwCmluZGV4IDJkMTAwNjI5ZTBmYS4uNDUxM2Y3ZDg2NTg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRp
b25Ob2RlLmNwcApAQCAtMTQ2LDYgKzE0NiwxNiBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Ob2Rl
Ojp1cGRhdGVJc0VmZmVjdGl2ZWx5UGxheWluZ0F1ZGlvKCkKICAgICBjb250ZXh0KCkuaXNQbGF5
aW5nQXVkaW9EaWRDaGFuZ2UoKTsKIH0KIAordm9pZCBBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6cmVm
KCkKK3sKKyAgICBjb250ZXh0KCkucmVmKCk7Cit9CisKK3ZvaWQgQXVkaW9EZXN0aW5hdGlvbk5v
ZGU6OmRlcmVmKCkKK3sKKyAgICBjb250ZXh0KCkuZGVyZWYoKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaAppbmRl
eCA1NDAzZmFlYWNjZjUuLjI2ZjU2MzU0YWJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtNjYsNiArNjYs
MTAgQEAgcHVibGljOgogICAgIGJvb2wgaXNQbGF5aW5nQXVkaW8oKSBjb25zdCB7IHJldHVybiBt
X2lzRWZmZWN0aXZlbHlQbGF5aW5nQXVkaW87IH0KICAgICB2b2lkIHNldE11dGVkKGJvb2wgbXV0
ZWQpIHsgbV9tdXRlZCA9IG11dGVkOyB9CiAKKyAgICAvLyBBdWRpb0Rlc3RpbmF0aW9uTm9kZXMg
YXJlIG93bmVkIGJ5IHRoZSBCYXNlQXVkaW9Db250ZXh0IHNvIHdlIGZvcndhcmQgdGhlIHJlZmNv
dW50aW5nIHRvIGl0cyBCYXNlQXVkaW9Db250ZXh0LgorICAgIHZvaWQgcmVmKCkgZmluYWw7Cisg
ICAgdm9pZCBkZXJlZigpIGZpbmFsOworCiBwcm90ZWN0ZWQ6CiAgICAgZG91YmxlIHRhaWxUaW1l
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQogICAgIGRvdWJsZSBsYXRlbmN5VGltZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwCmluZGV4IDU1NjRlNmRiOTVhYi4uMzFmODQ4
YjY5Y2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9M
aXN0ZW5lci5jcHAKQEAgLTkxLDcgKzkxLDEwIEBAIGJvb2wgQXVkaW9MaXN0ZW5lcjo6c2hvdWxk
VXNlQVJhdGUoKSBjb25zdAogCiB2b2lkIEF1ZGlvTGlzdGVuZXI6OnVwZGF0ZVZhbHVlc0lmTmVl
ZGVkKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7Ci0gICAgZG91YmxlIGN1cnJlbnRUaW1lID0g
cG9zaXRpb25YKCkuY29udGV4dCgpLmN1cnJlbnRUaW1lKCk7CisgICAgaWYgKCFwb3NpdGlvblgo
KS5jb250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRvdWJsZSBjdXJyZW50VGltZSA9
IHBvc2l0aW9uWCgpLmNvbnRleHQoKS0+Y3VycmVudFRpbWUoKTsKICAgICBpZiAobV9sYXN0VXBk
YXRlVGltZSAhPSBjdXJyZW50VGltZSkgewogICAgICAgICAvLyBUaW1lIGhhcyBjaGFuZ2VkLiBV
cGRhdGUgYWxsIG9mIHRoZSBhdXRvbWF0aW9uIHZhbHVlcyBub3cuCiAgICAgICAgIG1fbGFzdFVw
ZGF0ZVRpbWUgPSBjdXJyZW50VGltZTsKQEAgLTE3Nyw4ICsxODAsMTAgQEAgY29uc3QgZmxvYXQq
IEF1ZGlvTGlzdGVuZXI6OnVwWlZhbHVlcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogRXhjZXB0
aW9uT3I8dm9pZD4gQXVkaW9MaXN0ZW5lcjo6c2V0UG9zaXRpb24oZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgeikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlmICghbV9wb3Np
dGlvblgtPmNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGRvdWJsZSBub3cg
PSBtX3Bvc2l0aW9uWC0+Y29udGV4dCgpLmN1cnJlbnRUaW1lKCk7CisgICAgZG91YmxlIG5vdyA9
IG1fcG9zaXRpb25YLT5jb250ZXh0KCktPmN1cnJlbnRUaW1lKCk7CiAKICAgICBhdXRvIHJlc3Vs
dCA9IG1fcG9zaXRpb25YLT5zZXRWYWx1ZUF0VGltZSh4LCBub3cpOwogICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpCkBAIC0yMDEsOCArMjA2LDEwIEBAIEZsb2F0UG9pbnQzRCBBdWRpb0xp
c3RlbmVyOjpwb3NpdGlvbigpIGNvbnN0CiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb0xpc3RlbmVy
OjpzZXRPcmllbnRhdGlvbihmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCB1cFgsIGZs
b2F0IHVwWSwgZmxvYXQgdXBaKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
aWYgKCFtX2ZvcndhcmRYLT5jb250ZXh0KCkpCisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBk
b3VibGUgbm93ID0gbV9mb3J3YXJkWC0+Y29udGV4dCgpLmN1cnJlbnRUaW1lKCk7CisgICAgZG91
YmxlIG5vdyA9IG1fZm9yd2FyZFgtPmNvbnRleHQoKS0+Y3VycmVudFRpbWUoKTsKIAogICAgIGF1
dG8gcmVzdWx0ID0gbV9mb3J3YXJkWC0+c2V0VmFsdWVBdFRpbWUoeCwgbm93KTsKICAgICBpZiAo
cmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb05vZGUuY3BwCmluZGV4IDZmYzNmOWExOTQ2OC4uNDRlNjJiZDcyMjBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCkBAIC05OSw5ICs5
OSwxNyBAQCBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9Ob2RlOjpOb2Rl
VHlwZSBlbnVtZXJhdGlvblZhbHVlKQogICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6
ZV90PihlbnVtZXJhdGlvblZhbHVlKV07CiB9CiAKK2F1dG8gQXVkaW9Ob2RlOjp0b1dlYWtPclN0
cm9uZ0NvbnRleHQoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgTm9kZVR5cGUgbm9kZVR5cGUp
IC0+IFdlYWtPclN0cm9uZ0NvbnRleHQKK3sKKyAgICAvLyBEZXN0aW5hdGlvbiBub2RlcyBhcmUg
b3duZWQgYnkgdGhlIEJhc2VBdWRpb0NvbnRleHQgc28gd2UgdXNlIFdlYWtQdHIgdG8gYXZvaWQg
YSByZXRhaW4gY3ljbGUuCisgICAgaWYgKG5vZGVUeXBlID09IEF1ZGlvTm9kZTo6Tm9kZVR5cGVE
ZXN0aW5hdGlvbikKKyAgICAgICAgcmV0dXJuIG1ha2VXZWFrUHRyKGNvbnRleHQsIEVuYWJsZVdl
YWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpObyk7IC8vIFdlYkF1ZGlvIGNvZGUgdXNlcyBsb2Nr
aW5nIHdoZW4gYWNjZXNzaW5nIHRoZSBjb250ZXh0LgorICAgIHJldHVybiBtYWtlUmVmKGNvbnRl
eHQpOworfQorCiBBdWRpb05vZGU6OkF1ZGlvTm9kZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0
LCBOb2RlVHlwZSB0eXBlKQogICAgIDogbV9ub2RlVHlwZSh0eXBlKQotICAgICwgbV9jb250ZXh0
KGNvbnRleHQpCisgICAgLCBtX2NvbnRleHQodG9XZWFrT3JTdHJvbmdDb250ZXh0KGNvbnRleHQs
IHR5cGUpKQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgbV9sb2dnZXIoY29udGV4
dC5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihjb250ZXh0Lm5leHRBdWRpb05vZGVM
b2dJZGVudGlmaWVyKCkpCkBAIC0yMTUsNyArMjIzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVk
aW9Ob2RlOjpjb25uZWN0KEF1ZGlvUGFyYW0mIHBhcmFtLCB1bnNpZ25lZCBvdXRwdXRJbmRleCkK
ICAgICBpZiAob3V0cHV0SW5kZXggPj0gbnVtYmVyT2ZPdXRwdXRzKCkpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciwgIk91dHB1dCBpbmRleCBleGNlZWRzIG51bWJl
ciBvZiBvdXRwdXRzIl9zIH07CiAKLSAgICBpZiAoJmNvbnRleHQoKSAhPSAmcGFyYW0uY29udGV4
dCgpKQorICAgIGlmICgmY29udGV4dCgpICE9IHBhcmFtLmNvbnRleHQoKSkKICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiTm9kZSBhbmQgQXVkaW9QYXJhbSBiZWxvbmcg
dG8gZGlmZmVyZW50IGF1ZGlvIGNvbnRleHRzIl9zIH07CiAKICAgICBhdXRvKiBvdXRwdXQgPSB0
aGlzLT5vdXRwdXQob3V0cHV0SW5kZXgpOwpAQCAtMzY3LDcgKzM3NSw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IEF1ZGlvTm9kZTo6ZGlzY29ubmVjdChBdWRpb1BhcmFtJiBkZXN0aW5hdGlvblBhcmFt
LCB1bnNpZ25lZCBvCiAKIGZsb2F0IEF1ZGlvTm9kZTo6c2FtcGxlUmF0ZSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fY29udGV4dC0+c2FtcGxlUmF0ZSgpOworICAgIHJldHVybiBjb250ZXh0KCku
c2FtcGxlUmF0ZSgpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OnNldENoYW5u
ZWxDb3VudCh1bnNpZ25lZCBjaGFubmVsQ291bnQpCkBAIC02MjUsNiArNjMzLDEwIEBAIHZvaWQg
QXVkaW9Ob2RlOjptYXJrTm9kZUZvckRlbGV0aW9uSWZOZWNlc3NhcnkoKQogICAgIGlmIChtX2Nv
bm5lY3Rpb25SZWZDb3VudCB8fCBtX25vcm1hbFJlZkNvdW50IHx8IG1faXNNYXJrZWRGb3JEZWxl
dGlvbikKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gQXVkaW9EZXN0aW5hdGlvbk5vZGVzIGFy
ZSBvd25lZCBieSB0aGVpciBCYXNlQXVkaW9Db250ZXh0IHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8g
bWFyayB0aGVtIGZvciBkZWxldGlvbi4KKyAgICBpZiAobm9kZVR5cGUoKSA9PSBOb2RlVHlwZURl
c3RpbmF0aW9uKQorICAgICAgICByZXR1cm47CisKICAgICAvLyBBbGwgcmVmZXJlbmNlcyBhcmUg
Z29uZSAtIHdlIG5lZWQgdG8gZ28gYXdheS4KICAgICBmb3IgKGF1dG8mIG91dHB1dCA6IG1fb3V0
cHV0cykKICAgICAgICAgb3V0cHV0LT5kaXNjb25uZWN0QWxsKCk7IC8vIFRoaXMgd2lsbCBkZXJl
ZigpIG5vZGVzIHdlJ3JlIGNvbm5lY3RlZCB0by4KQEAgLTY2MSwxMSArNjczLDEyIEBAIHZvaWQg
QXVkaW9Ob2RlOjpkZXJlZigpCiAgICAgICAgIGNvbnRleHQoKS5kZWxldGVNYXJrZWROb2Rlcygp
OwogfQogCi1WYXJpYW50PFJlZlB0cjxCYXNlQXVkaW9Db250ZXh0PiwgUmVmUHRyPFdlYktpdEF1
ZGlvQ29udGV4dD4+IEF1ZGlvTm9kZTo6Y29udGV4dEZvckJpbmRpbmdzKCkgY29uc3QKK1Zhcmlh
bnQ8UmVmUHRyPEJhc2VBdWRpb0NvbnRleHQ+LCBSZWZQdHI8V2ViS2l0QXVkaW9Db250ZXh0Pj4g
QXVkaW9Ob2RlOjpjb250ZXh0Rm9yQmluZGluZ3MoKQogewotICAgIGlmIChtX2NvbnRleHQtPmlz
V2ViS2l0QXVkaW9Db250ZXh0KCkpCi0gICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHN0YXRpY19j
YXN0PFdlYktpdEF1ZGlvQ29udGV4dCY+KG1fY29udGV4dC5nZXQoKSkpOwotICAgIHJldHVybiBt
YWtlUmVmUHRyKG1fY29udGV4dC5nZXQoKSk7CisgICAgYXV0byYgY29udGV4dCA9IHRoaXMtPmNv
bnRleHQoKTsKKyAgICBpZiAoY29udGV4dC5pc1dlYktpdEF1ZGlvQ29udGV4dCgpKQorICAgICAg
ICByZXR1cm4gbWFrZVJlZlB0cihzdGF0aWNfY2FzdDxXZWJLaXRBdWRpb0NvbnRleHQmPihjb250
ZXh0KSk7CisgICAgcmV0dXJuIG1ha2VSZWZQdHIoY29udGV4dCk7CiB9CiAKIHZvaWQgQXVkaW9O
b2RlOjpkZXJlZldpdGhMb2NrKCkKQEAgLTY5OSw2ICs3MTIsMjQgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gQXVkaW9Ob2RlOjpoYW5kbGVBdWRpb05vZGVPcHRpb25zKGNvbnN0IEF1ZGlvTm9kZU9wdGlv
bnMmIG9wdGkKICAgICByZXR1cm4geyB9OwogfQogCitCYXNlQXVkaW9Db250ZXh0JiBBdWRpb05v
ZGU6OmNvbnRleHQoKQoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fY29udGV4dCwgW10o
UmVmPEJhc2VBdWRpb0NvbnRleHQ+JiBjb250ZXh0KSAtPiBCYXNlQXVkaW9Db250ZXh0JiB7Cisg
ICAgICAgIHJldHVybiBjb250ZXh0LmdldCgpOworICAgIH0sIFtdKFdlYWtQdHI8QmFzZUF1ZGlv
Q29udGV4dD4mIGNvbnRleHQpIC0+IEJhc2VBdWRpb0NvbnRleHQmIHsKKyAgICAgICAgcmV0dXJu
ICpjb250ZXh0OworICAgIH0pOworfQorCitjb25zdCBCYXNlQXVkaW9Db250ZXh0JiBBdWRpb05v
ZGU6OmNvbnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fY29udGV4
dCwgW10oY29uc3QgUmVmPEJhc2VBdWRpb0NvbnRleHQ+JiBjb250ZXh0KSAtPiBjb25zdCBCYXNl
QXVkaW9Db250ZXh0JiB7CisgICAgICAgIHJldHVybiBjb250ZXh0LmdldCgpOworICAgIH0sIFtd
KGNvbnN0IFdlYWtQdHI8QmFzZUF1ZGlvQ29udGV4dD4mIGNvbnRleHQpIC0+IGNvbnN0IEJhc2VB
dWRpb0NvbnRleHQmIHsKKyAgICAgICAgcmV0dXJuICpjb250ZXh0OworICAgIH0pOworfQorCiAj
aWYgREVCVUdfQVVESU9OT0RFX1JFRkVSRU5DRVMKIAogYm9vbCBBdWRpb05vZGU6OnNfaXNOb2Rl
Q291bnRJbml0aWFsaXplZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Ob2RlLmgKaW5kZXggZTFhNWNjMmVmY2MyLi4yMjc1YzUzNzcyZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaApAQCAtODcsMTYgKzg3LDE2
IEBAIHB1YmxpYzoKICAgICBBdWRpb05vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIE5vZGVUeXBlKTsK
ICAgICB2aXJ0dWFsIH5BdWRpb05vZGUoKTsKIAotICAgIEJhc2VBdWRpb0NvbnRleHQmIGNvbnRl
eHQoKSB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KLSAgICBjb25zdCBCYXNlQXVkaW9Db250
ZXh0JiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CisgICAgQmFz
ZUF1ZGlvQ29udGV4dCYgY29udGV4dCgpOworICAgIGNvbnN0IEJhc2VBdWRpb0NvbnRleHQmIGNv
bnRleHQoKSBjb25zdDsKIAotICAgIFZhcmlhbnQ8UmVmUHRyPEJhc2VBdWRpb0NvbnRleHQ+LCBS
ZWZQdHI8V2ViS2l0QXVkaW9Db250ZXh0Pj4gY29udGV4dEZvckJpbmRpbmdzKCkgY29uc3Q7Cisg
ICAgVmFyaWFudDxSZWZQdHI8QmFzZUF1ZGlvQ29udGV4dD4sIFJlZlB0cjxXZWJLaXRBdWRpb0Nv
bnRleHQ+PiBjb250ZXh0Rm9yQmluZGluZ3MoKTsKIAogICAgIE5vZGVUeXBlIG5vZGVUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9ub2RlVHlwZTsgfQogCiAgICAgLy8gQ2FuIGJlIGNhbGxlZCBmcm9t
IG1haW4gdGhyZWFkIG9yIGNvbnRleHQncyBhdWRpbyB0aHJlYWQuCi0gICAgdm9pZCByZWYoKTsK
LSAgICB2b2lkIGRlcmVmKCk7CisgICAgdmlydHVhbCB2b2lkIHJlZigpOworICAgIHZpcnR1YWwg
dm9pZCBkZXJlZigpOwogICAgIHZvaWQgaW5jcmVtZW50Q29ubmVjdGlvbkNvdW50KCk7CiAgICAg
dm9pZCBkZWNyZW1lbnRDb25uZWN0aW9uQ291bnQoKTsKIApAQCAtMjMwLDEzICsyMzAsMTcgQEAg
cHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQdWxsU3RhdHVzKCkgeyB9CiAKIHBy
aXZhdGU6CisgICAgdXNpbmcgV2Vha09yU3Ryb25nQ29udGV4dCA9IFZhcmlhbnQ8UmVmPEJhc2VB
dWRpb0NvbnRleHQ+LCBXZWFrUHRyPEJhc2VBdWRpb0NvbnRleHQ+PjsKKyAgICBzdGF0aWMgV2Vh
a09yU3Ryb25nQ29udGV4dCB0b1dlYWtPclN0cm9uZ0NvbnRleHQoQmFzZUF1ZGlvQ29udGV4dCYs
IE5vZGVUeXBlKTsKKwogICAgIC8vIEV2ZW50VGFyZ2V0CiAgICAgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKICAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWw7CiAKICAg
ICB2b2xhdGlsZSBib29sIG1faXNJbml0aWFsaXplZCB7IGZhbHNlIH07CiAgICAgTm9kZVR5cGUg
bV9ub2RlVHlwZTsKLSAgICBSZWY8QmFzZUF1ZGlvQ29udGV4dD4gbV9jb250ZXh0OworCisgICAg
V2Vha09yU3Ryb25nQ29udGV4dCBtX2NvbnRleHQ7CiAKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVf
cHRyPEF1ZGlvTm9kZUlucHV0Pj4gbV9pbnB1dHM7CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0
cjxBdWRpb05vZGVPdXRwdXQ+PiBtX291dHB1dHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQuY3BwCmluZGV4IDIxYmE1YTdiYjFhOS4uN2Uw
NjM0ZTViNjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvTm9kZUlucHV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvTm9kZUlucHV0LmNwcApAQCAtNDcsNyArNDcsOCBAQCBBdWRpb05vZGVJbnB1dDo6QXVkaW9O
b2RlSW5wdXQoQXVkaW9Ob2RlKiBub2RlKQogCiB2b2lkIEF1ZGlvTm9kZUlucHV0Ojpjb25uZWN0
KEF1ZGlvTm9kZU91dHB1dCogb3V0cHV0KQogewotICAgIEFTU0VSVChjb250ZXh0KCkuaXNHcmFw
aE93bmVyKCkpOworICAgIEFTU0VSVChjb250ZXh0KCkpOworICAgIEFTU0VSVChjb250ZXh0KCkt
PmlzR3JhcGhPd25lcigpKTsKICAgICAKICAgICBBU1NFUlQob3V0cHV0ICYmIG5vZGUoKSk7CiAg
ICAgaWYgKCFvdXRwdXQgfHwgIW5vZGUoKSkKQEAgLTU5LDcgKzYwLDggQEAgdm9pZCBBdWRpb05v
ZGVJbnB1dDo6Y29ubmVjdChBdWRpb05vZGVPdXRwdXQqIG91dHB1dCkKIAogdm9pZCBBdWRpb05v
ZGVJbnB1dDo6ZGlzY29ubmVjdChBdWRpb05vZGVPdXRwdXQqIG91dHB1dCkKIHsKLSAgICBBU1NF
UlQoY29udGV4dCgpLmlzR3JhcGhPd25lcigpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpKTsKKyAg
ICBBU1NFUlQoY29udGV4dCgpLT5pc0dyYXBoT3duZXIoKSk7CiAKICAgICBBU1NFUlQob3V0cHV0
ICYmIG5vZGUoKSk7CiAgICAgaWYgKCFvdXRwdXQgfHwgIW5vZGUoKSkKQEAgLTc2LDcgKzc4LDgg
QEAgdm9pZCBBdWRpb05vZGVJbnB1dDo6ZGlzY29ubmVjdChBdWRpb05vZGVPdXRwdXQqIG91dHB1
dCkKIAogdm9pZCBBdWRpb05vZGVJbnB1dDo6b3V0cHV0RW5hYmxlZFN0YXRlQ2hhbmdlZChBdWRp
b05vZGVPdXRwdXQmIG91dHB1dCkKIHsKLSAgICBBU1NFUlQoY29udGV4dCgpLmlzR3JhcGhPd25l
cigpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpLT5pc0dy
YXBoT3duZXIoKSk7CiAgICAgQXVkaW9TdW1taW5nSnVuY3Rpb246Om91dHB1dEVuYWJsZWRTdGF0
ZUNoYW5nZWQob3V0cHV0KTsKIAogICAgIC8vIFByb3BhZ2F0ZSBkaXNhYmxlZCBzdGF0ZSB0byBv
dXRwdXRzLgpAQCAtOTYsNyArOTksOCBAQCB2b2lkIEF1ZGlvTm9kZUlucHV0OjpkaWRVcGRhdGUo
KQogCiB2b2lkIEF1ZGlvTm9kZUlucHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cygpCiB7Ci0gICAgQVNT
RVJUKGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkgJiYgY29udGV4dCgpLmlzR3JhcGhPd25lcigp
KTsKKyAgICBBU1NFUlQoY29udGV4dCgpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpLT5pc0F1ZGlv
VGhyZWFkKCkgJiYgY29udGV4dCgpLT5pc0dyYXBoT3duZXIoKSk7CiAKICAgICB1bnNpZ25lZCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzKCk7CiAKQEAgLTEyNiw3ICsx
MzAsOCBAQCB1bnNpZ25lZCBBdWRpb05vZGVJbnB1dDo6bnVtYmVyT2ZDaGFubmVscygpIGNvbnN0
CiAKIEF1ZGlvQnVzKiBBdWRpb05vZGVJbnB1dDo6YnVzKCkKIHsKLSAgICBBU1NFUlQoY29udGV4
dCgpLmlzQXVkaW9UaHJlYWQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAgQVNTRVJU
KGNvbnRleHQoKS0+aXNBdWRpb1RocmVhZCgpKTsKIAogICAgIC8vIEhhbmRsZSBzaW5nbGUgY29u
bmVjdGlvbiBzcGVjaWFsbHkgdG8gYWxsb3cgZm9yIGluLXBsYWNlIHByb2Nlc3NpbmcuCiAgICAg
aWYgKG51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKSA9PSAxICYmIG5vZGUoKS0+Y2hhbm5l
bENvdW50TW9kZSgpID09IENoYW5uZWxDb3VudE1vZGU6Ok1heCkKQEAgLTEzOCwxNCArMTQzLDE2
IEBAIEF1ZGlvQnVzKiBBdWRpb05vZGVJbnB1dDo6YnVzKCkKIAogQXVkaW9CdXMqIEF1ZGlvTm9k
ZUlucHV0OjppbnRlcm5hbFN1bW1pbmdCdXMoKQogewotICAgIEFTU0VSVChjb250ZXh0KCkuaXNB
dWRpb1RocmVhZCgpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpKTsKKyAgICBBU1NFUlQoY29udGV4
dCgpLT5pc0F1ZGlvVGhyZWFkKCkpOwogCiAgICAgcmV0dXJuIG1faW50ZXJuYWxTdW1taW5nQnVz
LmdldCgpOwogfQogCiB2b2lkIEF1ZGlvTm9kZUlucHV0OjpzdW1BbGxDb25uZWN0aW9ucyhBdWRp
b0J1cyogc3VtbWluZ0J1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKLSAgICBBU1NFUlQo
Y29udGV4dCgpLmlzQXVkaW9UaHJlYWQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAg
QVNTRVJUKGNvbnRleHQoKS0+aXNBdWRpb1RocmVhZCgpKTsKIAogICAgIC8vIFdlIHNob3VsZG4n
dCBiZSBjYWxsaW5nIHRoaXMgbWV0aG9kIGlmIHRoZXJlJ3Mgb25seSBvbmUgY29ubmVjdGlvbiwg
c2luY2UgaXQncyBsZXNzIGVmZmljaWVudC4KICAgICBBU1NFUlQobnVtYmVyT2ZSZW5kZXJpbmdD
b25uZWN0aW9ucygpID4gMSB8fCBub2RlKCktPmNoYW5uZWxDb3VudE1vZGUoKSAhPSBDaGFubmVs
Q291bnRNb2RlOjpNYXgpOwpAQCAtMTcxLDcgKzE3OCw4IEBAIHZvaWQgQXVkaW9Ob2RlSW5wdXQ6
OnN1bUFsbENvbm5lY3Rpb25zKEF1ZGlvQnVzKiBzdW1taW5nQnVzLCBzaXplX3QgZnJhbWVzVG9Q
cm9jCiAKIEF1ZGlvQnVzKiBBdWRpb05vZGVJbnB1dDo6cHVsbChBdWRpb0J1cyogaW5QbGFjZUJ1
cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKLSAgICBBU1NFUlQoY29udGV4dCgpLmlzQXVk
aW9UaHJlYWQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQo
KS0+aXNBdWRpb1RocmVhZCgpKTsKIAogICAgIGF1dG8gbnVtYmVyT2ZSZW5kZXJpbmdDb25uZWN0
aW9ucyA9IHRoaXMtPm51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKTsKICAgICAvLyBIYW5k
bGUgc2luZ2xlIGNvbm5lY3Rpb24gY2FzZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCmluZGV4IGYzOWFjODU5MGM4Mi4uNzIxNGFiOGJmYzJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKQEAg
LTY5LDggKzY5LDggQEAgQXVkaW9QYXJhbTo6QXVkaW9QYXJhbShCYXNlQXVkaW9Db250ZXh0JiBj
b250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIGZsb2F0IGRlZmEKIGZsb2F0IEF1ZGlvUGFyYW06
OnZhbHVlKCkKIHsKICAgICAvLyBVcGRhdGUgdmFsdWUgZm9yIHRpbWVsaW5lLgotICAgIGlmIChj
b250ZXh0KCkuaXNBdWRpb1RocmVhZCgpKSB7Ci0gICAgICAgIGF1dG8gdGltZWxpbmVWYWx1ZSA9
IG1fdGltZWxpbmUudmFsdWVGb3JDb250ZXh0VGltZShjb250ZXh0KCksIG1fdmFsdWUsIG1pblZh
bHVlKCksIG1heFZhbHVlKCkpOworICAgIGlmIChjb250ZXh0KCkgJiYgY29udGV4dCgpLT5pc0F1
ZGlvVGhyZWFkKCkpIHsKKyAgICAgICAgYXV0byB0aW1lbGluZVZhbHVlID0gbV90aW1lbGluZS52
YWx1ZUZvckNvbnRleHRUaW1lKCpjb250ZXh0KCksIG1fdmFsdWUsIG1pblZhbHVlKCksIG1heFZh
bHVlKCkpOwogICAgICAgICBpZiAodGltZWxpbmVWYWx1ZSkKICAgICAgICAgICAgIG1fdmFsdWUg
PSAqdGltZWxpbmVWYWx1ZTsKICAgICB9CkBAIC05Niw3ICs5NiwxMSBAQCBFeGNlcHRpb25Pcjx2
b2lkPiBBdWRpb1BhcmFtOjpzZXRWYWx1ZUZvckJpbmRpbmdzKGZsb2F0IHZhbHVlKQogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBzZXRWYWx1ZSh2YWx1ZSk7Ci0gICAgYXV0byBy
ZXN1bHQgPSBzZXRWYWx1ZUF0VGltZShtX3ZhbHVlLCBjb250ZXh0KCkuY3VycmVudFRpbWUoKSk7
CisKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8g
cmVzdWx0ID0gc2V0VmFsdWVBdFRpbWUobV92YWx1ZSwgY29udGV4dCgpLT5jdXJyZW50VGltZSgp
KTsKICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICByZXR1cm4geyB9OwpAQCAtMTE4LDkgKzEyMiwxMiBA
QCBmbG9hdCBBdWRpb1BhcmFtOjpzbW9vdGhlZFZhbHVlKCkKIAogYm9vbCBBdWRpb1BhcmFtOjpz
bW9vdGgoKQogeworICAgIGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwog
ICAgIC8vIElmIHZhbHVlcyBoYXZlIGJlZW4gZXhwbGljaXRseSBzY2hlZHVsZWQgb24gdGhlIHRp
bWVsaW5lLCB0aGVuIHVzZSB0aGUgZXhhY3QgdmFsdWUuCiAgICAgLy8gU21vb3RoaW5nIGVmZmVj
dGl2ZWx5IGlzIHBlcmZvcm1lZCBieSB0aGUgdGltZWxpbmUuCi0gICAgYXV0byB0aW1lbGluZVZh
bHVlID0gbV90aW1lbGluZS52YWx1ZUZvckNvbnRleHRUaW1lKGNvbnRleHQoKSwgbV92YWx1ZSwg
bWluVmFsdWUoKSwgbWF4VmFsdWUoKSk7CisgICAgYXV0byB0aW1lbGluZVZhbHVlID0gbV90aW1l
bGluZS52YWx1ZUZvckNvbnRleHRUaW1lKCpjb250ZXh0KCksIG1fdmFsdWUsIG1pblZhbHVlKCks
IG1heFZhbHVlKCkpOwogICAgIGlmICh0aW1lbGluZVZhbHVlKQogICAgICAgICBtX3ZhbHVlID0g
KnRpbWVsaW5lVmFsdWU7CiAKQEAgLTE0NSwxMCArMTUyLDEzIEBAIGJvb2wgQXVkaW9QYXJhbTo6
c21vb3RoKCkKIAogRXhjZXB0aW9uT3I8QXVkaW9QYXJhbSY+IEF1ZGlvUGFyYW06OnNldFZhbHVl
QXRUaW1lKGZsb2F0IHZhbHVlLCBkb3VibGUgc3RhcnRUaW1lKQogeworICAgIGlmICghY29udGV4
dCgpKQorICAgICAgICByZXR1cm4gKnRoaXM7CisKICAgICBpZiAoc3RhcnRUaW1lIDwgMCkKICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFJhbmdlRXJyb3IsICJzdGFydFRpbWUgbXVzdCBiZSBh
IHBvc2l0aXZlIHZhbHVlIl9zIH07CiAKLSAgICBzdGFydFRpbWUgPSBzdGQ6Om1heChzdGFydFRp
bWUsIGNvbnRleHQoKS5jdXJyZW50VGltZSgpKTsKKyAgICBzdGFydFRpbWUgPSBzdGQ6Om1heChz
dGFydFRpbWUsIGNvbnRleHQoKS0+Y3VycmVudFRpbWUoKSk7CiAgICAgYXV0byByZXN1bHQgPSBt
X3RpbWVsaW5lLnNldFZhbHVlQXRUaW1lKHZhbHVlLCBTZWNvbmRzIHsgc3RhcnRUaW1lIH0pOwog
ICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpOwpAQCAtMTU3LDExICsxNjcsMTQgQEAgRXhjZXB0aW9uT3I8QXVkaW9Q
YXJhbSY+IEF1ZGlvUGFyYW06OnNldFZhbHVlQXRUaW1lKGZsb2F0IHZhbHVlLCBkb3VibGUgc3Rh
cnRUaW0KIAogRXhjZXB0aW9uT3I8QXVkaW9QYXJhbSY+IEF1ZGlvUGFyYW06OmxpbmVhclJhbXBU
b1ZhbHVlQXRUaW1lKGZsb2F0IHZhbHVlLCBkb3VibGUgZW5kVGltZSkKIHsKKyAgICBpZiAoIWNv
bnRleHQoKSkKKyAgICAgICAgcmV0dXJuICp0aGlzOworCiAgICAgaWYgKGVuZFRpbWUgPCAwKQog
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwgImVuZFRpbWUgbXVzdCBiZSBh
IHBvc2l0aXZlIHZhbHVlIl9zIH07CiAKLSAgICBlbmRUaW1lID0gc3RkOjptYXgoZW5kVGltZSwg
Y29udGV4dCgpLmN1cnJlbnRUaW1lKCkpOwotICAgIGF1dG8gcmVzdWx0ID0gbV90aW1lbGluZS5s
aW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2YWx1ZSwgU2Vjb25kcyB7IGVuZFRpbWUgfSwgbV92YWx1
ZSwgU2Vjb25kcyB7IGNvbnRleHQoKS5jdXJyZW50VGltZSgpIH0pOworICAgIGVuZFRpbWUgPSBz
dGQ6Om1heChlbmRUaW1lLCBjb250ZXh0KCktPmN1cnJlbnRUaW1lKCkpOworICAgIGF1dG8gcmVz
dWx0ID0gbV90aW1lbGluZS5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2YWx1ZSwgU2Vjb25kcyB7
IGVuZFRpbWUgfSwgbV92YWx1ZSwgU2Vjb25kcyB7IGNvbnRleHQoKS0+Y3VycmVudFRpbWUoKSB9
KTsKICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICByZXR1cm4gKnRoaXM7CkBAIC0xNzQsOCArMTg3LDgg
QEAgRXhjZXB0aW9uT3I8QXVkaW9QYXJhbSY+IEF1ZGlvUGFyYW06OmV4cG9uZW50aWFsUmFtcFRv
VmFsdWVBdFRpbWUoZmxvYXQgdmFsdWUsIGQKICAgICBpZiAoZW5kVGltZSA8IDApCiAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBSYW5nZUVycm9yLCAiZW5kVGltZSBtdXN0IGJlIGEgcG9zaXRp
dmUgdmFsdWUiX3MgfTsKIAotICAgIGVuZFRpbWUgPSBzdGQ6Om1heChlbmRUaW1lLCBjb250ZXh0
KCkuY3VycmVudFRpbWUoKSk7Ci0gICAgYXV0byByZXN1bHQgPSBtX3RpbWVsaW5lLmV4cG9uZW50
aWFsUmFtcFRvVmFsdWVBdFRpbWUodmFsdWUsIFNlY29uZHMgeyBlbmRUaW1lIH0sIG1fdmFsdWUs
IFNlY29uZHMgeyBjb250ZXh0KCkuY3VycmVudFRpbWUoKSB9KTsKKyAgICBlbmRUaW1lID0gc3Rk
OjptYXgoZW5kVGltZSwgY29udGV4dCgpLT5jdXJyZW50VGltZSgpKTsKKyAgICBhdXRvIHJlc3Vs
dCA9IG1fdGltZWxpbmUuZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSh2YWx1ZSwgU2Vjb25k
cyB7IGVuZFRpbWUgfSwgbV92YWx1ZSwgU2Vjb25kcyB7IGNvbnRleHQoKS0+Y3VycmVudFRpbWUo
KSB9KTsKICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVz
dWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICByZXR1cm4gKnRoaXM7CkBAIC0xODMsMTIgKzE5
NiwxNSBAQCBFeGNlcHRpb25PcjxBdWRpb1BhcmFtJj4gQXVkaW9QYXJhbTo6ZXhwb25lbnRpYWxS
YW1wVG9WYWx1ZUF0VGltZShmbG9hdCB2YWx1ZSwgZAogCiBFeGNlcHRpb25PcjxBdWRpb1BhcmFt
Jj4gQXVkaW9QYXJhbTo6c2V0VGFyZ2V0QXRUaW1lKGZsb2F0IHRhcmdldCwgZG91YmxlIHN0YXJ0
VGltZSwgZmxvYXQgdGltZUNvbnN0YW50KQogeworICAgIGlmICghY29udGV4dCgpKQorICAgICAg
ICByZXR1cm4gKnRoaXM7CisKICAgICBpZiAoc3RhcnRUaW1lIDwgMCkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFJhbmdlRXJyb3IsICJzdGFydFRpbWUgbXVzdCBiZSBhIHBvc2l0aXZlIHZh
bHVlIl9zIH07CiAgICAgaWYgKHRpbWVDb25zdGFudCA8IDApCiAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBSYW5nZUVycm9yLCAidGltZUNvbnN0YW50IG11c3QgYmUgYSBwb3NpdGl2ZSB2YWx1
ZSJfcyB9OwogCi0gICAgc3RhcnRUaW1lID0gc3RkOjptYXgoc3RhcnRUaW1lLCBjb250ZXh0KCku
Y3VycmVudFRpbWUoKSk7CisgICAgc3RhcnRUaW1lID0gc3RkOjptYXgoc3RhcnRUaW1lLCBjb250
ZXh0KCktPmN1cnJlbnRUaW1lKCkpOwogICAgIGF1dG8gcmVzdWx0ID0gbV90aW1lbGluZS5zZXRU
YXJnZXRBdFRpbWUodGFyZ2V0LCBTZWNvbmRzIHsgc3RhcnRUaW1lIH0sIHRpbWVDb25zdGFudCk7
CiAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC5y
ZWxlYXNlRXhjZXB0aW9uKCk7CkBAIC0xOTcsNiArMjEzLDkgQEAgRXhjZXB0aW9uT3I8QXVkaW9Q
YXJhbSY+IEF1ZGlvUGFyYW06OnNldFRhcmdldEF0VGltZShmbG9hdCB0YXJnZXQsIGRvdWJsZSBz
dGFydFQKIAogRXhjZXB0aW9uT3I8QXVkaW9QYXJhbSY+IEF1ZGlvUGFyYW06OnNldFZhbHVlQ3Vy
dmVBdFRpbWUoVmVjdG9yPGZsb2F0PiYmIGN1cnZlLCBkb3VibGUgc3RhcnRUaW1lLCBkb3VibGUg
ZHVyYXRpb24pCiB7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybiAqdGhpczsK
KwogICAgIGlmIChjdXJ2ZS5zaXplKCkgPCAyKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJBcnJheSBtdXN0IGhhdmUgYSBsZW5ndGggb2YgYXQgbGVhc3Qg
MiJfcyB9OwogICAgIGlmIChzdGFydFRpbWUgPCAwKQpAQCAtMjA0LDcgKzIyMyw3IEBAIEV4Y2Vw
dGlvbk9yPEF1ZGlvUGFyYW0mPiBBdWRpb1BhcmFtOjpzZXRWYWx1ZUN1cnZlQXRUaW1lKFZlY3Rv
cjxmbG9hdD4mJiBjdXJ2ZSwKICAgICBpZiAoZHVyYXRpb24gPD0gMCkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFJhbmdlRXJyb3IsICJkdXJhdGlvbiBtdXN0IGJlIGEgc3RyaWN0bHkgcG9z
aXRpdmUgdmFsdWUiX3MgfTsKIAotICAgIHN0YXJ0VGltZSA9IHN0ZDo6bWF4KHN0YXJ0VGltZSwg
Y29udGV4dCgpLmN1cnJlbnRUaW1lKCkpOworICAgIHN0YXJ0VGltZSA9IHN0ZDo6bWF4KHN0YXJ0
VGltZSwgY29udGV4dCgpLT5jdXJyZW50VGltZSgpKTsKICAgICBhdXRvIHJlc3VsdCA9IG1fdGlt
ZWxpbmUuc2V0VmFsdWVDdXJ2ZUF0VGltZShXVEZNb3ZlKGN1cnZlKSwgU2Vjb25kcyB7IHN0YXJ0
VGltZSB9LCBTZWNvbmRzIHsgZHVyYXRpb24gfSk7CiAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRp
b24oKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CkBAIC0yMzcs
NyArMjU2LDEwIEBAIGJvb2wgQXVkaW9QYXJhbTo6aGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMoKSBj
b25zdAogICAgIGlmIChudW1iZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgcmV0dXJuIG1fdGltZWxpbmUuaGFzVmFsdWVzKGNvbnRleHQoKS5j
dXJyZW50U2FtcGxlRnJhbWUoKSwgY29udGV4dCgpLnNhbXBsZVJhdGUoKSk7CisgICAgaWYgKCFj
b250ZXh0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBtX3RpbWVsaW5l
Lmhhc1ZhbHVlcyhjb250ZXh0KCktPmN1cnJlbnRTYW1wbGVGcmFtZSgpLCBjb250ZXh0KCktPnNh
bXBsZVJhdGUoKSk7CiB9CiAKIGZsb2F0IEF1ZGlvUGFyYW06OmZpbmFsVmFsdWUoKQpAQCAtMjQ5
LDcgKzI3MSw3IEBAIGZsb2F0IEF1ZGlvUGFyYW06OmZpbmFsVmFsdWUoKQogCiB2b2lkIEF1ZGlv
UGFyYW06OmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKGZsb2F0KiB2YWx1ZXMsIHVuc2ln
bmVkIG51bWJlck9mVmFsdWVzKQogewotICAgIGJvb2wgaXNTYWZlID0gY29udGV4dCgpLmlzQXVk
aW9UaHJlYWQoKSAmJiB2YWx1ZXMgJiYgbnVtYmVyT2ZWYWx1ZXM7CisgICAgYm9vbCBpc1NhZmUg
PSBjb250ZXh0KCkgJiYgY29udGV4dCgpLT5pc0F1ZGlvVGhyZWFkKCkgJiYgdmFsdWVzICYmIG51
bWJlck9mVmFsdWVzOwogICAgIEFTU0VSVChpc1NhZmUpOwogICAgIGlmICghaXNTYWZlKQogICAg
ICAgICByZXR1cm47CkBAIC0yNTksNyArMjgxLDcgQEAgdm9pZCBBdWRpb1BhcmFtOjpjYWxjdWxh
dGVTYW1wbGVBY2N1cmF0ZVZhbHVlcyhmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1iZXJPZlYK
IAogdm9pZCBBdWRpb1BhcmFtOjpjYWxjdWxhdGVGaW5hbFZhbHVlcyhmbG9hdCogdmFsdWVzLCB1
bnNpZ25lZCBudW1iZXJPZlZhbHVlcywgYm9vbCBzYW1wbGVBY2N1cmF0ZSkKIHsKLSAgICBib29s
IGlzR29vZCA9IGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkgJiYgdmFsdWVzICYmIG51bWJlck9m
VmFsdWVzOworICAgIGJvb2wgaXNHb29kID0gY29udGV4dCgpICYmIGNvbnRleHQoKS0+aXNBdWRp
b1RocmVhZCgpICYmIHZhbHVlcyAmJiBudW1iZXJPZlZhbHVlczsKICAgICBBU1NFUlQoaXNHb29k
KTsKICAgICBpZiAoIWlzR29vZCkKICAgICAgICAgcmV0dXJuOwpAQCAtMjcxLDcgKzI5Myw3IEBA
IHZvaWQgQXVkaW9QYXJhbTo6Y2FsY3VsYXRlRmluYWxWYWx1ZXMoZmxvYXQqIHZhbHVlcywgdW5z
aWduZWQgbnVtYmVyT2ZWYWx1ZXMsIGJvCiAgICAgICAgIGNhbGN1bGF0ZVRpbWVsaW5lVmFsdWVz
KHZhbHVlcywgbnVtYmVyT2ZWYWx1ZXMpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIENhbGN1
bGF0ZSBjb250cm9sLXJhdGUgKGstcmF0ZSkgaW50cmluc2ljIHZhbHVlLgotICAgICAgICBhdXRv
IHRpbWVsaW5lVmFsdWUgPSBtX3RpbWVsaW5lLnZhbHVlRm9yQ29udGV4dFRpbWUoY29udGV4dCgp
LCBtX3ZhbHVlLCBtaW5WYWx1ZSgpLCBtYXhWYWx1ZSgpKTsKKyAgICAgICAgYXV0byB0aW1lbGlu
ZVZhbHVlID0gbV90aW1lbGluZS52YWx1ZUZvckNvbnRleHRUaW1lKCpjb250ZXh0KCksIG1fdmFs
dWUsIG1pblZhbHVlKCksIG1heFZhbHVlKCkpOwogCiAgICAgICAgIGlmICh0aW1lbGluZVZhbHVl
KQogICAgICAgICAgICAgbV92YWx1ZSA9ICp0aW1lbGluZVZhbHVlOwpAQCAtMzEzLDEwICszMzUs
MTMgQEAgdm9pZCBBdWRpb1BhcmFtOjpjYWxjdWxhdGVGaW5hbFZhbHVlcyhmbG9hdCogdmFsdWVz
LCB1bnNpZ25lZCBudW1iZXJPZlZhbHVlcywgYm8KIAogdm9pZCBBdWRpb1BhcmFtOjpjYWxjdWxh
dGVUaW1lbGluZVZhbHVlcyhmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1iZXJPZlZhbHVlcykK
IHsKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gQ2FsY3Vs
YXRlIHZhbHVlcyBmb3IgdGhpcyByZW5kZXIgcXVhbnR1bS4KICAgICAvLyBOb3JtYWxseSBudW1i
ZXJPZlZhbHVlcyB3aWxsIGVxdWFsIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSAo
dGhlIHJlbmRlciBxdWFudHVtIHNpemUpLgotICAgIGRvdWJsZSBzYW1wbGVSYXRlID0gY29udGV4
dCgpLnNhbXBsZVJhdGUoKTsKLSAgICBzaXplX3Qgc3RhcnRGcmFtZSA9IGNvbnRleHQoKS5jdXJy
ZW50U2FtcGxlRnJhbWUoKTsKKyAgICBkb3VibGUgc2FtcGxlUmF0ZSA9IGNvbnRleHQoKS0+c2Ft
cGxlUmF0ZSgpOworICAgIHNpemVfdCBzdGFydEZyYW1lID0gY29udGV4dCgpLT5jdXJyZW50U2Ft
cGxlRnJhbWUoKTsKICAgICBzaXplX3QgZW5kRnJhbWUgPSBzdGFydEZyYW1lICsgbnVtYmVyT2ZW
YWx1ZXM7CiAKICAgICAvLyBOb3RlIHdlJ3JlIHJ1bm5pbmcgY29udHJvbCByYXRlIGF0IHRoZSBz
YW1wbGUtcmF0ZS4KQEAgLTMyNiw3ICszNTEsOCBAQCB2b2lkIEF1ZGlvUGFyYW06OmNhbGN1bGF0
ZVRpbWVsaW5lVmFsdWVzKGZsb2F0KiB2YWx1ZXMsIHVuc2lnbmVkIG51bWJlck9mVmFsdWVzKQog
CiB2b2lkIEF1ZGlvUGFyYW06OmNvbm5lY3QoQXVkaW9Ob2RlT3V0cHV0KiBvdXRwdXQpCiB7Ci0g
ICAgQVNTRVJUKGNvbnRleHQoKS5pc0dyYXBoT3duZXIoKSk7CisgICAgQVNTRVJUKGNvbnRleHQo
KSk7CisgICAgQVNTRVJUKGNvbnRleHQoKS0+aXNHcmFwaE93bmVyKCkpOwogCiAgICAgQVNTRVJU
KG91dHB1dCk7CiAgICAgaWYgKCFvdXRwdXQpCkBAIC0zNDEsNyArMzY3LDggQEAgdm9pZCBBdWRp
b1BhcmFtOjpjb25uZWN0KEF1ZGlvTm9kZU91dHB1dCogb3V0cHV0KQogCiB2b2lkIEF1ZGlvUGFy
YW06OmRpc2Nvbm5lY3QoQXVkaW9Ob2RlT3V0cHV0KiBvdXRwdXQpCiB7Ci0gICAgQVNTRVJUKGNv
bnRleHQoKS5pc0dyYXBoT3duZXIoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAgQVNT
RVJUKGNvbnRleHQoKS0+aXNHcmFwaE93bmVyKCkpOwogCiAgICAgQVNTRVJUKG91dHB1dCk7CiAg
ICAgaWYgKCFvdXRwdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwCmluZGV4IDU3NDU0M2ZlOWE4My4uNjU5ZmVl
NGEwM2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
U3VtbWluZ0p1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmNwcApAQCAtMzUsMjggKzM1LDMwIEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIEF1ZGlvU3VtbWluZ0p1bmN0aW9uOjpBdWRpb1N1bW1pbmdKdW5jdGlvbihC
YXNlQXVkaW9Db250ZXh0JiBjb250ZXh0KQotICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAg
OiBtX2NvbnRleHQobWFrZVdlYWtQdHIoY29udGV4dCwgRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fz
c2VydGlvbnM6Ok5vKSkgLy8gV2ViQXVkaW8gY29kZSB1c2VzIGxvY2tpbmcgd2hlbiBhY2Nlc3Np
bmcgdGhlIGNvbnRleHQuCiB7CiB9CiAKIEF1ZGlvU3VtbWluZ0p1bmN0aW9uOjp+QXVkaW9TdW1t
aW5nSnVuY3Rpb24oKQogewotICAgIGlmIChtX3JlbmRlcmluZ1N0YXRlTmVlZFVwZGF0aW5nKQot
ICAgICAgICBjb250ZXh0KCkucmVtb3ZlTWFya2VkU3VtbWluZ0p1bmN0aW9uKHRoaXMpOworICAg
IGlmIChtX3JlbmRlcmluZ1N0YXRlTmVlZFVwZGF0aW5nICYmIGNvbnRleHQoKSkKKyAgICAgICAg
Y29udGV4dCgpLT5yZW1vdmVNYXJrZWRTdW1taW5nSnVuY3Rpb24odGhpcyk7CiB9CiAKIHZvaWQg
QXVkaW9TdW1taW5nSnVuY3Rpb246Om1hcmtSZW5kZXJpbmdTdGF0ZUFzRGlydHkoKQogewotICAg
IEFTU0VSVChjb250ZXh0KCkuaXNHcmFwaE93bmVyKCkpOworICAgIEFTU0VSVChjb250ZXh0KCkp
OworICAgIEFTU0VSVChjb250ZXh0KCktPmlzR3JhcGhPd25lcigpKTsKICAgICBpZiAoIW1fcmVu
ZGVyaW5nU3RhdGVOZWVkVXBkYXRpbmcgJiYgY2FuVXBkYXRlU3RhdGUoKSkgewotICAgICAgICBj
b250ZXh0KCkubWFya1N1bW1pbmdKdW5jdGlvbkRpcnR5KHRoaXMpOworICAgICAgICBjb250ZXh0
KCktPm1hcmtTdW1taW5nSnVuY3Rpb25EaXJ0eSh0aGlzKTsKICAgICAgICAgbV9yZW5kZXJpbmdT
dGF0ZU5lZWRVcGRhdGluZyA9IHRydWU7CiAgICAgfQogfQogCiBib29sIEF1ZGlvU3VtbWluZ0p1
bmN0aW9uOjphZGRPdXRwdXQoQXVkaW9Ob2RlT3V0cHV0JiBvdXRwdXQpCiB7Ci0gICAgQVNTRVJU
KGNvbnRleHQoKS5pc0dyYXBoT3duZXIoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAg
QVNTRVJUKGNvbnRleHQoKS0+aXNHcmFwaE93bmVyKCkpOwogICAgIGlmICghbV9vdXRwdXRzLmFk
ZCgmb3V0cHV0KS5pc05ld0VudHJ5KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTc0LDcg
Kzc2LDggQEAgYm9vbCBBdWRpb1N1bW1pbmdKdW5jdGlvbjo6YWRkT3V0cHV0KEF1ZGlvTm9kZU91
dHB1dCYgb3V0cHV0KQogCiBib29sIEF1ZGlvU3VtbWluZ0p1bmN0aW9uOjpyZW1vdmVPdXRwdXQo
QXVkaW9Ob2RlT3V0cHV0JiBvdXRwdXQpCiB7Ci0gICAgQVNTRVJUKGNvbnRleHQoKS5pc0dyYXBo
T3duZXIoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKS0+
aXNHcmFwaE93bmVyKCkpOwogICAgIGlmICghbV9vdXRwdXRzLnJlbW92ZSgmb3V0cHV0KSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC05NCw3ICs5Nyw4IEBAIGJvb2wgQXVkaW9TdW1taW5n
SnVuY3Rpb246OnJlbW92ZU91dHB1dChBdWRpb05vZGVPdXRwdXQmIG91dHB1dCkKIAogdm9pZCBB
dWRpb1N1bW1pbmdKdW5jdGlvbjo6dXBkYXRlUmVuZGVyaW5nU3RhdGUoKQogewotICAgIEFTU0VS
VChjb250ZXh0KCkuaXNBdWRpb1RocmVhZCgpICYmIGNvbnRleHQoKS5pc0dyYXBoT3duZXIoKSk7
CisgICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKS0+aXNBdWRpb1Ro
cmVhZCgpICYmIGNvbnRleHQoKS0+aXNHcmFwaE93bmVyKCkpOwogCiAgICAgaWYgKG1fcmVuZGVy
aW5nU3RhdGVOZWVkVXBkYXRpbmcgJiYgY2FuVXBkYXRlU3RhdGUoKSkgewogICAgICAgICAvLyBD
b3B5IGZyb20gbV9vdXRwdXRzIHRvIG1fcmVuZGVyaW5nT3V0cHV0cy4KQEAgLTEyOCw3ICsxMzIs
OCBAQCB1bnNpZ25lZCBBdWRpb1N1bW1pbmdKdW5jdGlvbjo6bWF4aW11bU51bWJlck9mQ2hhbm5l
bHMoKSBjb25zdAogCiB2b2lkIEF1ZGlvU3VtbWluZ0p1bmN0aW9uOjpvdXRwdXRFbmFibGVkU3Rh
dGVDaGFuZ2VkKEF1ZGlvTm9kZU91dHB1dCYgb3V0cHV0KQogewotICAgIEFTU0VSVChjb250ZXh0
KCkuaXNHcmFwaE93bmVyKCkpOworICAgIEFTU0VSVChjb250ZXh0KCkpOworICAgIEFTU0VSVChj
b250ZXh0KCktPmlzR3JhcGhPd25lcigpKTsKICAgICBpZiAoIW1fcGVuZGluZ1JlbmRlcmluZ091
dHB1dHMpIHsKICAgICAgICAgLy8gSGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRo
ZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bwogICAg
ICAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVu
Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVu
Y3Rpb24uaAppbmRleCAwNzliYjQyNDExOWUuLjM0NTc0ZmQ4MGEzYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uaApA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPGl0ZXJhdG9yPgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDIsOCArNDMsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB+QXVkaW9TdW1taW5nSnVuY3Rpb24oKTsKIAogICAgIC8vIENhbiBiZSBjYWxsZWQg
ZnJvbSBhbnkgdGhyZWFkLgotICAgIEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQoKSB7IHJldHVy
biBtX2NvbnRleHQ7IH0KLSAgICBjb25zdCBCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0KCkgY29u
c3QgeyByZXR1cm4gbV9jb250ZXh0OyB9CisgICAgQmFzZUF1ZGlvQ29udGV4dCogY29udGV4dCgp
IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQorICAgIGNvbnN0IEJhc2VBdWRpb0NvbnRleHQq
IGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KIAogICAgIC8vIFRo
aXMgY29waWVzIG1fb3V0cHV0cyB0byBtX3JlbmRlcmluZ091dHB1dHMuIFBsZWFzZSBzZWUgY29t
bWVudHMgZm9yIHRoZXNlIGxpc3RzIGJlbG93LgogICAgIC8vIFRoaXMgbXVzdCBiZSBjYWxsZWQg
d2hlbiB3ZSBvd24gdGhlIGNvbnRleHQncyBncmFwaCBsb2NrIGluIHRoZSBhdWRpbyB0aHJlYWQg
YXQgdGhlIHZlcnkgc3RhcnQgb3IgZW5kIG9mIHRoZSByZW5kZXIgcXVhbnR1bS4KQEAgLTEzNCw3
ICsxMzUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdW5zaWduZWQgbWF4aW11bU51bWJlck9mQ2hhbm5l
bHMoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBSZWY8QmFzZUF1ZGlvQ29udGV4dD4gbV9jb250
ZXh0OworICAgIFdlYWtQdHI8QmFzZUF1ZGlvQ29udGV4dD4gbV9jb250ZXh0OwogCiAgICAgLy8g
bV9yZW5kZXJpbmdPdXRwdXRzIGlzIGEgY29weSBvZiBtX291dHB1dHMgd2hpY2ggd2lsbCBuZXZl
ciBiZSBtb2RpZmllZCBkdXJpbmcgdGhlIGdyYXBoIHJlbmRlcmluZyBvbiB0aGUgYXVkaW8gdGhy
ZWFkLgogICAgIC8vIFRoaXMgaXMgdGhlIGxpc3Qgd2hpY2ggaXMgdXNlZCBieSB0aGUgcmVuZGVy
aW5nIGNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jh
c2VBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNl
QXVkaW9Db250ZXh0LmNwcAppbmRleCA1ZmEwZGYwMzZiY2MuLmRmYjkzZDBkNmMxYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
Y3BwCkBAIC0xMTUsNiArMTE1LDcgQEAgYm9vbCBCYXNlQXVkaW9Db250ZXh0Ojppc1N1cHBvcnRl
ZFNhbXBsZVJhdGUoZmxvYXQgc2FtcGxlUmF0ZSkKICAgICByZXR1cm4gc2FtcGxlUmF0ZSA+PSAz
MDAwICYmIHNhbXBsZVJhdGUgPD0gMzg0MDAwOwogfQogCitzdGF0aWMgdW5zaWduZWQgbnVtYmVy
T2ZCYXNlQXVkaW9Db250ZXh0cyA9IDA7CiB1bnNpZ25lZCBCYXNlQXVkaW9Db250ZXh0OjpzX2hh
cmR3YXJlQ29udGV4dENvdW50ID0gMDsKIAogLy8gQ29uc3RydWN0b3IgZm9yIHJlbmRlcmluZyB0
byB0aGUgYXVkaW8gaGFyZHdhcmUuCkBAIC0xMjUsMTYgKzEyNiwxNyBAQCBCYXNlQXVkaW9Db250
ZXh0OjpCYXNlQXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgSXNMZWdhY3lXZWJLaXRB
dWRpb0NvbnRleAogICAgICwgbV9sb2dJZGVudGlmaWVyKHVuaXF1ZUxvZ0lkZW50aWZpZXIoKSkK
ICNlbmRpZgogICAgICwgbV93b3JrbGV0KEF1ZGlvV29ya2xldDo6Y3JlYXRlKCp0aGlzKSkKKyAg
ICAsIG1fZGVzdGluYXRpb25Ob2RlKG1ha2VVbmlxdWVSZWY8RGVmYXVsdEF1ZGlvRGVzdGluYXRp
b25Ob2RlPigqdGhpcywgY29udGV4dE9wdGlvbnMuc2FtcGxlUmF0ZSkpCiAgICAgLCBtX2xpc3Rl
bmVyKGlzTGVnYWN5V2ViS2l0QXVkaW9Db250ZXh0ID09IElzTGVnYWN5V2ViS2l0QXVkaW9Db250
ZXh0OjpZZXMgPyBSZWY8QXVkaW9MaXN0ZW5lcj4oV2ViS2l0QXVkaW9MaXN0ZW5lcjo6Y3JlYXRl
KCp0aGlzKSkgOiBBdWRpb0xpc3RlbmVyOjpjcmVhdGUoKnRoaXMpKQogeworICAgICsrbnVtYmVy
T2ZCYXNlQXVkaW9Db250ZXh0czsKKwogICAgIC8vIEFjY29yZGluZyB0byBzcGVjIEF1ZGlvQ29u
dGV4dCBtdXN0IGRpZSBvbmx5IGFmdGVyIHBhZ2UgbmF2aWdhdGUuCiAgICAgLy8gTGV0cyBtYXJr
IGl0IGFzIEFjdGl2ZURPTU9iamVjdCB3aXRoIHBlbmRpbmcgYWN0aXZpdHkgYW5kIHVubWFyayBp
dCBpbiBjbGVhciBtZXRob2QuCi0gICAgbWFrZVBlbmRpbmdBY3Rpdml0eSgpOworICAgIHNldFBl
bmRpbmdBY3Rpdml0eSgpOwogCiAgICAgRkZURnJhbWU6OmluaXRpYWxpemUoKTsKIAotICAgIG1f
ZGVzdGluYXRpb25Ob2RlID0gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpjcmVhdGUoKnRo
aXMsIGNvbnRleHRPcHRpb25zLnNhbXBsZVJhdGUpOwotCiAgICAgLy8gVW5saWtlIE9mZmxpbmVB
dWRpb0NvbnRleHQsIEF1ZGlvQ29udGV4dCBkb2VzIG5vdCByZXF1aXJlIGNhbGxpbmcgcmVzdW1l
KCkgdG8gc3RhcnQgcmVuZGVyaW5nLgogICAgIC8vIExhenkgaW5pdGlhbGl6YXRpb24gc3RhcnRz
IHJlbmRlcmluZyBzbyB3ZSBzY2hlZHVsZSBhIHRhc2sgaGVyZSB0byBtYWtlIHN1cmUgbGF6eSBp
bml0aWFsaXphdGlvbgogICAgIC8vIGVuZHMgdXAgaGFwcGVuaW5nLCBldmVuIGlmIG5vIGF1ZGlv
IG5vZGUgZ2V0cyBjb25zdHJ1Y3RlZC4KQEAgLTE1NiwyMSArMTU4LDIxIEBAIEJhc2VBdWRpb0Nv
bnRleHQ6OkJhc2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBJc0xlZ2FjeVdlYktp
dEF1ZGlvQ29udGV4CiAgICAgLCBtX3dvcmtsZXQoQXVkaW9Xb3JrbGV0OjpjcmVhdGUoKnRoaXMp
KQogICAgICwgbV9pc09mZmxpbmVDb250ZXh0KHRydWUpCiAgICAgLCBtX3JlbmRlclRhcmdldChX
VEZNb3ZlKHJlbmRlclRhcmdldCkpCisgICAgLCBtX2Rlc3RpbmF0aW9uTm9kZShtYWtlVW5pcXVl
UmVmPE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZT4oKnRoaXMsIG51bWJlck9mQ2hhbm5lbHMs
IHNhbXBsZVJhdGUsIG1fcmVuZGVyVGFyZ2V0LmNvcHlSZWYoKSkpCiAgICAgLCBtX2xpc3RlbmVy
KGlzTGVnYWN5V2ViS2l0QXVkaW9Db250ZXh0ID09IElzTGVnYWN5V2ViS2l0QXVkaW9Db250ZXh0
OjpZZXMgPyBSZWY8QXVkaW9MaXN0ZW5lcj4oV2ViS2l0QXVkaW9MaXN0ZW5lcjo6Y3JlYXRlKCp0
aGlzKSkgOiBBdWRpb0xpc3RlbmVyOjpjcmVhdGUoKnRoaXMpKQogeworICAgICsrbnVtYmVyT2ZC
YXNlQXVkaW9Db250ZXh0czsKICAgICBGRlRGcmFtZTo6aW5pdGlhbGl6ZSgpOwotCi0gICAgLy8g
Q3JlYXRlIGEgbmV3IGRlc3RpbmF0aW9uIGZvciBvZmZsaW5lIHJlbmRlcmluZy4KLSAgICBtX2Rl
c3RpbmF0aW9uTm9kZSA9IE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6Y3JlYXRlKCp0aGlz
LCBudW1iZXJPZkNoYW5uZWxzLCBzYW1wbGVSYXRlLCBtX3JlbmRlclRhcmdldC5jb3B5UmVmKCkp
OwogfQogCiBCYXNlQXVkaW9Db250ZXh0Ojp+QmFzZUF1ZGlvQ29udGV4dCgpCiB7CisgICAgQVNT
RVJUKG51bWJlck9mQmFzZUF1ZGlvQ29udGV4dHMpOworICAgIC0tbnVtYmVyT2ZCYXNlQXVkaW9D
b250ZXh0czsKICNpZiBERUJVR19BVURJT05PREVfUkVGRVJFTkNFUwogICAgIGZwcmludGYoc3Rk
ZXJyLCAiJXA6IEJhc2VBdWRpb0NvbnRleHQ6On5BdWRpb0NvbnRleHQoKVxuIiwgdGhpcyk7CiAj
ZW5kaWYKICAgICBBU1NFUlQoIW1faXNJbml0aWFsaXplZCk7Ci0gICAgQVNTRVJUKG1faXNTdG9w
U2NoZWR1bGVkKTsKICAgICBBU1NFUlQobV9ub2Rlc1RvRGVsZXRlLmlzRW1wdHkoKSk7CiAgICAg
QVNTRVJUKG1fcmVmZXJlbmNlZFNvdXJjZU5vZGVzLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKG1f
YXV0b21hdGljUHVsbE5vZGVzLmlzRW1wdHkoKSk7CkBAIC0xODAsNiArMTgyLDExIEBAIEJhc2VB
dWRpb0NvbnRleHQ6On5CYXNlQXVkaW9Db250ZXh0KCkKICAgICAvLyBGSVhNRTogQ2FuIHdlIGFz
c2VydCB0aGF0IG1fZGVmZXJyZWRCcmVha0Nvbm5lY3Rpb25MaXN0IGlzIGVtcHR5PwogfQogCit1
bnNpZ25lZCBCYXNlQXVkaW9Db250ZXh0OjpudW1iZXJPZkluc3RhbmNlcygpCit7CisgICAgcmV0
dXJuIG51bWJlck9mQmFzZUF1ZGlvQ29udGV4dHM7Cit9CisKIHZvaWQgQmFzZUF1ZGlvQ29udGV4
dDo6bGF6eUluaXRpYWxpemUoKQogewogICAgIGlmIChpc1N0b3BwZWQoKSkKQEAgLTE5Myw4ICsy
MDAsNyBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmxhenlJbml0aWFsaXplKCkKICAgICBpZiAo
bV9pc0F1ZGlvVGhyZWFkRmluaXNoZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2Rl
c3RpbmF0aW9uTm9kZSkKLSAgICAgICAgbV9kZXN0aW5hdGlvbk5vZGUtPmluaXRpYWxpemUoKTsK
KyAgICBtX2Rlc3RpbmF0aW9uTm9kZS0+aW5pdGlhbGl6ZSgpOwogCiAgICAgbV9pc0luaXRpYWxp
emVkID0gdHJ1ZTsKIH0KQEAgLTIwMywxMCArMjA5LDYgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0
OjpjbGVhcigpCiB7CiAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CiAK
LSAgICAvLyBXZSBoYXZlIHRvIHJlbGVhc2Ugb3VyIHJlZmVyZW5jZSB0byB0aGUgZGVzdGluYXRp
b24gbm9kZSBiZWZvcmUgdGhlIGNvbnRleHQgd2lsbCBldmVyIGJlIGRlbGV0ZWQgc2luY2UgdGhl
IGRlc3RpbmF0aW9uIG5vZGUgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlIGNvbnRleHQuCi0gICAg
aWYgKG1fZGVzdGluYXRpb25Ob2RlKQotICAgICAgICBtX2Rlc3RpbmF0aW9uTm9kZSA9IG51bGxw
dHI7Ci0KICAgICAvLyBBdWRpbyB0aHJlYWQgaXMgZGVhZC4gTm9ib2R5IHdpbGwgc2NoZWR1bGUg
bm9kZSBkZWxldGlvbiBhY3Rpb24uIExldCdzIGRvIGl0IG91cnNlbHZlcy4KICAgICBkbyB7CiAg
ICAgICAgIGRlbGV0ZU1hcmtlZE5vZGVzKCk7CkBAIC0yMjYsOCArMjI4LDcgQEAgdm9pZCBCYXNl
QXVkaW9Db250ZXh0Ojp1bmluaXRpYWxpemUoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBU
aGlzIHN0b3BzIHRoZSBhdWRpbyB0aHJlYWQgYW5kIGFsbCBhdWRpbyByZW5kZXJpbmcuCi0gICAg
aWYgKG1fZGVzdGluYXRpb25Ob2RlKQotICAgICAgICBtX2Rlc3RpbmF0aW9uTm9kZS0+dW5pbml0
aWFsaXplKCk7CisgICAgbV9kZXN0aW5hdGlvbk5vZGUtPnVuaW5pdGlhbGl6ZSgpOwogCiAgICAg
Ly8gRG9uJ3QgYWxsb3cgdGhlIGNvbnRleHQgdG8gaW5pdGlhbGl6ZSBhIHNlY29uZCB0aW1lIGFm
dGVyIGl0J3MgYWxyZWFkeSBiZWVuIGV4cGxpY2l0bHkgdW5pbml0aWFsaXplZC4KICAgICBtX2lz
QXVkaW9UaHJlYWRGaW5pc2hlZCA9IHRydWU7CkBAIC0yOTIsNiArMjkzLDcgQEAgdm9pZCBCYXNl
QXVkaW9Db250ZXh0OjpzdG9wKCkKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogICAg
IAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyk7CiAKICAgICAvLyBVc3VhbGx5IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQg
Y2FsbHMgc3RvcCB0d2ljZS4KICAgICBpZiAobV9pc1N0b3BTY2hlZHVsZWQpCkBAIC0zMTcsNyAr
MzE5LDcgQEAgRG9jdW1lbnQqIEJhc2VBdWRpb0NvbnRleHQ6OmRvY3VtZW50KCkgY29uc3QKIAog
ZmxvYXQgQmFzZUF1ZGlvQ29udGV4dDo6c2FtcGxlUmF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fZGVzdGluYXRpb25Ob2RlID8gbV9kZXN0aW5hdGlvbk5vZGUtPnNhbXBsZVJhdGUoKSA6IEF1
ZGlvRGVzdGluYXRpb246OmhhcmR3YXJlU2FtcGxlUmF0ZSgpOworICAgIHJldHVybiBtX2Rlc3Rp
bmF0aW9uTm9kZS0+c2FtcGxlUmF0ZSgpOwogfQogCiBib29sIEJhc2VBdWRpb0NvbnRleHQ6Ondv
dWxkVGFpbnRPcmlnaW4oY29uc3QgVVJMJiB1cmwpIGNvbnN0CkBAIC0zNDYsNyArMzQ4LDcgQEAg
dm9pZCBCYXNlQXVkaW9Db250ZXh0OjpkZWNvZGVBdWRpb0RhdGEoUmVmPEFycmF5QnVmZmVyPiYm
IGF1ZGlvRGF0YSwgUmVmUHRyPEF1ZGkKICAgICBpZiAoIW1fYXVkaW9EZWNvZGVyKQogICAgICAg
ICBtX2F1ZGlvRGVjb2RlciA9IG1ha2VVbmlxdWU8QXN5bmNBdWRpb0RlY29kZXI+KCk7CiAKLSAg
ICBtX2F1ZGlvRGVjb2Rlci0+ZGVjb2RlQXN5bmMoV1RGTW92ZShhdWRpb0RhdGEpLCBzYW1wbGVS
YXRlKCksIFt0aGlzLCBhY3Rpdml0eSA9IEFjdGl2ZURPTU9iamVjdDo6bWFrZVBlbmRpbmdBY3Rp
dml0eSgqdGhpcyksIHN1Y2Nlc3NDYWxsYmFjayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwg
ZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayksIHByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXShFeGNlcHRpb25PcjxSZWY8QXVkaW9CdWZmZXI+PiYmIHJlc3VsdCkgbXV0YWJs
ZSB7CisgICAgbV9hdWRpb0RlY29kZXItPmRlY29kZUFzeW5jKFdURk1vdmUoYXVkaW9EYXRhKSwg
c2FtcGxlUmF0ZSgpLCBbdGhpcywgYWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlz
KSwgc3VjY2Vzc0NhbGxiYWNrID0gV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBlcnJvckNhbGxi
YWNrID0gV1RGTW92ZShlcnJvckNhbGxiYWNrKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSld
KEV4Y2VwdGlvbk9yPFJlZjxBdWRpb0J1ZmZlcj4+JiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAg
ICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpJbnRlcm5h
bEFzeW5jVGFzaywgW3N1Y2Nlc3NDYWxsYmFjayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwg
ZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayksIHByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHBy
b21pc2UpCkBAIC03NTksNiArNzYxLDcgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpoYW5kbGVE
ZWZlcnJlZERlY3JlbWVudENvbm5lY3Rpb25Db3VudHMoKQogdm9pZCBCYXNlQXVkaW9Db250ZXh0
OjptYXJrRm9yRGVsZXRpb24oQXVkaW9Ob2RlJiBub2RlKQogewogICAgIEFTU0VSVChpc0dyYXBo
T3duZXIoKSk7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShub2RlLm5vZGVUeXBlKCkgIT0gQXVk
aW9Ob2RlOjpOb2RlVHlwZURlc3RpbmF0aW9uLCAiRGVzdGluYXRpb24gbm9kZSBpcyBvd25lZCBi
eSB0aGUgQmFzZUF1ZGlvQ29udGV4dCIpOwogCiAgICAgaWYgKGlzQXVkaW9UaHJlYWRGaW5pc2hl
ZCgpKQogICAgICAgICBtX25vZGVzVG9EZWxldGUuYXBwZW5kKCZub2RlKTsKQEAgLTgyMSw2ICs4
MjQsOCBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmRlbGV0ZU1hcmtlZE5vZGVzKCkKICAgICAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZk91dHB1dHM7ICsraSkKICAg
ICAgICAgICAgICAgICBtX2RpcnR5QXVkaW9Ob2RlT3V0cHV0cy5yZW1vdmUobm9kZS0+b3V0cHV0
KGkpKTsKIAorICAgICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShub2RlLT5ub2RlVHlwZSgp
ICE9IEF1ZGlvTm9kZTo6Tm9kZVR5cGVEZXN0aW5hdGlvbiwgIkRlc3RpbmF0aW9uIG5vZGUgaXMg
b3duZWQgYnkgdGhlIEJhc2VBdWRpb0NvbnRleHQiKTsKKwogICAgICAgICAgICAgLy8gRmluYWxs
eSwgZGVsZXRlIGl0LgogICAgICAgICAgICAgZGVsZXRlIG5vZGU7CiAgICAgICAgIH0KQEAgLTEw
MjgsMTAgKzEwMzMsMTAgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpjbGVhclBlbmRpbmdBY3Rp
dml0eSgpCiAgICAgbV9wZW5kaW5nQWN0aXZpdHkgPSBudWxscHRyOwogfQogCi12b2lkIEJhc2VB
dWRpb0NvbnRleHQ6Om1ha2VQZW5kaW5nQWN0aXZpdHkoKQordm9pZCBCYXNlQXVkaW9Db250ZXh0
OjpzZXRQZW5kaW5nQWN0aXZpdHkoKQogewogICAgIGlmICghbV9wZW5kaW5nQWN0aXZpdHkpCi0g
ICAgICAgIG1fcGVuZGluZ0FjdGl2aXR5ID0gQWN0aXZlRE9NT2JqZWN0OjptYWtlUGVuZGluZ0Fj
dGl2aXR5KCp0aGlzKTsKKyAgICAgICAgbV9wZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0Fj
dGl2aXR5KCp0aGlzKTsKIH0KIAogUGVyaW9kaWNXYXZlJiBCYXNlQXVkaW9Db250ZXh0OjpwZXJp
b2RpY1dhdmUoT3NjaWxsYXRvclR5cGUgdHlwZSkKQEAgLTEwODcsOCArMTA5Miw3IEBAIHZvaWQg
QmFzZUF1ZGlvQ29udGV4dDo6d29ya2xldElzUmVhZHkoKQogCiAgICAgLy8gSWYgd2UncmUgYWxy
ZWFkeSByZW5kZXJpbmcgd2hlbiB0aGUgd29ya2xldCBiZWNvbWVzIHJlYWR5LCB3ZSBuZWVkIHRv
IHJlc3RhcnQKICAgICAvLyByZW5kZXJpbmcgaW4gb3JkZXIgdG8gc3dpdGNoIHRvIHRoZSBhdWRp
byB3b3JrbGV0IHRocmVhZC4KLSAgICBpZiAobV9kZXN0aW5hdGlvbk5vZGUpCi0gICAgICAgIG1f
ZGVzdGluYXRpb25Ob2RlLT5yZXN0YXJ0UmVuZGVyaW5nKCk7CisgICAgbV9kZXN0aW5hdGlvbk5v
ZGUtPnJlc3RhcnRSZW5kZXJpbmcoKTsKIH0KIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
aAppbmRleCA5ZDlhNGE5Yzg5NjMuLjRiZWUxNzNlMjczMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKQEAgLTEwNywxNSArMTA3
LDE5IEBAIHB1YmxpYzoKICAgICB1c2luZyBUaHJlYWRTYWZlUmVmQ291bnRlZDo6cmVmOwogICAg
IHVzaW5nIFRocmVhZFNhZmVSZWZDb3VudGVkOjpkZXJlZjsKIAorICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyB1bnNpZ25lZCBudW1iZXJPZkluc3RhbmNlcygpOworCiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50KCkgY29uc3Q7CiAgICAgYm9vbCBpc0luaXRpYWxpemVkKCkgY29uc3Q7CiAgICAgCiAg
ICAgYm9vbCBpc09mZmxpbmVDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9pc09mZmxpbmVDb250
ZXh0OyB9CiAgICAgdmlydHVhbCBib29sIGlzV2ViS2l0QXVkaW9Db250ZXh0KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KIAotICAgIEF1ZGlvRGVzdGluYXRpb25Ob2RlKiBkZXN0aW5hdGlvbigp
IHsgcmV0dXJuIG1fZGVzdGluYXRpb25Ob2RlLmdldCgpOyB9Ci0gICAgc2l6ZV90IGN1cnJlbnRT
YW1wbGVGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25Ob2RlID8gbV9kZXN0aW5h
dGlvbk5vZGUtPmN1cnJlbnRTYW1wbGVGcmFtZSgpIDogMDsgfQotICAgIGRvdWJsZSBjdXJyZW50
VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25Ob2RlID8gbV9kZXN0aW5hdGlvbk5v
ZGUtPmN1cnJlbnRUaW1lKCkgOiAwLjsgfQorICAgIEF1ZGlvRGVzdGluYXRpb25Ob2RlJiBkZXN0
aW5hdGlvbigpIHsgcmV0dXJuIG1fZGVzdGluYXRpb25Ob2RlLmdldCgpOyB9CisgICAgY29uc3Qg
QXVkaW9EZXN0aW5hdGlvbk5vZGUmIGRlc3RpbmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0
aW5hdGlvbk5vZGUuZ2V0KCk7IH0KKworICAgIHNpemVfdCBjdXJyZW50U2FtcGxlRnJhbWUoKSBj
b25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uTm9kZS0+Y3VycmVudFNhbXBsZUZyYW1lKCk7IH0K
KyAgICBkb3VibGUgY3VycmVudFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uTm9k
ZS0+Y3VycmVudFRpbWUoKTsgfQogICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdDsKICAgICB1
bnNpZ25lZCBsb25nIGFjdGl2ZVNvdXJjZUNvdW50KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8dW5zaWduZWQgbG9uZz4obV9hY3RpdmVTb3VyY2VDb3VudCk7IH0KIApAQCAtMjk2LDEyICsz
MDAsMTAgQEAgcHJvdGVjdGVkOgogICAgIEJhc2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmLCBJc0xl
Z2FjeVdlYktpdEF1ZGlvQ29udGV4dCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQg
c2FtcGxlUmF0ZSwgUmVmUHRyPEF1ZGlvQnVmZmVyPiYmIHJlbmRlclRhcmdldCk7CiAgICAgCiAg
ICAgdm9pZCBjbGVhclBlbmRpbmdBY3Rpdml0eSgpOwotICAgIHZvaWQgbWFrZVBlbmRpbmdBY3Rp
dml0eSgpOworICAgIHZvaWQgc2V0UGVuZGluZ0FjdGl2aXR5KCk7CiAKICAgICB2b2lkIGxvY2tJ
bnRlcm5hbChib29sJiBtdXN0UmVsZWFzZUxvY2spOwogCi0gICAgQXVkaW9EZXN0aW5hdGlvbk5v
ZGUqIGRlc3RpbmF0aW9uTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25Ob2RlLmdl
dCgpOyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQgdW5pbml0aWFsaXplKCk7CiAKICNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKQEAgLTM4Myw3ICszODUsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxW
ZWN0b3I8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+Pj4gbV9zdGF0ZVJlYWN0aW9uczsKIAogICAg
IFJlZlB0cjxBdWRpb0J1ZmZlcj4gbV9yZW5kZXJUYXJnZXQ7Ci0gICAgUmVmUHRyPEF1ZGlvRGVz
dGluYXRpb25Ob2RlPiBtX2Rlc3RpbmF0aW9uTm9kZTsKKyAgICBVbmlxdWVSZWY8QXVkaW9EZXN0
aW5hdGlvbk5vZGU+IG1fZGVzdGluYXRpb25Ob2RlOwogICAgIFJlZjxBdWRpb0xpc3RlbmVyPiBt
X2xpc3RlbmVyOwogCiAgICAgdW5zaWduZWQgbV9jb25uZWN0aW9uQ291bnQgeyAwIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuaAppbmRleCAzMzY5YzI0NTIxNGYuLjdkNGZhYjk5MWEwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1
bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCkBAIC0zMywyMCArMzMsMTggQEAgY2xhc3MgQXVkaW9E
ZXN0aW5hdGlvbjsKIGNsYXNzIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZSBmaW5hbCA6IHB1
YmxpYyBBdWRpb0Rlc3RpbmF0aW9uTm9kZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChE
ZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlPiBjcmVhdGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4
dCwgT3B0aW9uYWw8ZmxvYXQ+IHNhbXBsZVJhdGUgPSBXVEY6Om51bGxvcHQpCi0gICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUoY29u
dGV4dCwgc2FtcGxlUmF0ZSkpOwotICAgIH0KKyAgICBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5v
ZGUoQmFzZUF1ZGlvQ29udGV4dCYsIE9wdGlvbmFsPGZsb2F0PiA9IFdURjo6bnVsbG9wdCk7CiAg
ICAgCiAgICAgdmlydHVhbCB+RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKCk7CiAKICAgICB1
bnNpZ25lZCBmcmFtZXNQZXJCdWZmZXIoKSBjb25zdDsKICAgICAKICAgICB2b2lkIHN0YXJ0UmVu
ZGVyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikg
ZmluYWw7CisgICAgdm9pZCByZXN1bWUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxF
eGNlcHRpb24+JiYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHN1c3BlbmQoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGNsb3Nl
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQmLCBPcHRpb25hbDxmbG9h
dD4pOwotCiAgICAgdm9pZCBjcmVhdGVEZXN0aW5hdGlvbigpOwogICAgIHZvaWQgY2xlYXJEZXN0
aW5hdGlvbigpOwogICAgIHZvaWQgcmVjcmVhdGVEZXN0aW5hdGlvbigpOwpAQCAtNjAsMTAgKzU4
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHJlcXVpcmVzVGFpbFByb2Nlc3NpbmcoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdm9pZCBlbmFibGVJbnB1dChjb25zdCBTdHJp
bmcmIGlucHV0RGV2aWNlSWQpIGZpbmFsOwotICAgIHZvaWQgcmVzdW1lKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikgZmluYWw7Ci0gICAgdm9pZCBzdXNw
ZW5kKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikgZmlu
YWw7CiAgICAgdm9pZCByZXN0YXJ0UmVuZGVyaW5nKCkgZmluYWw7Ci0gICAgdm9pZCBjbG9zZShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHVuc2lnbmVkIG1heENoYW5u
ZWxDb3VudCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNQbGF5aW5nKCkgZmluYWw7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Nv
bnRleHQuY3BwCmluZGV4IDZhMGM5YTQyNDE4OC4uOWNlZjAwMzg3NDY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5j
cHAKQEAgLTEwOSwxMyArMTA5LDEzIEBAIHZvaWQgT2ZmbGluZUF1ZGlvQ29udGV4dDo6c3RhcnRP
ZmZsaW5lUmVuZGVyaW5nKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIAogICAgIGxh
enlJbml0aWFsaXplKCk7CiAKLSAgICBkZXN0aW5hdGlvbigpLT5zdGFydFJlbmRlcmluZyhbdGhp
cywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHBlbmRpbmdBY3Rpdml0eSA9IEFjdGl2ZURP
TU9iamVjdDo6bWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldKE9wdGlvbmFsPEV4Y2VwdGlvbj4m
JiBleGNlcHRpb24pIG11dGFibGUgeworICAgIGRlc3RpbmF0aW9uKCkuc3RhcnRSZW5kZXJpbmco
W3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtl
UGVuZGluZ0FjdGl2aXR5KCp0aGlzKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikg
bXV0YWJsZSB7CiAgICAgICAgIGlmIChleGNlcHRpb24pIHsKICAgICAgICAgICAgIHByb21pc2Ut
PnJlamVjdChXVEZNb3ZlKCpleGNlcHRpb24pKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCi0gICAgICAgIG1ha2VQZW5kaW5nQWN0aXZpdHkoKTsKKyAgICAgICAgc2V0UGVuZGlu
Z0FjdGl2aXR5KCk7CiAgICAgICAgIG1fcGVuZGluZ09mZmxpbmVSZW5kZXJpbmdQcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKTsKICAgICAgICAgbV9kaWRTdGFydE9mZmxpbmVSZW5kZXJpbmcgPSB0
cnVlOwogICAgICAgICBzZXRTdGF0ZShTdGF0ZTo6UnVubmluZyk7CkBAIC0xNzEsMTMgKzE3MSwx
MyBAQCB2b2lkIE9mZmxpbmVBdWRpb0NvbnRleHQ6OnJlc3VtZU9mZmxpbmVSZW5kZXJpbmcoUmVm
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogICAgIH0KICAgICBBU1NFUlQoc3RhdGUoKSA9
PSBBdWRpb0NvbnRleHRTdGF0ZTo6U3VzcGVuZGVkKTsKIAotICAgIGRlc3RpbmF0aW9uKCktPnN0
YXJ0UmVuZGVyaW5nKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcGVuZGluZ0Fj
dGl2aXR5ID0gQWN0aXZlRE9NT2JqZWN0OjptYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKV0oT3B0
aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgZGVzdGluYXRpb24o
KS5zdGFydFJlbmRlcmluZyhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHBlbmRp
bmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpXShPcHRpb25hbDxFeGNlcHRp
b24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGV4Y2VwdGlvbikgewogICAg
ICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFdURk1vdmUoKmV4Y2VwdGlvbikpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbWFrZVBlbmRpbmdBY3Rpdml0eSgpOwor
ICAgICAgICBzZXRQZW5kaW5nQWN0aXZpdHkoKTsKICAgICAgICAgc2V0U3RhdGUoU3RhdGU6OlJ1
bm5pbmcpOwogICAgICAgICBwcm9taXNlLT5yZXNvbHZlKCk7CiAgICAgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oCmlu
ZGV4IDE3MTE4OGVjNDNmMy4uM2RmMDdjYjc1NmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaApAQCAtNDcsNyArNDcs
OCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9sZW5n
dGg7IH0KICAgICBib29sIHNob3VsZFN1c3BlbmQoKSBmaW5hbDsKIAotICAgIE9mZmxpbmVBdWRp
b0Rlc3RpbmF0aW9uTm9kZSogZGVzdGluYXRpb24oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxPZmZs
aW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUqPihCYXNlQXVkaW9Db250ZXh0OjpkZXN0aW5hdGlvbigp
KTsgfQorICAgIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZSYgZGVzdGluYXRpb24oKSB7IHJl
dHVybiBzdGF0aWNfY2FzdDxPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUmPihCYXNlQXVkaW9D
b250ZXh0OjpkZXN0aW5hdGlvbigpKTsgfQorICAgIGNvbnN0IE9mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZSYgZGVzdGluYXRpb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBP
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUmPihCYXNlQXVkaW9Db250ZXh0OjpkZXN0aW5hdGlv
bigpKTsgfQogCiAgICAgLy8gbXVzdFJlbGVhc2VMb2NrIGlzIHNldCB0byB0cnVlIGlmIHdlIGFj
cXVpcmVkIHRoZSBsb2NrIGluIHRoaXMgbWV0aG9kIGNhbGwgYW5kIGNhbGxlciBtdXN0IHVubG9j
aygpLCBmYWxzZSBpZiBpdCB3YXMgcHJldmlvdXNseSBhY3F1aXJlZC4KICAgICB2b2lkIG9mZmxp
bmVMb2NrKGJvb2wmIG11c3RSZWxlYXNlTG9jayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuaApp
bmRleCA0ZmQzZjdjN2M1NjUuLjNiMDQyY2QwNmIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5oCkBAIC0zNywxMCArMzcsNyBAQCBjbGFzcyBBdWRpb0NvbnRleHQ7CiBjbGFzcyBPZmZsaW5l
QXVkaW9EZXN0aW5hdGlvbk5vZGUgZmluYWwgOiBwdWJsaWMgQXVkaW9EZXN0aW5hdGlvbk5vZGUg
ewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2Rl
KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZT4g
Y3JlYXRlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5l
bHMsIGZsb2F0IHNhbXBsZVJhdGUsIFJlZlB0cjxBdWRpb0J1ZmZlcj4mJiByZW5kZXJUYXJnZXQp
Ci0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPZmZsaW5lQXVkaW9EZXN0aW5h
dGlvbk5vZGUoY29udGV4dCwgbnVtYmVyT2ZDaGFubmVscywgc2FtcGxlUmF0ZSwgV1RGTW92ZShy
ZW5kZXJUYXJnZXQpKSk7Ci0gICAgfQorICAgIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZShC
YXNlQXVkaW9Db250ZXh0JiwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc2FtcGxl
UmF0ZSwgUmVmUHRyPEF1ZGlvQnVmZmVyPiYmIHJlbmRlclRhcmdldCk7CiAKICAgICB2aXJ0dWFs
IH5PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUoKTsKICAgICAKQEAgLTUzLDggKzUwLDYgQEAg
cHVibGljOgogICAgIHZvaWQgc3RhcnRSZW5kZXJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKSBmaW5hbDsKIAogcHJpdmF0ZToKLSAgICBPZmZsaW5l
QXVkaW9EZXN0aW5hdGlvbk5vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIHVuc2lnbmVkIG51bWJlck9m
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUsIFJlZlB0cjxBdWRpb0J1ZmZlcj4mJiByZW5kZXJU
YXJnZXQpOwotCiAgICAgZW51bSBjbGFzcyBPZmZsaW5lUmVuZGVyUmVzdWx0IHsgRmFpbHVyZSwg
U3VzcGVuZGVkLCBDb21wbGV0ZSB9OwogICAgIE9mZmxpbmVSZW5kZXJSZXN1bHQgb2ZmbGluZVJl
bmRlcigpOwogICAgIHZvaWQgbm90aWZ5T2ZmbGluZVJlbmRlcmluZ1N1c3BlbmRlZCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRl
eHQuY3BwCmluZGV4IGM4YWIxNmQ5NzM2Ni4uYWJkODQyNjg5OGQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuY3BwCkBA
IC0yMDAsNyArMjAwLDcgQEAgdm9pZCBXZWJLaXRBdWRpb0NvbnRleHQ6OmNsb3NlKERPTVByb21p
c2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBpZiAoc3RhdGUoKSA9PSBTdGF0ZTo6Q2xvc2VkIHx8ICFkZXN0aW5hdGlvbk5vZGUoKSkgewor
ICAgIGlmIChzdGF0ZSgpID09IFN0YXRlOjpDbG9zZWQpIHsKICAgICAgICAgcHJvbWlzZS5yZXNv
bHZlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMDksNyArMjA5LDcgQEAgdm9pZCBX
ZWJLaXRBdWRpb0NvbnRleHQ6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21p
c2UpCiAKICAgICBsYXp5SW5pdGlhbGl6ZSgpOwogCi0gICAgZGVzdGluYXRpb25Ob2RlKCktPmNs
b3NlKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICBkZXN0aW5h
dGlvbigpLmNsb3NlKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAg
ICAgICAgc2V0U3RhdGUoU3RhdGU6OkNsb3NlZCk7CiAgICAgICAgIHVuaW5pdGlhbGl6ZSgpOwog
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IDdhZjA3OWEzYWE2OC4uNjcy
YmRjM2UyNTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC01NCw3ICs1NCw3IEBA
IHN0cnVjdCBTYW1lU2l6ZUFzU2hhZG93Um9vdCA6IHB1YmxpYyBEb2N1bWVudEZyYWdtZW50LCBw
dWJsaWMgVHJlZVNjb3BlIHsKICAgICB1aW50OF90IG1vZGU7CiAgICAgdm9pZCogc3R5bGVTY29w
ZTsKICAgICB2b2lkKiBzdHlsZVNoZWV0TGlzdDsKLSAgICB2b2lkKiBob3N0OworICAgIFdlYWtQ
dHI8RWxlbWVudD4gaG9zdDsKICAgICB2b2lkKiBzbG90QXNzaWdubWVudDsKICAgICBPcHRpb25h
bDxIYXNoTWFwPEF0b21TdHJpbmcsIEF0b21TdHJpbmc+PiBwYXJ0TWFwcGluZ3M7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb2F0aW5nT2JqZWN0cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmNwcAppbmRleCBiNzA5M2Vj
MjAwMGEuLmI3M2UxNTkyYTdmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0Zsb2F0aW5nT2JqZWN0cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb2F0
aW5nT2JqZWN0cy5jcHAKQEAgLTM0LDcgKzM0LDggQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
c3RydWN0IFNhbWVTaXplQXNGbG9hdGluZ09iamVjdCB7Ci0gICAgdm9pZCogcG9pbnRlcnNbMl07
CisgICAgV2Vha1B0cjxSZW5kZXJCb3g+IHJlbmRlcmVyOworICAgIFdlYWtQdHI8Um9vdElubGlu
ZUJveD4gb3JpZ2luYXRpbmdMaW5lOwogICAgIExheW91dFJlY3QgcmVjdDsKICAgICBpbnQgcGFn
aW5hdGlvblN0cnV0OwogICAgIExheW91dFNpemUgc2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9Sb290SW5saW5lQm94LmNwcAppbmRleCA4MDcxNjE3NjkxODQuLjAyYWRiNzVmYWI5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcApAQCAtNDcsNyAr
NDcsOCBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoUm9vdElubGluZUJveCk7CiAKIHN0
cnVjdCBTYW1lU2l6ZUFzUm9vdElubGluZUJveCA6IHB1YmxpYyBJbmxpbmVGbG93Qm94LCBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8Um9vdElubGluZUJveD4gewogICAgIHVuc2lnbmVkIHZhcmlhYmxl
c1s3XTsKLSAgICB2b2lkKiBwb2ludGVyc1szXTsKKyAgICBXZWFrUHRyPFJlbmRlck9iamVjdD4g
bGluZUJyZWFrT2JqOworICAgIHZvaWQqIHBvaW50ZXJzWzJdOwogfTsKIAogQ09NUElMRV9BU1NF
UlQoc2l6ZW9mKFJvb3RJbmxpbmVCb3gpID09IHNpemVvZihTYW1lU2l6ZUFzUm9vdElubGluZUJv
eCksIFJvb3RJbmxpbmVCb3hfc2hvdWxkX3N0YXlfc21hbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCmluZGV4IGNjM2M1NjE2NTI4Yi4uY2ZiMjY5ZjMyZDViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yNjUwLDYgKzI2NTAsMTUgQEAgdW5zaWduZWQg
SW50ZXJuYWxzOjpyZWZlcmVuY2luZ05vZGVDb3VudChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQp
IGNvbnN0CiAgICAgcmV0dXJuIGRvY3VtZW50LnJlZmVyZW5jaW5nTm9kZUNvdW50KCk7CiB9CiAK
K3Vuc2lnbmVkIEludGVybmFsczo6bnVtYmVyT2ZCYXNlQXVkaW9Db250ZXh0cygpIGNvbnN0Cit7
CisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICByZXR1cm4gQmFzZUF1ZGlvQ29udGV4dDo6bnVt
YmVyT2ZJbnN0YW5jZXMoKTsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKwogI2lm
IEVOQUJMRShJTlRFUlNFQ1RJT05fT0JTRVJWRVIpCiB1bnNpZ25lZCBJbnRlcm5hbHM6Om51bWJl
ck9mSW50ZXJzZWN0aW9uT2JzZXJ2ZXJzKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGUxYTAzZTlhMDE3OS4uZTZkNmQ2
OTlmN2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTQ1NSw2ICs0NTUsNyBA
QCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZMaXZlTm9kZXMoKSBjb25zdDsKICAgICB1
bnNpZ25lZCBudW1iZXJPZkxpdmVEb2N1bWVudHMoKSBjb25zdDsKICAgICB1bnNpZ25lZCByZWZl
cmVuY2luZ05vZGVDb3VudChjb25zdCBEb2N1bWVudCYpIGNvbnN0OworICAgIHVuc2lnbmVkIG51
bWJlck9mQmFzZUF1ZGlvQ29udGV4dHMoKSBjb25zdDsKIAogI2lmIEVOQUJMRShJTlRFUlNFQ1RJ
T05fT0JTRVJWRVIpCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnRlcnNlY3Rpb25PYnNlcnZlcnMo
Y29uc3QgRG9jdW1lbnQmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApp
bmRleCA0Mjk0NzY5MWFhY2QuLmY5ZjE2YTdlZDhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbApAQCAtNTM3LDYgKzUzNyw3IEBAIGVudW0gVHJlZVR5cGUgewogCiAgICAgdW5z
aWduZWQgbG9uZyBudW1iZXJPZkxpdmVOb2RlcygpOwogICAgIHVuc2lnbmVkIGxvbmcgbnVtYmVy
T2ZMaXZlRG9jdW1lbnRzKCk7CisgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZkJhc2VBdWRpb0Nv
bnRleHRzKCk7CiAgICAgdW5zaWduZWQgbG9uZyByZWZlcmVuY2luZ05vZGVDb3VudChEb2N1bWVu
dCBkb2N1bWVudCk7CiAgICAgW0NvbmRpdGlvbmFsPUlOVEVSU0VDVElPTl9PQlNFUlZFUl0gdW5z
aWduZWQgbG9uZyBudW1iZXJPZkludGVyc2VjdGlvbk9ic2VydmVycyhEb2N1bWVudCBkb2N1bWVu
dCk7CiAgICAgW0NvbmRpdGlvbmFsID0gUkVTSVpFX09CU0VSVkVSXSB1bnNpZ25lZCBsb25nIG51
bWJlck9mUmVzaXplT2JzZXJ2ZXJzKERvY3VtZW50IGRvY3VtZW50KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425467</attachid>
            <date>2021-04-07 18:01:42 -0700</date>
            <delta_ts>2021-04-08 09:23:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224279-20210407180141.patch</filename>
            <type>text/plain</type>
            <size>74430</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY3OWMxZDY4MDkyNzZhMmE4NTc5ODBk
MWI0OWYxZjlkM2I1ZTMzYzkuLjQ0YTc2MjlkMDk1ZGFiYzAyYTdiM2E4ZDEwYzA5ZmQwYjE0ODQ4
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBPZmZsaW5lQXVkaW9Db250ZXh0IG9iamVjdHMgYXJlIGxl
YWtpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NDI3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBmbGFnIHRoYXQgY2FuIGJlIHBhc3NlZCB3aGVuIGNvbnN0cnVjdGluZyBhIFdlYWtQdHIgdG8g
ZGlzYWJsZSB0aHJlYWRpbmcgYXNzZXJ0aW9ucy4KKyAgICAgICAgVGhpcyBpcyB1c2VmdWwgZm9y
IGNhc2VzIHdoZXJlIHdlIGtub3cgaXQgaXMgc2FmZSBkdWUgdG8gbG9ja2luZyBidXQgd2UnZCBs
aWtlIHRvIHVzZSBhCisgICAgICAgIFdlYWtQdHIgaW5zdGVhZCBvZiBhIHJhdyBwb2ludGVyIGJl
Y2F1c2UgaXQgaXMgc2FmZXIuCisKKyAgICAgICAgKiB3dGYvV2Vha1B0ci5oOgorICAgICAgICAo
V1RGOjpXZWFrUHRyOjpnZXQgY29uc3QpOgorICAgICAgICAoV1RGOjpXZWFrUHRyOjpvcGVyYXRv
ci0+IGNvbnN0KToKKyAgICAgICAgKFdURjo6V2Vha1B0cjo6b3BlcmF0b3IqIGNvbnN0KToKKyAg
ICAgICAgKFdURjo6V2Vha1B0cjo6V2Vha1B0cik6CisgICAgICAgIChXVEY6OldlYWtQdHJGYWN0
b3J5OjpjcmVhdGVXZWFrUHRyIGNvbnN0KToKKyAgICAgICAgKFdURjo6PSk6CisgICAgICAgIChX
VEY6Om1ha2VXZWFrUHRyKToKKwogMjAyMS0wNC0wNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJp
c3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBvc190cmFuc2FjdGlvbl9jcmVhdGUg
aW5zdGVhZCBvZiBkZXByZWNhdGVkIHhwY190cmFuc2FjdGlvbl9iZWdpbi9lbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA4MDUyMTBhM2MwZDY2YTM2Zjg4ZDIwZTMyMDBjYmMyMmU3MDgyODljLi4wZjc0MzcxNTQ0
OTAzMWNhNGEzNGZkY2Y3NmQ0NmZiN2ZmYTc3MGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTc4
IEBACisyMDIxLTA0LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgT2ZmbGluZUF1ZGlvQ29udGV4dCBvYmplY3RzIGFyZSBsZWFraW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyNzkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPZmZsaW5lQXVkaW9Db250ZXh0IG9i
amVjdHMgd2VyZSBhbHdheXMgbGVha2luZyBkdWUgdG8gMiByZWZlcmVuY2UgY3ljbGVzOgorICAg
ICAgICAxLiBCYXNlQXVkaW9Db250ZXh0IC0+IG1fbGlzdGVuZXIgKEF1ZGlvTGlzdGVuZXIpIC0+
IG1fcG9zaXRpb25YIChBdWRpb1BhcmFtKSAtPiBtX2NvbnRleHQgKEJhc2VBdWRpb0NvbnRleHQp
CisgICAgICAgIDIuIEJhc2VBdWRpb0NvbnRleHQgLT4gbV9kZXN0aW5hdGlvbk5vZGUgKEF1ZGlv
RGVzdGluYXRpb25Ob2RlKSAtPiBtX2NvbnRleHQgKEJhc2VBdWRpb0NvbnRleHQpCisKKyAgICAg
ICAgRm9yIHJlZmVyZW5jZSBjeWNsZSAxLCBJIG1hZGUgQXVkaW9TdW1taW5nSnVuY3Rpb24gKGJh
c2UgY2xhc3Mgb2YgQXVkaW9QYXJhbSkgaG9sZCBhIHdlYWsgcG9pbnRlciB0byB0aGUKKyAgICAg
ICAgQXVkaW9Db250ZXh0IGluc3RlYWQgb2YgYSBSZWY8Pi4gSSBkb24ndCB0aGluayB0aGVyZSBp
cyBhIGdvb2QgcmVhc29uIGZvciBhbiBBdWRpb1N1bW1pbmdKdW5jdGlvbiAoQXVkaW9QYXJhbQor
ICAgICAgICBvciBBdWRpb05vZGVJbnB1dCkgdG8ga2VlcCBpdHMgQXVkaW9Db250ZXh0IGFsaXZl
LiBBdWRpb05vZGVzIGFscmVhZHkga2VlcCB0aGVpciBBdWRpb0NvbnRleHQgYWxpdmUuCisgICAg
ICAgIEF1ZGlvTm9kZUlucHV0cyBhbmQgQXVkaW9QYXJhbXMgYXJlIGFzc29jaWF0ZWQgdG8gQXVk
aW9Ob2Rlcy4KKworICAgICAgICBGb3IgcmVmZXJlbmNlIGN5Y2xlIDIsIEkgbWFkZSBBdWRpb0Rl
c3RpbmF0aW9uTm9kZSBub3QgaG9sZCBhIHN0cm9uZyBwb2ludGVyIHRvIGl0cyBjb250ZXh0IGJ1
dCBpbnN0ZWFkIGEKKyAgICAgICAgd2VhayBwb2ludGVyLiBTaW5jZSBrZWVwaW5nIGFuIEF1ZGlv
RGVzdGluYXRpb25Ob2RlIGFsaXZlIHNob3VsZCBrZWVwIGl0cyBBdWRpb0NvbnRleHQgYWxpdmUs
IEkgbWFkZSBpdCBzbworICAgICAgICB0aGF0IHJlZidpbmcgdGhlIEF1ZGlvRGVzdGluYXRpb25O
b2RlIHJlZnMgaXRzIEJhc2VBdWRpb0NvbnRleHQuIEFsc28sIEJhc2VBdWRpb0NvbnRleHQ6Om1f
ZGVzdGluYXRpb25Ob2RlCisgICAgICAgIGlzIG5vdyBhIFVuaXF1ZVJlZjw+IGluc3RlYWQgb2Yg
YSBSZWZQdHI8PiB0byBhdm9pZCBhIGN5Y2xlLgorCisgICAgICAgIFRlc3RzOiB3ZWJhdWRpby9P
ZmZsaW5lQXVkaW9Db250ZXh0L29mZmxpbmVhdWRpb2NvbnRleHQtbGVhay1hZnRlci1yZW5kZXJp
bmcuaHRtbAorICAgICAgICAgICAgICAgd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC9vZmZs
aW5lYXVkaW9jb250ZXh0LWxlYWsuaHRtbAorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0OjpiYXNlTGF0
ZW5jeSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmdldE91dHB1dFRpbWVzdGFt
cCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmNsb3NlKToKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvQ29udGV4dDo6ZGVzdGluYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9Db250ZXh0OjpkZXN0aW5hdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Nv
bnRleHQ6OnN1c3BlbmRSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0
OjpyZXN1bWVSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0OjpzdGFy
dFJlbmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmxhenlJbml0aWFs
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6bWVkaWFTdGF0ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6Om1heVJlc3VtZVBsYXliYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6c3VzcGVuZFBsYXliYWNrKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6cGFnZU11dGVkU3RhdGVEaWRDaGFuZ2UpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0Lmg6CisgICAgICAgIC0gRHJvcCBzb21l
IG51bGwgY2hlY2tzIG5vdyB0aGF0IG1fZGVzdGluYXRpb25Ob2RlIGNhbiBubyBsb25nZXIgYmUg
bnVsbC4KKyAgICAgICAgLSBDYXB0dXJlIGFuIEFjdGl2ZURPTU9iamVjdDo6UGVuZGluZ0FjdGl2
aXR5IHdoZW4gZG9pbmcgYXN5bmMgd29yayB0aGF0IGVuZHMgdXAgcmVzb2x2aW5nIGEgUHJvbWlz
ZSwgc28gdGhhdAorICAgICAgICAgIHdlIGtlZXAgYm90aCB0aGUgb2JqZWN0IGFuZCBpdHMgd3Jh
cHBlciBhbGl2ZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBhc3luYyB3b3JrLgorCisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6cmVmKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvRGVzdGluYXRpb25Ob2RlOjpkZXJlZik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0Rlc3RpbmF0aW9uTm9kZS5oOgorICAgICAgICBIYXZlIEF1ZGlvRGVzdGluYXRpb25Ob2Rl
IG92ZXJyaWRlIEF1ZGlvTm9kZSdzIHJlZigpIC8gZGVyZWYoKSB0byBmb3J3YXJkIHRoZSByZWZj
b3VudGluZworICAgICAgICB0byBpdHMgQmFzZUF1ZGlvQ29udGV4dCwgaW5zdGVhZCBvZiB1c2lu
ZyB0aGUgQXVkaW9Ob2RlJ3MgaW50ZXJuYWwgcmVmQ291bnQuCisKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9MaXN0
ZW5lcjo6dXBkYXRlVmFsdWVzSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9MaXN0
ZW5lcjo6c2V0UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9MaXN0ZW5lcjo6c2V0
T3JpZW50YXRpb24pOgorICAgICAgICBBZGQgc29tZSBudWxsLWNoZWNrcyBmb3IgQXVkaW9QYXJh
bTo6Y29udGV4dCgpIG5vdyB0aGF0IEF1ZGlvUGFyYW0gaG9sZHMgYSBXZWFrUHRyIHRvIGl0cwor
ICAgICAgICBjb250ZXh0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjp0b1dlYWtPclN0cm9uZ0NvbnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpBdWRpb05vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9Ob2RlOjpjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZTo6
c2FtcGxlUmF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6Om1hcmtOb2Rl
Rm9yRGVsZXRpb25JZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OmNv
bnRleHRGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OmNvbnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpjb250ZXh0IGNvbnN0KToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oOgorICAgICAgICAtIEhvbGQgdGhlIEJhc2VB
dWRpb0NvbnRleHQgYXMgYSBXZWFrUHRyIGluc3RlYWQgb2YgYSBSZWY8PiBpZiB0aGUgQXVkaW9O
b2RlIGlzIGFuCisgICAgICAgICAgQXVkaW9EZXN0aW5hdGlvbk5vZGUuIFRoaXMgYXZvaWRzIGEg
cmVmZXJlbmNlIGN5Y2xlIHNpbmNlIHRoZSBCYXNlQXVkaW9Db250ZXh0IG93bnMgdGhlCisgICAg
ICAgICAgQXVkaW9EZXN0aW5hdGlvbk5vZGUuIEV2ZW4gdGhvdWdoIHdlIGFyZSB1c2luZyBhIFdl
YWtQdHIsIGl0IGlzIHNhZmUgdG8gYXNzdW1lIHRoYXQKKyAgICAgICAgICB0aGUgY29udGV4dCBp
cyBub3QgbnVsbCBiZWNhdXNlIHJlZidpbmcgYW4gQXVkaW9EZXN0aW5hdGlvbk5vZGUgcmVmcyBp
dHMgQmFzZUF1ZGlvQ29udGV4dC4KKyAgICAgICAgLSBNYWtlIHN1cmUgbWFya05vZGVGb3JEZWxl
dGlvbklmTmVjZXNzYXJ5KCkgaGFzIG5vIGVmZmVjdCBmb3IgQXVkaW9EZXN0aW5hdGlvbk5vZGUg
c2luY2UKKyAgICAgICAgICBCYXNlQXVkaW9Db250ZXh0IG5vdyBvd3MgdGhlIEF1ZGlvRGVzdGlu
YXRpb25Ob2RlIHdoZW4gd2UgdGFrZSBjYXJlIG9mIGRlc3Ryb3lpbmcgaXRzCisgICAgICAgICAg
ZGVzdGluYXRpb24gbm9kZSB3aGVuIGRlc3Ryb3llZC4KKworICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Ob2RlSW5wdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlSW5w
dXQ6OmNvbm5lY3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlSW5wdXQ6OmRpc2Nvbm5l
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlSW5wdXQ6Om91dHB1dEVuYWJsZWRTdGF0
ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlSW5wdXQ6OnVwZGF0ZUludGVy
bmFsQnVzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZUlucHV0OjpidXMpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9Ob2RlSW5wdXQ6OmludGVybmFsU3VtbWluZ0J1cyk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb05vZGVJbnB1dDo6c3VtQWxsQ29ubmVjdGlvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9Ob2RlSW5wdXQ6OnB1bGwpOgorICAgICAgICBBZGQgYXNzZXJ0aW9ucyB0
aGF0IHRoZSBjb250ZXh0IGlzIG5vdCBudWxsLiBUaGVyZSB3ZXJlIGFscmVhZHkgYXNzZXJ0aW9u
cyB0aGF0IHdlIGFyZSB0aGUgZ3JhcGgKKyAgICAgICAgb3duZXIsIHdoaWNoIG1lYW5zIHdlIGFy
ZSBob2xkaW5nIHRoZSBCYXNlQXVkaW9Db250ZXh0J3MgbG9jaywgd2hpY2ggbWVhbnMgdGhhdCB0
aGUgYXVkaW8gY29udGV4dAorICAgICAgICBpcyBhbGl2ZS4KKworICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9QYXJhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjp2
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjpzZXRWYWx1ZUZvckJpbmRpbmdz
KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW06OnNtb290aCk6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1BhcmFtOjpoYXNTYW1wbGVBY2N1cmF0ZVZhbHVlcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1BhcmFtOjpjYWxjdWxhdGVTYW1wbGVBY2N1cmF0ZVZhbHVlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjpjYWxjdWxhdGVGaW5hbFZhbHVlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjpjYWxjdWxhdGVUaW1lbGluZVZhbHVlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjpjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvUGFyYW06OmRpc2Nvbm5lY3QpOgorICAgICAgICBBZGQgbnVsbC1jaGVja3MgZm9yIHRoZSBB
dWRpb0NvbnRleHQgbm93IHRoYXQgdGhlIEF1ZGlvUGFyYW0gaXMgb25seSBob2xkaW5nIGEgV2Vh
a1B0ciB0byBpdHMKKyAgICAgICAgQmFzZUF1ZGlvQ29udGV4dCAodG8gYXZvaWQgYSByZWZlcmVu
Y2UgY3ljbGUpLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5j
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1N1bW1pbmdKdW5jdGlvbjo6QXVkaW9T
dW1taW5nSnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TdW1taW5nSnVuY3Rpb246
On5BdWRpb1N1bW1pbmdKdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1N1bW1pbmdK
dW5jdGlvbjo6bWFya1JlbmRlcmluZ1N0YXRlQXNEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1N1bW1pbmdKdW5jdGlvbjo6YWRkT3V0cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U3VtbWluZ0p1bmN0aW9uOjpyZW1vdmVPdXRwdXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
dW1taW5nSnVuY3Rpb246OnVwZGF0ZVJlbmRlcmluZ1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU3VtbWluZ0p1bmN0aW9uOjpvdXRwdXRFbmFibGVkU3RhdGVDaGFuZ2VkKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1N1bW1pbmdKdW5jdGlvbjo6Y29udGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1N1bW1pbmdKdW5jdGlvbjo6Y29udGV4dCBjb25zdCk6CisgICAgICAgIC0gSG9sZCBh
IFdlYWtQdHIgdG8gdGhlIEJhc2VBdWRpb0NvbnRleHQgdG8gYXZvaWQgYSByZWZlcmVuY2UgY3lj
bGUuCisgICAgICAgIC0gRGVhbCB3aXRoIHRoZSBmYWN0IHRoYXQgdGhlIGF1ZGlvIGNvbnRleHQg
bWF5IGJlIG51bGwgbm93IHRoYXQgd2UncmUgaG9sZGluZyBhIFdlYWtQdHIKKyAgICAgICAgICB0
byBpdCAoZXhjZXB0IHdoZW4gaG9sZGluZyB0aGUgZ3JhcGggbG9jaykKKworICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpC
YXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkJh
c2VBdWRpb0NvbnRleHQ6On5CYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkJh
c2VBdWRpb0NvbnRleHQ6Om51bWJlck9mSW5zdGFuY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkJh
c2VBdWRpb0NvbnRleHQ6OmxhenlJbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VB
dWRpb0NvbnRleHQ6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6
OnVuaW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9Db250ZXh0OjpzdG9w
KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OnNhbXBsZVJhdGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6QmFzZUF1ZGlvQ29udGV4dDo6ZGVjb2RlQXVkaW9EYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6Om1hcmtGb3JEZWxldGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9Db250ZXh0OjpkZWxldGVNYXJrZWROb2Rlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9Db250ZXh0OjpzZXRQZW5kaW5nQWN0aXZpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzZUF1ZGlvQ29udGV4dDo6d29ya2xldElzUmVhZHkpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oOgorICAgICAgICAoV2Vi
Q29yZTo6QmFzZUF1ZGlvQ29udGV4dDo6ZGVzdGluYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QmFzZUF1ZGlvQ29udGV4dDo6ZGVzdGluYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
QmFzZUF1ZGlvQ29udGV4dDo6Y3VycmVudFNhbXBsZUZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OmN1cnJlbnRUaW1lIGNvbnN0KToKKyAgICAgICAgLSBT
d2l0Y2ggbV9kZXN0aW5hdGlvbk5vZGUgZnJvbSBSZWZQdHI8PiB0byBVbmlxdWVSZWY8PiBzaW5j
ZSB0aGUgQXVkaW9Db250ZXh0IGlzIG5vdworICAgICAgICAgIHRoZSBvd25lciBvZiB0aGUgZGVz
dGluYXRpb25Ob2RlIGFuZCBzaW5jZSByZWZpbmcgdGhlIGRlc3RpbmF0aW9uIG5vZGUgYWN0dWFs
bHkgcmVmcworICAgICAgICAgIGl0cyBCYXNlQXVkaW9Db250ZXh0LgorICAgICAgICAtIERyb3Ag
c29tZSBudWxsIGNoZWNrcyBub3cgdGhhdCBtX2Rlc3RpbmF0aW9uTm9kZSBjYW4gbm8gbG9uZ2Vy
IGJlIG51bGwuCisgICAgICAgIC0gUmVuYW1lIG1ha2VQZW5kaW5nQWN0aXZpdHkoKSB0byBzZXRQ
ZW5kaW5nQWN0aXZpdHkoKSB0byBhdm9pZCBhIG5hbWluZyBjb25mbGljdCB3aXRoCisgICAgICAg
ICAgQWN0aXZlRE9NT2JqZWN0OjptYWtlUGVuZGluZ0FjdGl2aXR5KCkuCisKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oOgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmg6CisgICAgICAg
IC0gRHJvcCBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0aW9ucyBhbmQgbWFrZSB0aGUgY29uc3RydWN0
b3IgcHVibGljIG5vdyB0aGF0IHRoZSBCYXNlQXVkaW9Db250ZXh0IG93bnMKKyAgICAgICAgICBp
dHMgZGVzdGluYXRpb24gbm9kZSB2aWEgYSBVbmlxdWVSZWY8Pi4KKyAgICAgICAgLSBNYWtlIHNv
bWUgbWVtYmVyIGZ1bmN0aW9ucyBwdWJsaWMgYXMgdGhleSBhcmUgdmlydHVhbCBhbmQgdGhleSBu
b3cgY2FsbGVkIG9uIHRoZSBzdWJjbGFzcyBpbnN0ZWFkIG9mIHRoZQorICAgICAgICAgIGJhc2Ug
Y2xhc3MgKGFuZCB0aGVzZSBmdW5jdGlvbnMgYXJlIHB1YmxpYyBpbiB0aGUgYmFzZSBjbGFzcyku
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6c3RhcnRPZmZsaW5lUmVuZGVy
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0NvbnRleHQ6OnJlc3VtZU9mZmxp
bmVSZW5kZXJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29u
dGV4dC5oOgorICAgICAgICAtIERyb3Agc29tZSBudWxsIGNoZWNrcyBub3cgdGhhdCBtX2Rlc3Rp
bmF0aW9uTm9kZSBjYW4gbm8gbG9uZ2VyIGJlIG51bGwuCisgICAgICAgIC0gQ2FwdHVyZSBhbiBB
Y3RpdmVET01PYmplY3Q6OlBlbmRpbmdBY3Rpdml0eSB3aGVuIGRvaW5nIGFzeW5jIHdvcmsgdGhh
dCBlbmRzIHVwIHJlc29sdmluZyBhIFByb21pc2UsIHNvIHRoYXQKKyAgICAgICAgICB3ZSBrZWVw
IGJvdGggdGhlIG9iamVjdCBhbmQgaXRzIHdyYXBwZXIgYWxpdmUgZm9yIHRoZSBkdXJhdGlvbiBv
ZiB0aGUgYXN5bmMgd29yay4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVk
aW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEF1ZGlvQ29udGV4dDo6Y2xv
c2UpOgorICAgICAgICBEcm9wIG51bGwgY2hlY2tzIGZvciB0aGUgZGVzdGluYXRpb24gbm9kZSBu
b3cgdGhhdCBpdCBjYW4gbmV2ZXIgYmUgbnVsbC4KKworICAgICAgICAqIGRvbS9TaGFkb3dSb290
LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmNwcDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHA6CisgICAgICAgIFVwZGF0ZSBjbGFzc2VzIHVz
ZWQgb2Ygc2l6ZSByZXN0cmljdGlvbnMgc2luY2UgdGhlIHNpemUgb2YgYSBXZWFrUHRyIGlzIG5v
dCBsb25nZXIgdGhlIHNhbWUgYXMgdGhlIHNpemUgb2YgYQorICAgICAgICBwb2ludGVyIHdoZW4g
ZGVidWcgYXNzZXJ0aW9ucyBhcmUgZW5hYmxlZC4gQXMgbG9uZyBhcyB0aGV5IGFyZSB0aGUgc2Ft
ZSBzaXplIGluIHJlbGVhc2UgYnVpbGRzLCB0aGVyZSBpcyBubworICAgICAgICBtZW1vcnkgdXNl
IGNvbmNlcm4uCisKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6Om51bWJlck9mQmFzZUF1ZGlvQ29udGV4dHMgY29uc3QpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
aWRsOgorICAgICAgICBBZGQgdGVzdGluZyBmdW5jdGlvbiB0byBjaGVjayBob3cgbWFueSBCYXNl
QXVkaW9Db250ZXh0cyBhcmUgYWxpdmUsIHNvIHRoYXQgd2UgY2FuIHdyaXRlIGxheW91dCB0ZXN0
cyBhbmQgY2hlY2sKKyAgICAgICAgZm9yIGxlYWtzLgorCiAyMDIxLTA0LTA3ICBaYWxhbiBCdWp0
YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBSZW1vdmUgSW5saW5l
TGluZXMgYW5kIElubGluZUxpbmVCb3hlcyBpbmxpbmUgY2FwYWNpdHkgb2YgMTAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaApp
bmRleCAzMzVmNzQ0NmQyYmZlN2EzYWYzNjdiNzM1ZDkwZDZkNDM1ZWVjZjhiLi42ZjYyZjIxMmU5
MzNjNzEzMjIxOTBmNzhjYmExOWVlNDFmOTlkMmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9XZWFrUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCkBAIC0zOCw2ICszOCw4
IEBAIHN0cnVjdCBFbXB0eUNvdW50ZXIgewogICAgIHN0YXRpYyB2b2lkIGRlY3JlbWVudCgpIHsg
fQogfTsKIAorZW51bSBjbGFzcyBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA6IGJv
b2wgeyBObywgWWVzIH07CisKIHRlbXBsYXRlPHR5cGVuYW1lIENvdW50ZXIgPSBFbXB0eUNvdW50
ZXI+IGNsYXNzIFdlYWtQdHJJbXBsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYWtQ
dHJJbXBsPENvdW50ZXI+PiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2Vha1B0ckltcGwp
OwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtOTEsNyArOTMsNyBAQCBwdWJsaWM6
CiAgICAgVCogZ2V0KCkgY29uc3QKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBPdXIgR0MgdGhy
ZWFkcyBjdXJyZW50bHkgbmVlZCB0byBnZXQgb3BhcXVlIHBvaW50ZXJzIGZyb20gV2Vha1B0cnMg
YW5kIGhhdmUgdG8gYmUgc3BlY2lhbC1jYXNlZC4KLSAgICAgICAgQVNTRVJUKCFtX2ltcGwgfHwg
VGhyZWFkOjptYXlCZUdDVGhyZWFkKCkgfHwgbV9pbXBsLT53YXNDb25zdHJ1Y3RlZE9uTWFpblRo
cmVhZCgpID09IGlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgQVNTRVJUKCFtX2ltcGwgfHwgIW1f
YXJlVGhyZWFkaW5nQXNzZXJ0aW9uc0VuYWJsZWQgfHwgVGhyZWFkOjptYXlCZUdDVGhyZWFkKCkg
fHwgbV9pbXBsLT53YXNDb25zdHJ1Y3RlZE9uTWFpblRocmVhZCgpID09IGlzTWFpblRocmVhZCgp
KTsKICAgICAgICAgcmV0dXJuIG1faW1wbCA/IHN0YXRpY19jYXN0PFQqPihtX2ltcGwtPnRlbXBs
YXRlIGdldDxUPigpKSA6IG51bGxwdHI7CiAgICAgfQogCkBAIC0xMDQsMTMgKzEwNiwxMyBAQCBw
dWJsaWM6CiAKICAgICBUKiBvcGVyYXRvci0+KCkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VS
VCghbV9pbXBsIHx8IG1faW1wbC0+d2FzQ29uc3RydWN0ZWRPbk1haW5UaHJlYWQoKSA9PSBpc01h
aW5UaHJlYWQoKSk7CisgICAgICAgIEFTU0VSVCghbV9pbXBsIHx8ICFtX2FyZVRocmVhZGluZ0Fz
c2VydGlvbnNFbmFibGVkIHx8IG1faW1wbC0+d2FzQ29uc3RydWN0ZWRPbk1haW5UaHJlYWQoKSA9
PSBpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIHJldHVybiBnZXQoKTsKICAgICB9CiAKICAgICBU
JiBvcGVyYXRvciooKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2ltcGwgfHwgbV9p
bXBsLT53YXNDb25zdHJ1Y3RlZE9uTWFpblRocmVhZCgpID09IGlzTWFpblRocmVhZCgpKTsKKyAg
ICAgICAgQVNTRVJUKCFtX2ltcGwgfHwgIW1fYXJlVGhyZWFkaW5nQXNzZXJ0aW9uc0VuYWJsZWQg
fHwgbV9pbXBsLT53YXNDb25zdHJ1Y3RlZE9uTWFpblRocmVhZCgpID09IGlzTWFpblRocmVhZCgp
KTsKICAgICAgICAgcmV0dXJuICpnZXQoKTsKICAgICB9CiAKQEAgLTEyMSwxMiArMTIzLDE5IEBA
IHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1lPiBmcmllbmQgY2xhc3Mg
V2Vha1B0cjsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWU+IGZyaWVuZCBjbGFzcyBX
ZWFrUHRyRmFjdG9yeTsKIAotICAgIGV4cGxpY2l0IFdlYWtQdHIoUmVmPFdlYWtQdHJJbXBsPENv
dW50ZXI+PiYmIHJlZikKKyAgICBleHBsaWNpdCBXZWFrUHRyKFJlZjxXZWFrUHRySW1wbDxDb3Vu
dGVyPj4mJiByZWYsIEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQ
dHJUaHJlYWRpbmdBc3NlcnRpb25zKQogICAgICAgICA6IG1faW1wbChXVEZNb3ZlKHJlZikpCisj
aWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAgLCBtX2FyZVRocmVhZGluZ0Fzc2VydGlvbnNFbmFi
bGVkKGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zID09IEVuYWJsZVdlYWtQdHJUaHJl
YWRpbmdBc3NlcnRpb25zOjpZZXMpCisjZW5kaWYKICAgICB7CisgICAgICAgIFVOVVNFRF9QQVJB
TShlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7CiAgICAgfQogCiAgICAgUmVmUHRy
PFdlYWtQdHJJbXBsPENvdW50ZXI+PiBtX2ltcGw7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBi
b29sIG1fYXJlVGhyZWFkaW5nQXNzZXJ0aW9uc0VuYWJsZWQgeyB0cnVlIH07CisjZW5kaWYKIH07
CiAKIC8vIE5vdGU6IHlvdSBwcm9iYWJseSB3YW50IHRvIGluaGVyaXQgZnJvbSBDYW5NYWtlV2Vh
a1B0ciByYXRoZXIgdGhhbiB1c2UgdGhpcyBkaXJlY3RseS4KQEAgLTE1OSwxMiArMTY4LDEyIEBA
IHB1YmxpYzoKICAgICAgICAgbV9pbXBsID0gV2Vha1B0ckltcGw8Q291bnRlcj46OmNyZWF0ZShj
b25zdF9jYXN0PFQqPigmb2JqZWN0KSk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VT4gV2Vha1B0cjxVLCBDb3VudGVyPiBjcmVhdGVXZWFrUHRyKFUmIG9iamVjdCkgY29uc3QKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBXZWFrUHRyPFUsIENvdW50ZXI+IGNyZWF0ZVdlYWtQdHIo
VSYgb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBlbmFibGVXZWFrUHRy
VGhyZWFkaW5nQXNzZXJ0aW9ucyA9IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZ
ZXMpIGNvbnN0CiAgICAgewogICAgICAgICBpbml0aWFsaXplSWZOZWVkZWQob2JqZWN0KTsKIAog
ICAgICAgICBBU1NFUlQoJm9iamVjdCA9PSBtX2ltcGwtPnRlbXBsYXRlIGdldDxUPigpKTsKLSAg
ICAgICAgcmV0dXJuIFdlYWtQdHI8VSwgQ291bnRlcj4obWFrZVJlZigqbV9pbXBsKSk7CisgICAg
ICAgIHJldHVybiBXZWFrUHRyPFUsIENvdW50ZXI+KG1ha2VSZWYoKm1faW1wbCksIGVuYWJsZVdl
YWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zKTsKICAgICB9CiAKICAgICB2b2lkIHJldm9rZUFsbCgp
CkBAIC0yMzUsMjUgKzI0NCwzMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBDb3Vu
dGVyPiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgV2Vha1B0cjxULCBDbwogdGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgQ291bnRlcj4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5l
IFdlYWtQdHI8VCwgQ291bnRlcj4mIFdlYWtQdHI8VCwgQ291bnRlcj46Om9wZXJhdG9yPShjb25z
dCBXZWFrUHRyPFUsIENvdW50ZXI+JiBvKQogewogICAgIG1faW1wbCA9IHdlYWtfcHRyX2ltcGxf
Y2FzdDxULCBVPihvLm1faW1wbC5nZXQoKSk7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBtX2Fy
ZVRocmVhZGluZ0Fzc2VydGlvbnNFbmFibGVkID0gby5tX2FyZVRocmVhZGluZ0Fzc2VydGlvbnNF
bmFibGVkOworI2VuZGlmCiAgICAgcmV0dXJuICp0aGlzOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBDb3VudGVyPiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgV2Vha1B0
cjxULCBDb3VudGVyPiYgV2Vha1B0cjxULCBDb3VudGVyPjo6b3BlcmF0b3I9KFdlYWtQdHI8VSwg
Q291bnRlcj4mJiBvKQogewogICAgIG1faW1wbCA9IGFkb3B0UmVmKHdlYWtfcHRyX2ltcGxfY2Fz
dDxULCBVPihvLm1faW1wbC5sZWFrUmVmKCkpKTsKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIG1f
YXJlVGhyZWFkaW5nQXNzZXJ0aW9uc0VuYWJsZWQgPSBvLm1fYXJlVGhyZWFkaW5nQXNzZXJ0aW9u
c0VuYWJsZWQ7CisjZW5kaWYKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKLXRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGlubGluZSBhdXRvIG1ha2VXZWFrUHRyKFQmIG9iamVjdCkKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+IGlubGluZSBhdXRvIG1ha2VXZWFrUHRyKFQmIG9iamVjdCwgRW5hYmxlV2Vha1B0clRo
cmVhZGluZ0Fzc2VydGlvbnMgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMgPSBFbmFi
bGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQogewotICAgIHJldHVybiBvYmplY3Qu
d2Vha1B0ckZhY3RvcnkoKS50ZW1wbGF0ZSBjcmVhdGVXZWFrUHRyPFQ+KG9iamVjdCk7CisgICAg
cmV0dXJuIG9iamVjdC53ZWFrUHRyRmFjdG9yeSgpLnRlbXBsYXRlIGNyZWF0ZVdlYWtQdHI8VD4o
b2JqZWN0LCBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7CiB9CiAKLXRlbXBsYXRl
PHR5cGVuYW1lIFQ+IGlubGluZSBhdXRvIG1ha2VXZWFrUHRyKFQqIHB0cikgLT4gZGVjbHR5cGUo
bWFrZVdlYWtQdHIoKnB0cikpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgYXV0byBtYWtl
V2Vha1B0cihUKiBwdHIsIEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIGVuYWJsZVdl
YWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlv
bnM6OlllcykgLT4gZGVjbHR5cGUobWFrZVdlYWtQdHIoKnB0cikpCiB7CiAgICAgaWYgKCFwdHIp
CiAgICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIG1ha2VXZWFrUHRyKCpwdHIpOworICAg
IHJldHVybiBtYWtlV2Vha1B0cigqcHRyLCBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9u
cyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIENvdW50
ZXI+IGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgV2Vha1B0cjxULCBDb3VudGVyPiYgYSwg
Y29uc3QgV2Vha1B0cjxVLCBDb3VudGVyPiYgYikKQEAgLTI4OSw2ICszMDQsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBDb3VudGVyPiBpbmxpbmUgYm9vbCBv
cGVyYXRvciE9KFQqIGEsCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNpbmcgV1RGOjpDYW5NYWtl
V2Vha1B0cjsKK3VzaW5nIFdURjo6RW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM7CiB1
c2luZyBXVEY6OldlYWtQdHI7CiB1c2luZyBXVEY6OldlYWtQdHJGYWN0b3J5OwogdXNpbmcgV1RG
OjpXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IGEwODMwOWYwMThmMWEzZTczOWIz
N2I1YWQ1YTIwZDJjZGE1NjlkNDUuLjdhZTM4YTMwYThiNDlmZDhiNzU2ZTViYTI5YjBkODAzNzdj
NjZlMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5jcHAKQEAgLTE1MiwxNSArMTUyLDExIEBAIGRvdWJsZSBBdWRpb0NvbnRleHQ6OmJhc2VM
YXRlbmN5KCkKIHsKICAgICBsYXp5SW5pdGlhbGl6ZSgpOwogCi0gICAgYXV0byogZGVzdGluYXRp
b24gPSB0aGlzLT5kZXN0aW5hdGlvbigpOwotICAgIHJldHVybiBkZXN0aW5hdGlvbiA/IHN0YXRp
Y19jYXN0PGRvdWJsZT4oZGVzdGluYXRpb24tPmZyYW1lc1BlckJ1ZmZlcigpKSAvIHNhbXBsZVJh
dGUoKSA6IDAuOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KGRlc3RpbmF0aW9uKCku
ZnJhbWVzUGVyQnVmZmVyKCkpIC8gc2FtcGxlUmF0ZSgpOwogfQogCiBBdWRpb1RpbWVzdGFtcCBB
dWRpb0NvbnRleHQ6OmdldE91dHB1dFRpbWVzdGFtcChET01XaW5kb3cmIHdpbmRvdykKIHsKLSAg
ICBpZiAoIWRlc3RpbmF0aW9uKCkpCi0gICAgICAgIHJldHVybiB7IDAsIDAgfTsKLQogICAgIGF1
dG8mIHBlcmZvcm1hbmNlID0gd2luZG93LnBlcmZvcm1hbmNlKCk7CiAKICAgICBhdXRvIHBvc2l0
aW9uID0gb3V0cHV0UG9zaXRpb24oKTsKQEAgLTE4Miw3ICsxNzgsNyBAQCB2b2lkIEF1ZGlvQ29u
dGV4dDo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGlmIChzdGF0ZSgpID09IFN0YXRlOjpDbG9zZWQgfHwgIWRl
c3RpbmF0aW9uTm9kZSgpKSB7CisgICAgaWYgKHN0YXRlKCkgPT0gU3RhdGU6OkNsb3NlZCkgewog
ICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE5
MSwxNSArMTg3LDIwIEBAIHZvaWQgQXVkaW9Db250ZXh0OjpjbG9zZShET01Qcm9taXNlRGVmZXJy
ZWQ8dm9pZD4mJiBwcm9taXNlKQogCiAgICAgbGF6eUluaXRpYWxpemUoKTsKIAotICAgIGRlc3Rp
bmF0aW9uTm9kZSgpLT5jbG9zZShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
XSB7CisgICAgZGVzdGluYXRpb24oKS5jbG9zZShbdGhpcywgYWN0aXZpdHkgPSBtYWtlUGVuZGlu
Z0FjdGl2aXR5KCp0aGlzKV0gewogICAgICAgICBzZXRTdGF0ZShTdGF0ZTo6Q2xvc2VkKTsKICAg
ICAgICAgdW5pbml0aWFsaXplKCk7CiAgICAgfSk7CiB9CiAKLURlZmF1bHRBdWRpb0Rlc3RpbmF0
aW9uTm9kZSogQXVkaW9Db250ZXh0OjpkZXN0aW5hdGlvbigpCitEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGUmIEF1ZGlvQ29udGV4dDo6ZGVzdGluYXRpb24oKQoreworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUmPihCYXNlQXVkaW9Db250ZXh0Ojpk
ZXN0aW5hdGlvbigpKTsKK30KKworY29uc3QgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlJiBB
dWRpb0NvbnRleHQ6OmRlc3RpbmF0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKj4oQmFzZUF1ZGlvQ29udGV4dDo6ZGVzdGlu
YXRpb24oKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IERlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZSY+KEJhc2VBdWRpb0NvbnRleHQ6OmRlc3RpbmF0aW9uKCkpOwogfQogCiB2b2lk
IEF1ZGlvQ29udGV4dDo6c3VzcGVuZFJlbmRlcmluZyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4m
JiBwcm9taXNlKQpAQCAtMjA5LDcgKzIxMCw3IEBAIHZvaWQgQXVkaW9Db250ZXh0OjpzdXNwZW5k
UmVuZGVyaW5nKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBpZiAoaXNTdG9wcGVkKCkgfHwgc3RhdGUoKSA9PSBTdGF0ZTo6
Q2xvc2VkIHx8ICFkZXN0aW5hdGlvbk5vZGUoKSkgeworICAgIGlmIChpc1N0b3BwZWQoKSB8fCBz
dGF0ZSgpID09IFN0YXRlOjpDbG9zZWQpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDb250ZXh0IGlzIGNsb3NlZCJfcyB9KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KQEAgLTIyMyw3ICsyMjQsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6
c3VzcGVuZFJlbmRlcmluZyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogCiAg
ICAgbGF6eUluaXRpYWxpemUoKTsKIAotICAgIGRlc3RpbmF0aW9uTm9kZSgpLT5zdXNwZW5kKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICBk
ZXN0aW5hdGlvbigpLnN1c3BlbmQoW3RoaXMsIGFjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0
eSgqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShPcHRpb25hbDxFeGNlcHRpb24+
JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGV4Y2VwdGlvbikgewogICAgICAg
ICAgICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZSgqZXhjZXB0aW9uKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CkBAIC0yNDAsNyArMjQxLDcgQEAgdm9pZCBBdWRpb0NvbnRleHQ6OnJlc3VtZVJlbmRl
cmluZyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgaWYgKGlzU3RvcHBlZCgpIHx8IHN0YXRlKCkgPT0gU3RhdGU6OkNsb3Nl
ZCB8fCAhZGVzdGluYXRpb25Ob2RlKCkpIHsKKyAgICBpZiAoaXNTdG9wcGVkKCkgfHwgc3RhdGUo
KSA9PSBTdGF0ZTo6Q2xvc2VkKSB7CiAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCAiQ29udGV4dCBpcyBjbG9zZWQiX3MgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC0yNTQsNyArMjU1LDcgQEAgdm9pZCBBdWRpb0NvbnRleHQ6OnJlc3Vt
ZVJlbmRlcmluZyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogCiAgICAgbGF6
eUluaXRpYWxpemUoKTsKIAotICAgIGRlc3RpbmF0aW9uTm9kZSgpLT5yZXN1bWUoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSld
KE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgIGRlc3RpbmF0
aW9uKCkucmVzdW1lKFt0aGlzLCBhY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMp
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2Vw
dGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmIChleGNlcHRpb24pIHsKICAgICAgICAgICAgIHBy
b21pc2UucmVqZWN0KFdURk1vdmUoKmV4Y2VwdGlvbikpOwogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMjkzLDEwICsyOTQsMTAgQEAgdm9pZCBBdWRpb0NvbnRleHQ6OnN0YXJ0UmVuZGVyaW5nKCkK
ICAgICBpZiAoaXNTdG9wcGVkKCkgfHwgIXdpbGxCZWdpblBsYXliYWNrKCkgfHwgbV93YXNTdXNw
ZW5kZWRCeVNjcmlwdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbWFrZVBlbmRpbmdBY3Rpdml0
eSgpOworICAgIHNldFBlbmRpbmdBY3Rpdml0eSgpOwogCiAgICAgbGF6eUluaXRpYWxpemUoKTsK
LSAgICBkZXN0aW5hdGlvbigpLT5zdGFydFJlbmRlcmluZyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSB7CisgICAg
ZGVzdGluYXRpb24oKS5zdGFydFJlbmRlcmluZyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSB7CiAgICAgICAgIGlm
ICghZXhjZXB0aW9uKQogICAgICAgICAgICAgc2V0U3RhdGUoU3RhdGU6OlJ1bm5pbmcpOwogICAg
IH0pOwpAQCAtMzA5LDcgKzMxMCw3IEBAIHZvaWQgQXVkaW9Db250ZXh0OjpsYXp5SW5pdGlhbGl6
ZSgpCiAKICAgICBCYXNlQXVkaW9Db250ZXh0OjpsYXp5SW5pdGlhbGl6ZSgpOwogICAgIGlmIChp
c0luaXRpYWxpemVkKCkpIHsKLSAgICAgICAgaWYgKGRlc3RpbmF0aW9uTm9kZSgpICYmIHN0YXRl
KCkgIT0gU3RhdGU6OlJ1bm5pbmcpIHsKKyAgICAgICAgaWYgKHN0YXRlKCkgIT0gU3RhdGU6OlJ1
bm5pbmcpIHsKICAgICAgICAgICAgIC8vIFRoaXMgc3RhcnRzIHRoZSBhdWRpbyB0aHJlYWQuIFRo
ZSBkZXN0aW5hdGlvbiBub2RlJ3MgcHJvdmlkZUlucHV0KCkgbWV0aG9kIHdpbGwgbm93IGJlIGNh
bGxlZCByZXBlYXRlZGx5IHRvIHJlbmRlciBhdWRpby4KICAgICAgICAgICAgIC8vIEVhY2ggdGlt
ZSBwcm92aWRlSW5wdXQoKSBpcyBjYWxsZWQsIGEgcG9ydGlvbiBvZiB0aGUgYXVkaW8gc3RyZWFt
IGlzIHJlbmRlcmVkLiBMZXQncyBjYWxsIHRoaXMgdGltZSBwZXJpb2QgYSAicmVuZGVyIHF1YW50
dW0iLgogICAgICAgICAgICAgLy8gTk9URTogZm9yIG5vdyBkZWZhdWx0IEF1ZGlvQ29udGV4dCBk
b2VzIG5vdCBuZWVkIGFuIGV4cGxpY2l0IHN0YXJ0UmVuZGVyaW5nKCkgY2FsbCBmcm9tIEphdmFT
Y3JpcHQuCkBAIC0zNDYsNyArMzQ3LDcgQEAgYm9vbCBBdWRpb0NvbnRleHQ6OndpbGxQYXVzZVBs
YXliYWNrKCkKIAogTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6
bWVkaWFTdGF0ZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFpc1N0b3BwZWQoKSAmJiBkZXN0aW5hdGlv
bk5vZGUoKSAmJiBkZXN0aW5hdGlvbk5vZGUoKS0+aXNQbGF5aW5nQXVkaW8oKSkKKyAgICBpZiAo
IWlzU3RvcHBlZCgpICYmIGRlc3RpbmF0aW9uKCkuaXNQbGF5aW5nQXVkaW8oKSkKICAgICAgICAg
cmV0dXJuIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ0F1ZGlvOwogCiAgICAgcmV0dXJuIE1lZGlh
UHJvZHVjZXI6OklzTm90UGxheWluZzsKQEAgLTM1NCw3ICszNTUsNyBAQCBNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3MgQXVkaW9Db250ZXh0OjptZWRpYVN0YXRlKCkgY29uc3QKIAogdm9p
ZCBBdWRpb0NvbnRleHQ6Om1heVJlc3VtZVBsYXliYWNrKGJvb2wgc2hvdWxkUmVzdW1lKQogewot
ICAgIGlmICghZGVzdGluYXRpb25Ob2RlKCkgfHwgc3RhdGUoKSA9PSBTdGF0ZTo6Q2xvc2VkIHx8
IHN0YXRlKCkgPT0gU3RhdGU6OlJ1bm5pbmcpCisgICAgaWYgKHN0YXRlKCkgPT0gU3RhdGU6OkNs
b3NlZCB8fCBzdGF0ZSgpID09IFN0YXRlOjpSdW5uaW5nKQogICAgICAgICByZXR1cm47CiAKICAg
ICBpZiAoIXNob3VsZFJlc3VtZSkgewpAQCAtMzY3LDcgKzM2OCw3IEBAIHZvaWQgQXVkaW9Db250
ZXh0OjptYXlSZXN1bWVQbGF5YmFjayhib29sIHNob3VsZFJlc3VtZSkKIAogICAgIGxhenlJbml0
aWFsaXplKCk7CiAKLSAgICBkZXN0aW5hdGlvbk5vZGUoKS0+cmVzdW1lKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24p
IHsKKyAgICBkZXN0aW5hdGlvbigpLnJlc3VtZShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSB7CiAgICAgICAgIHNl
dFN0YXRlKGV4Y2VwdGlvbiA/IFN0YXRlOjpTdXNwZW5kZWQgOiBTdGF0ZTo6UnVubmluZyk7CiAg
ICAgfSk7CiB9CkBAIC00NDEsMTIgKzQ0MiwxMiBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6cmVzdW1l
KCkKIAogdm9pZCBBdWRpb0NvbnRleHQ6OnN1c3BlbmRQbGF5YmFjaygpCiB7Ci0gICAgaWYgKCFk
ZXN0aW5hdGlvbk5vZGUoKSB8fCBzdGF0ZSgpID09IFN0YXRlOjpDbG9zZWQpCisgICAgaWYgKHN0
YXRlKCkgPT0gU3RhdGU6OkNsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbGF6eUluaXRp
YWxpemUoKTsKIAotICAgIGRlc3RpbmF0aW9uTm9kZSgpLT5zdXNwZW5kKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24p
IHsKKyAgICBkZXN0aW5hdGlvbigpLnN1c3BlbmQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgewogICAgICAgICBp
ZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC00NjgsOCArNDY5LDggQEAg
Ym9vbCBBdWRpb0NvbnRleHQ6OmlzU3VzcGVuZGVkKCkgY29uc3QKIAogdm9pZCBBdWRpb0NvbnRl
eHQ6OnBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkKIHsKLSAgICBpZiAoZGVzdGluYXRpb25Ob2Rl
KCkgJiYgZG9jdW1lbnQoKSAmJiBkb2N1bWVudCgpLT5wYWdlKCkpCi0gICAgICAgIGRlc3RpbmF0
aW9uTm9kZSgpLT5zZXRNdXRlZChkb2N1bWVudCgpLT5wYWdlKCktPmlzQXVkaW9NdXRlZCgpKTsK
KyAgICBpZiAoZG9jdW1lbnQoKSAmJiBkb2N1bWVudCgpLT5wYWdlKCkpCisgICAgICAgIGRlc3Rp
bmF0aW9uKCkuc2V0TXV0ZWQoZG9jdW1lbnQoKS0+cGFnZSgpLT5pc0F1ZGlvTXV0ZWQoKSk7CiB9
CiAKIHZvaWQgQXVkaW9Db250ZXh0OjptZWRpYUNhblN0YXJ0KERvY3VtZW50JiBkb2N1bWVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCmluZGV4
IGM1NWE1Mjk2ZDY3NDVlOGJiMTBiMTViMjlmZDk0M2Y5YTY1Y2I2NTYuLjhjMGFlMzVlMDdmNjNi
Yjk3Yjc0YTdlN2QzZmFmYTI0ZDE3MTMxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaApAQCAtNTUsNyArNTUsOCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKIAotICAgIERlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZSogZGVzdGluYXRpb24oKTsKKyAgICBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUmIGRlc3RpbmF0aW9uKCk7CisgICAgY29uc3QgRGVmYXVsdEF1ZGlvRGVzdGlu
YXRpb25Ob2RlJiBkZXN0aW5hdGlvbigpIGNvbnN0OwogICAgIGRvdWJsZSBiYXNlTGF0ZW5jeSgp
OwogCiAgICAgQXVkaW9UaW1lc3RhbXAgZ2V0T3V0cHV0VGltZXN0YW1wKERPTVdpbmRvdyYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0
aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGlu
YXRpb25Ob2RlLmNwcAppbmRleCAyZDEwMDYyOWUwZmFjMmNmNDI3ZDA4NDEzYzMzYjNhMzg1MzVk
ODM0Li40NTEzZjdkODY1ODZjYjc2Y2QyZjNlNDNiMmNmZDYxMzM5ODI0NDExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25O
b2RlLmNwcApAQCAtMTQ2LDYgKzE0NiwxNiBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Ob2RlOjp1
cGRhdGVJc0VmZmVjdGl2ZWx5UGxheWluZ0F1ZGlvKCkKICAgICBjb250ZXh0KCkuaXNQbGF5aW5n
QXVkaW9EaWRDaGFuZ2UoKTsKIH0KIAordm9pZCBBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6cmVmKCkK
K3sKKyAgICBjb250ZXh0KCkucmVmKCk7Cit9CisKK3ZvaWQgQXVkaW9EZXN0aW5hdGlvbk5vZGU6
OmRlcmVmKCkKK3sKKyAgICBjb250ZXh0KCkuZGVyZWYoKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaAppbmRleCA1
NDAzZmFlYWNjZjVlNDhlMzc1NjFmZTIzOGZlYzAwYjhiMzUwNjQ4Li4yNmY1NjM1NGFiYTllZWZi
ZDg0Yjg0M2MyOWNjYTY0ODQ2Yjc5MDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCkBAIC02Niw2ICs2NiwxMCBA
QCBwdWJsaWM6CiAgICAgYm9vbCBpc1BsYXlpbmdBdWRpbygpIGNvbnN0IHsgcmV0dXJuIG1faXNF
ZmZlY3RpdmVseVBsYXlpbmdBdWRpbzsgfQogICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCBtdXRlZCkg
eyBtX211dGVkID0gbXV0ZWQ7IH0KIAorICAgIC8vIEF1ZGlvRGVzdGluYXRpb25Ob2RlcyBhcmUg
b3duZWQgYnkgdGhlIEJhc2VBdWRpb0NvbnRleHQgc28gd2UgZm9yd2FyZCB0aGUgcmVmY291bnRp
bmcgdG8gaXRzIEJhc2VBdWRpb0NvbnRleHQuCisgICAgdm9pZCByZWYoKSBmaW5hbDsKKyAgICB2
b2lkIGRlcmVmKCkgZmluYWw7CisKIHByb3RlY3RlZDoKICAgICBkb3VibGUgdGFpbFRpbWUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAgICAgZG91YmxlIGxhdGVuY3lUaW1lKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAKaW5kZXggNTU2NGU2ZGI5NWFiMjE3M2NjM2ZjOTFj
NDVmNWQzNjhjOTY3YmRiMC4uMzFmODQ4YjY5Y2ZhMDVhZjcyMmU3YjUyMTk2MTNhMTY1NTE5OTdl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3Rl
bmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVu
ZXIuY3BwCkBAIC05MSw3ICs5MSwxMCBAQCBib29sIEF1ZGlvTGlzdGVuZXI6OnNob3VsZFVzZUFS
YXRlKCkgY29uc3QKIAogdm9pZCBBdWRpb0xpc3RlbmVyOjp1cGRhdGVWYWx1ZXNJZk5lZWRlZChz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewotICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IHBvc2l0
aW9uWCgpLmNvbnRleHQoKS5jdXJyZW50VGltZSgpOworICAgIGlmICghcG9zaXRpb25YKCkuY29u
dGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBkb3VibGUgY3VycmVudFRpbWUgPSBwb3Np
dGlvblgoKS5jb250ZXh0KCktPmN1cnJlbnRUaW1lKCk7CiAgICAgaWYgKG1fbGFzdFVwZGF0ZVRp
bWUgIT0gY3VycmVudFRpbWUpIHsKICAgICAgICAgLy8gVGltZSBoYXMgY2hhbmdlZC4gVXBkYXRl
IGFsbCBvZiB0aGUgYXV0b21hdGlvbiB2YWx1ZXMgbm93LgogICAgICAgICBtX2xhc3RVcGRhdGVU
aW1lID0gY3VycmVudFRpbWU7CkBAIC0xNzcsOCArMTgwLDEwIEBAIGNvbnN0IGZsb2F0KiBBdWRp
b0xpc3RlbmVyOjp1cFpWYWx1ZXMoc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIEV4Y2VwdGlvbk9y
PHZvaWQ+IEF1ZGlvTGlzdGVuZXI6OnNldFBvc2l0aW9uKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0
IHopCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBpZiAoIW1fcG9zaXRpb25Y
LT5jb250ZXh0KCkpCisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBkb3VibGUgbm93ID0gbV9w
b3NpdGlvblgtPmNvbnRleHQoKS5jdXJyZW50VGltZSgpOworICAgIGRvdWJsZSBub3cgPSBtX3Bv
c2l0aW9uWC0+Y29udGV4dCgpLT5jdXJyZW50VGltZSgpOwogCiAgICAgYXV0byByZXN1bHQgPSBt
X3Bvc2l0aW9uWC0+c2V0VmFsdWVBdFRpbWUoeCwgbm93KTsKICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKQpAQCAtMjAxLDggKzIwNiwxMCBAQCBGbG9hdFBvaW50M0QgQXVkaW9MaXN0ZW5l
cjo6cG9zaXRpb24oKSBjb25zdAogRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9MaXN0ZW5lcjo6c2V0
T3JpZW50YXRpb24oZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgdXBYLCBmbG9hdCB1
cFksIGZsb2F0IHVwWikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlmICgh
bV9mb3J3YXJkWC0+Y29udGV4dCgpKQorICAgICAgICByZXR1cm4geyB9OwogCi0gICAgZG91Ymxl
IG5vdyA9IG1fZm9yd2FyZFgtPmNvbnRleHQoKS5jdXJyZW50VGltZSgpOworICAgIGRvdWJsZSBu
b3cgPSBtX2ZvcndhcmRYLT5jb250ZXh0KCktPmN1cnJlbnRUaW1lKCk7CiAKICAgICBhdXRvIHJl
c3VsdCA9IG1fZm9yd2FyZFgtPnNldFZhbHVlQXRUaW1lKHgsIG5vdyk7CiAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Ob2RlLmNwcAppbmRleCA2ZmMzZjlhMTk0NjhmYzY3ZDkxNzQwMTEyYWVmNzY5MjBhZGE4NThm
Li40NGU2MmJkNzIyMGUyZGMxODMzM2Q5YzZjNjE0ZjNhYjAwZjhhYzU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCkBAIC05OSw5ICs5OSwxNyBA
QCBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9Ob2RlOjpOb2RlVHlwZSBl
bnVtZXJhdGlvblZhbHVlKQogICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90Pihl
bnVtZXJhdGlvblZhbHVlKV07CiB9CiAKK2F1dG8gQXVkaW9Ob2RlOjp0b1dlYWtPclN0cm9uZ0Nv
bnRleHQoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgTm9kZVR5cGUgbm9kZVR5cGUpIC0+IFdl
YWtPclN0cm9uZ0NvbnRleHQKK3sKKyAgICAvLyBEZXN0aW5hdGlvbiBub2RlcyBhcmUgb3duZWQg
YnkgdGhlIEJhc2VBdWRpb0NvbnRleHQgc28gd2UgdXNlIFdlYWtQdHIgdG8gYXZvaWQgYSByZXRh
aW4gY3ljbGUuCisgICAgaWYgKG5vZGVUeXBlID09IEF1ZGlvTm9kZTo6Tm9kZVR5cGVEZXN0aW5h
dGlvbikKKyAgICAgICAgcmV0dXJuIG1ha2VXZWFrUHRyKGNvbnRleHQsIEVuYWJsZVdlYWtQdHJU
aHJlYWRpbmdBc3NlcnRpb25zOjpObyk7IC8vIFdlYkF1ZGlvIGNvZGUgdXNlcyBsb2NraW5nIHdo
ZW4gYWNjZXNzaW5nIHRoZSBjb250ZXh0LgorICAgIHJldHVybiBtYWtlUmVmKGNvbnRleHQpOwor
fQorCiBBdWRpb05vZGU6OkF1ZGlvTm9kZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBOb2Rl
VHlwZSB0eXBlKQogICAgIDogbV9ub2RlVHlwZSh0eXBlKQotICAgICwgbV9jb250ZXh0KGNvbnRl
eHQpCisgICAgLCBtX2NvbnRleHQodG9XZWFrT3JTdHJvbmdDb250ZXh0KGNvbnRleHQsIHR5cGUp
KQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgbV9sb2dnZXIoY29udGV4dC5sb2dn
ZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihjb250ZXh0Lm5leHRBdWRpb05vZGVMb2dJZGVu
dGlmaWVyKCkpCkBAIC0yMTUsNyArMjIzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Ob2Rl
Ojpjb25uZWN0KEF1ZGlvUGFyYW0mIHBhcmFtLCB1bnNpZ25lZCBvdXRwdXRJbmRleCkKICAgICBp
ZiAob3V0cHV0SW5kZXggPj0gbnVtYmVyT2ZPdXRwdXRzKCkpCiAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbmRleFNpemVFcnJvciwgIk91dHB1dCBpbmRleCBleGNlZWRzIG51bWJlciBvZiBv
dXRwdXRzIl9zIH07CiAKLSAgICBpZiAoJmNvbnRleHQoKSAhPSAmcGFyYW0uY29udGV4dCgpKQor
ICAgIGlmICgmY29udGV4dCgpICE9IHBhcmFtLmNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiTm9kZSBhbmQgQXVkaW9QYXJhbSBiZWxvbmcgdG8gZGlm
ZmVyZW50IGF1ZGlvIGNvbnRleHRzIl9zIH07CiAKICAgICBhdXRvKiBvdXRwdXQgPSB0aGlzLT5v
dXRwdXQob3V0cHV0SW5kZXgpOwpAQCAtMzY3LDcgKzM3NSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IEF1ZGlvTm9kZTo6ZGlzY29ubmVjdChBdWRpb1BhcmFtJiBkZXN0aW5hdGlvblBhcmFtLCB1bnNp
Z25lZCBvCiAKIGZsb2F0IEF1ZGlvTm9kZTo6c2FtcGxlUmF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fY29udGV4dC0+c2FtcGxlUmF0ZSgpOworICAgIHJldHVybiBjb250ZXh0KCkuc2FtcGxl
UmF0ZSgpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OnNldENoYW5uZWxDb3Vu
dCh1bnNpZ25lZCBjaGFubmVsQ291bnQpCkBAIC02MjUsNiArNjMzLDEwIEBAIHZvaWQgQXVkaW9O
b2RlOjptYXJrTm9kZUZvckRlbGV0aW9uSWZOZWNlc3NhcnkoKQogICAgIGlmIChtX2Nvbm5lY3Rp
b25SZWZDb3VudCB8fCBtX25vcm1hbFJlZkNvdW50IHx8IG1faXNNYXJrZWRGb3JEZWxldGlvbikK
ICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gQXVkaW9EZXN0aW5hdGlvbk5vZGVzIGFyZSBvd25l
ZCBieSB0aGVpciBCYXNlQXVkaW9Db250ZXh0IHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gbWFyayB0
aGVtIGZvciBkZWxldGlvbi4KKyAgICBpZiAobm9kZVR5cGUoKSA9PSBOb2RlVHlwZURlc3RpbmF0
aW9uKQorICAgICAgICByZXR1cm47CisKICAgICAvLyBBbGwgcmVmZXJlbmNlcyBhcmUgZ29uZSAt
IHdlIG5lZWQgdG8gZ28gYXdheS4KICAgICBmb3IgKGF1dG8mIG91dHB1dCA6IG1fb3V0cHV0cykK
ICAgICAgICAgb3V0cHV0LT5kaXNjb25uZWN0QWxsKCk7IC8vIFRoaXMgd2lsbCBkZXJlZigpIG5v
ZGVzIHdlJ3JlIGNvbm5lY3RlZCB0by4KQEAgLTY2MSwxMSArNjczLDEyIEBAIHZvaWQgQXVkaW9O
b2RlOjpkZXJlZigpCiAgICAgICAgIGNvbnRleHQoKS5kZWxldGVNYXJrZWROb2RlcygpOwogfQog
Ci1WYXJpYW50PFJlZlB0cjxCYXNlQXVkaW9Db250ZXh0PiwgUmVmUHRyPFdlYktpdEF1ZGlvQ29u
dGV4dD4+IEF1ZGlvTm9kZTo6Y29udGV4dEZvckJpbmRpbmdzKCkgY29uc3QKK1ZhcmlhbnQ8UmVm
UHRyPEJhc2VBdWRpb0NvbnRleHQ+LCBSZWZQdHI8V2ViS2l0QXVkaW9Db250ZXh0Pj4gQXVkaW9O
b2RlOjpjb250ZXh0Rm9yQmluZGluZ3MoKQogewotICAgIGlmIChtX2NvbnRleHQtPmlzV2ViS2l0
QXVkaW9Db250ZXh0KCkpCi0gICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHN0YXRpY19jYXN0PFdl
YktpdEF1ZGlvQ29udGV4dCY+KG1fY29udGV4dC5nZXQoKSkpOwotICAgIHJldHVybiBtYWtlUmVm
UHRyKG1fY29udGV4dC5nZXQoKSk7CisgICAgYXV0byYgY29udGV4dCA9IHRoaXMtPmNvbnRleHQo
KTsKKyAgICBpZiAoY29udGV4dC5pc1dlYktpdEF1ZGlvQ29udGV4dCgpKQorICAgICAgICByZXR1
cm4gbWFrZVJlZlB0cihzdGF0aWNfY2FzdDxXZWJLaXRBdWRpb0NvbnRleHQmPihjb250ZXh0KSk7
CisgICAgcmV0dXJuIG1ha2VSZWZQdHIoY29udGV4dCk7CiB9CiAKIHZvaWQgQXVkaW9Ob2RlOjpk
ZXJlZldpdGhMb2NrKCkKQEAgLTY5OSw2ICs3MTIsMjQgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVk
aW9Ob2RlOjpoYW5kbGVBdWRpb05vZGVPcHRpb25zKGNvbnN0IEF1ZGlvTm9kZU9wdGlvbnMmIG9w
dGkKICAgICByZXR1cm4geyB9OwogfQogCitCYXNlQXVkaW9Db250ZXh0JiBBdWRpb05vZGU6OmNv
bnRleHQoKQoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fY29udGV4dCwgW10oUmVmPEJh
c2VBdWRpb0NvbnRleHQ+JiBjb250ZXh0KSAtPiBCYXNlQXVkaW9Db250ZXh0JiB7CisgICAgICAg
IHJldHVybiBjb250ZXh0LmdldCgpOworICAgIH0sIFtdKFdlYWtQdHI8QmFzZUF1ZGlvQ29udGV4
dD4mIGNvbnRleHQpIC0+IEJhc2VBdWRpb0NvbnRleHQmIHsKKyAgICAgICAgcmV0dXJuICpjb250
ZXh0OworICAgIH0pOworfQorCitjb25zdCBCYXNlQXVkaW9Db250ZXh0JiBBdWRpb05vZGU6OmNv
bnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fY29udGV4dCwgW10o
Y29uc3QgUmVmPEJhc2VBdWRpb0NvbnRleHQ+JiBjb250ZXh0KSAtPiBjb25zdCBCYXNlQXVkaW9D
b250ZXh0JiB7CisgICAgICAgIHJldHVybiBjb250ZXh0LmdldCgpOworICAgIH0sIFtdKGNvbnN0
IFdlYWtQdHI8QmFzZUF1ZGlvQ29udGV4dD4mIGNvbnRleHQpIC0+IGNvbnN0IEJhc2VBdWRpb0Nv
bnRleHQmIHsKKyAgICAgICAgcmV0dXJuICpjb250ZXh0OworICAgIH0pOworfQorCiAjaWYgREVC
VUdfQVVESU9OT0RFX1JFRkVSRU5DRVMKIAogYm9vbCBBdWRpb05vZGU6OnNfaXNOb2RlQ291bnRJ
bml0aWFsaXplZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Ob2RlLmgKaW5kZXggZTFhNWNjMmVmY2MyZmM0NzZmOTZjNDVjZjEzMzIyYzEzMTM0YjAzYS4u
MjI3NWM1Mzc3MmYzZjI1NzA2YzI0OTViNjAwYTFhNGZjNzUyZTJjMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCkBAIC04NywxNiArODcsMTYgQEAgcHVi
bGljOgogICAgIEF1ZGlvTm9kZShCYXNlQXVkaW9Db250ZXh0JiwgTm9kZVR5cGUpOwogICAgIHZp
cnR1YWwgfkF1ZGlvTm9kZSgpOwogCi0gICAgQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCgpIHsg
cmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQotICAgIGNvbnN0IEJhc2VBdWRpb0NvbnRleHQmIGNv
bnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KKyAgICBCYXNlQXVkaW9D
b250ZXh0JiBjb250ZXh0KCk7CisgICAgY29uc3QgQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCgp
IGNvbnN0OwogCi0gICAgVmFyaWFudDxSZWZQdHI8QmFzZUF1ZGlvQ29udGV4dD4sIFJlZlB0cjxX
ZWJLaXRBdWRpb0NvbnRleHQ+PiBjb250ZXh0Rm9yQmluZGluZ3MoKSBjb25zdDsKKyAgICBWYXJp
YW50PFJlZlB0cjxCYXNlQXVkaW9Db250ZXh0PiwgUmVmUHRyPFdlYktpdEF1ZGlvQ29udGV4dD4+
IGNvbnRleHRGb3JCaW5kaW5ncygpOwogCiAgICAgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCB7
IHJldHVybiBtX25vZGVUeXBlOyB9CiAKICAgICAvLyBDYW4gYmUgY2FsbGVkIGZyb20gbWFpbiB0
aHJlYWQgb3IgY29udGV4dCdzIGF1ZGlvIHRocmVhZC4KLSAgICB2b2lkIHJlZigpOwotICAgIHZv
aWQgZGVyZWYoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmKCk7CisgICAgdmlydHVhbCB2b2lkIGRl
cmVmKCk7CiAgICAgdm9pZCBpbmNyZW1lbnRDb25uZWN0aW9uQ291bnQoKTsKICAgICB2b2lkIGRl
Y3JlbWVudENvbm5lY3Rpb25Db3VudCgpOwogCkBAIC0yMzAsMTMgKzIzMCwxNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVB1bGxTdGF0dXMoKSB7IH0KIAogcHJpdmF0ZToK
KyAgICB1c2luZyBXZWFrT3JTdHJvbmdDb250ZXh0ID0gVmFyaWFudDxSZWY8QmFzZUF1ZGlvQ29u
dGV4dD4sIFdlYWtQdHI8QmFzZUF1ZGlvQ29udGV4dD4+OworICAgIHN0YXRpYyBXZWFrT3JTdHJv
bmdDb250ZXh0IHRvV2Vha09yU3Ryb25nQ29udGV4dChCYXNlQXVkaW9Db250ZXh0JiwgTm9kZVR5
cGUpOworCiAgICAgLy8gRXZlbnRUYXJnZXQKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVu
dFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvbGF0
aWxlIGJvb2wgbV9pc0luaXRpYWxpemVkIHsgZmFsc2UgfTsKICAgICBOb2RlVHlwZSBtX25vZGVU
eXBlOwotICAgIFJlZjxCYXNlQXVkaW9Db250ZXh0PiBtX2NvbnRleHQ7CisKKyAgICBXZWFrT3JT
dHJvbmdDb250ZXh0IG1fY29udGV4dDsKIAogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8QXVk
aW9Ob2RlSW5wdXQ+PiBtX2lucHV0czsKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEF1ZGlv
Tm9kZU91dHB1dD4+IG1fb3V0cHV0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAKaW5kZXggMjFiYTVhN2JiMWE5NGY0MjRjYjJjNmFk
ZDY3YTYzNmIxNGYzM2JlMi4uN2UwNjM0ZTViNjE1Y2RlNjIzODMxYzA2MjFmMmUyZjFmZmZkYmU1
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJ
bnB1dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJ
bnB1dC5jcHAKQEAgLTQ3LDcgKzQ3LDggQEAgQXVkaW9Ob2RlSW5wdXQ6OkF1ZGlvTm9kZUlucHV0
KEF1ZGlvTm9kZSogbm9kZSkKIAogdm9pZCBBdWRpb05vZGVJbnB1dDo6Y29ubmVjdChBdWRpb05v
ZGVPdXRwdXQqIG91dHB1dCkKIHsKLSAgICBBU1NFUlQoY29udGV4dCgpLmlzR3JhcGhPd25lcigp
KTsKKyAgICBBU1NFUlQoY29udGV4dCgpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpLT5pc0dyYXBo
T3duZXIoKSk7CiAgICAgCiAgICAgQVNTRVJUKG91dHB1dCAmJiBub2RlKCkpOwogICAgIGlmICgh
b3V0cHV0IHx8ICFub2RlKCkpCkBAIC01OSw3ICs2MCw4IEBAIHZvaWQgQXVkaW9Ob2RlSW5wdXQ6
OmNvbm5lY3QoQXVkaW9Ob2RlT3V0cHV0KiBvdXRwdXQpCiAKIHZvaWQgQXVkaW9Ob2RlSW5wdXQ6
OmRpc2Nvbm5lY3QoQXVkaW9Ob2RlT3V0cHV0KiBvdXRwdXQpCiB7Ci0gICAgQVNTRVJUKGNvbnRl
eHQoKS5pc0dyYXBoT3duZXIoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAgQVNTRVJU
KGNvbnRleHQoKS0+aXNHcmFwaE93bmVyKCkpOwogCiAgICAgQVNTRVJUKG91dHB1dCAmJiBub2Rl
KCkpOwogICAgIGlmICghb3V0cHV0IHx8ICFub2RlKCkpCkBAIC03Niw3ICs3OCw4IEBAIHZvaWQg
QXVkaW9Ob2RlSW5wdXQ6OmRpc2Nvbm5lY3QoQXVkaW9Ob2RlT3V0cHV0KiBvdXRwdXQpCiAKIHZv
aWQgQXVkaW9Ob2RlSW5wdXQ6Om91dHB1dEVuYWJsZWRTdGF0ZUNoYW5nZWQoQXVkaW9Ob2RlT3V0
cHV0JiBvdXRwdXQpCiB7Ci0gICAgQVNTRVJUKGNvbnRleHQoKS5pc0dyYXBoT3duZXIoKSk7Cisg
ICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKS0+aXNHcmFwaE93bmVy
KCkpOwogICAgIEF1ZGlvU3VtbWluZ0p1bmN0aW9uOjpvdXRwdXRFbmFibGVkU3RhdGVDaGFuZ2Vk
KG91dHB1dCk7CiAKICAgICAvLyBQcm9wYWdhdGUgZGlzYWJsZWQgc3RhdGUgdG8gb3V0cHV0cy4K
QEAgLTk2LDcgKzk5LDggQEAgdm9pZCBBdWRpb05vZGVJbnB1dDo6ZGlkVXBkYXRlKCkKIAogdm9p
ZCBBdWRpb05vZGVJbnB1dDo6dXBkYXRlSW50ZXJuYWxCdXMoKQogewotICAgIEFTU0VSVChjb250
ZXh0KCkuaXNBdWRpb1RocmVhZCgpICYmIGNvbnRleHQoKS5pc0dyYXBoT3duZXIoKSk7CisgICAg
QVNTRVJUKGNvbnRleHQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKS0+aXNBdWRpb1RocmVhZCgp
ICYmIGNvbnRleHQoKS0+aXNHcmFwaE93bmVyKCkpOwogCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZJ
bnB1dENoYW5uZWxzID0gbnVtYmVyT2ZDaGFubmVscygpOwogCkBAIC0xMjYsNyArMTMwLDggQEAg
dW5zaWduZWQgQXVkaW9Ob2RlSW5wdXQ6Om51bWJlck9mQ2hhbm5lbHMoKSBjb25zdAogCiBBdWRp
b0J1cyogQXVkaW9Ob2RlSW5wdXQ6OmJ1cygpCiB7Ci0gICAgQVNTRVJUKGNvbnRleHQoKS5pc0F1
ZGlvVGhyZWFkKCkpOworICAgIEFTU0VSVChjb250ZXh0KCkpOworICAgIEFTU0VSVChjb250ZXh0
KCktPmlzQXVkaW9UaHJlYWQoKSk7CiAKICAgICAvLyBIYW5kbGUgc2luZ2xlIGNvbm5lY3Rpb24g
c3BlY2lhbGx5IHRvIGFsbG93IGZvciBpbi1wbGFjZSBwcm9jZXNzaW5nLgogICAgIGlmIChudW1i
ZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCkgPT0gMSAmJiBub2RlKCktPmNoYW5uZWxDb3VudE1v
ZGUoKSA9PSBDaGFubmVsQ291bnRNb2RlOjpNYXgpCkBAIC0xMzgsMTQgKzE0MywxNiBAQCBBdWRp
b0J1cyogQXVkaW9Ob2RlSW5wdXQ6OmJ1cygpCiAKIEF1ZGlvQnVzKiBBdWRpb05vZGVJbnB1dDo6
aW50ZXJuYWxTdW1taW5nQnVzKCkKIHsKLSAgICBBU1NFUlQoY29udGV4dCgpLmlzQXVkaW9UaHJl
YWQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKS0+aXNB
dWRpb1RocmVhZCgpKTsKIAogICAgIHJldHVybiBtX2ludGVybmFsU3VtbWluZ0J1cy5nZXQoKTsK
IH0KIAogdm9pZCBBdWRpb05vZGVJbnB1dDo6c3VtQWxsQ29ubmVjdGlvbnMoQXVkaW9CdXMqIHN1
bW1pbmdCdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7Ci0gICAgQVNTRVJUKGNvbnRleHQo
KS5pc0F1ZGlvVGhyZWFkKCkpOworICAgIEFTU0VSVChjb250ZXh0KCkpOworICAgIEFTU0VSVChj
b250ZXh0KCktPmlzQXVkaW9UaHJlYWQoKSk7CiAKICAgICAvLyBXZSBzaG91bGRuJ3QgYmUgY2Fs
bGluZyB0aGlzIG1ldGhvZCBpZiB0aGVyZSdzIG9ubHkgb25lIGNvbm5lY3Rpb24sIHNpbmNlIGl0
J3MgbGVzcyBlZmZpY2llbnQuCiAgICAgQVNTRVJUKG51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlv
bnMoKSA+IDEgfHwgbm9kZSgpLT5jaGFubmVsQ291bnRNb2RlKCkgIT0gQ2hhbm5lbENvdW50TW9k
ZTo6TWF4KTsKQEAgLTE3MSw3ICsxNzgsOCBAQCB2b2lkIEF1ZGlvTm9kZUlucHV0OjpzdW1BbGxD
b25uZWN0aW9ucyhBdWRpb0J1cyogc3VtbWluZ0J1cywgc2l6ZV90IGZyYW1lc1RvUHJvYwogCiBB
dWRpb0J1cyogQXVkaW9Ob2RlSW5wdXQ6OnB1bGwoQXVkaW9CdXMqIGluUGxhY2VCdXMsIHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MpCiB7Ci0gICAgQVNTRVJUKGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFk
KCkpOworICAgIEFTU0VSVChjb250ZXh0KCkpOworICAgIEFTU0VSVChjb250ZXh0KCktPmlzQXVk
aW9UaHJlYWQoKSk7CiAKICAgICBhdXRvIG51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMgPSB0
aGlzLT5udW1iZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCk7CiAgICAgLy8gSGFuZGxlIHNpbmds
ZSBjb25uZWN0aW9uIGNhc2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvUGFyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1BhcmFtLmNwcAppbmRleCBmMzlhYzg1OTBjODI3MjY5ZTMwZjcyZGE2OGZmZGNmNzYxZjA1
ZGYxLi43MjE0YWI4YmZjMmRjMWM3Mzk3NDI3NzgzYzliMDhlY2IwNDQ2ZmNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKQEAgLTY5LDggKzY5
LDggQEAgQXVkaW9QYXJhbTo6QXVkaW9QYXJhbShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBj
b25zdCBTdHJpbmcmIG5hbWUsIGZsb2F0IGRlZmEKIGZsb2F0IEF1ZGlvUGFyYW06OnZhbHVlKCkK
IHsKICAgICAvLyBVcGRhdGUgdmFsdWUgZm9yIHRpbWVsaW5lLgotICAgIGlmIChjb250ZXh0KCku
aXNBdWRpb1RocmVhZCgpKSB7Ci0gICAgICAgIGF1dG8gdGltZWxpbmVWYWx1ZSA9IG1fdGltZWxp
bmUudmFsdWVGb3JDb250ZXh0VGltZShjb250ZXh0KCksIG1fdmFsdWUsIG1pblZhbHVlKCksIG1h
eFZhbHVlKCkpOworICAgIGlmIChjb250ZXh0KCkgJiYgY29udGV4dCgpLT5pc0F1ZGlvVGhyZWFk
KCkpIHsKKyAgICAgICAgYXV0byB0aW1lbGluZVZhbHVlID0gbV90aW1lbGluZS52YWx1ZUZvckNv
bnRleHRUaW1lKCpjb250ZXh0KCksIG1fdmFsdWUsIG1pblZhbHVlKCksIG1heFZhbHVlKCkpOwog
ICAgICAgICBpZiAodGltZWxpbmVWYWx1ZSkKICAgICAgICAgICAgIG1fdmFsdWUgPSAqdGltZWxp
bmVWYWx1ZTsKICAgICB9CkBAIC05Niw3ICs5NiwxMSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRp
b1BhcmFtOjpzZXRWYWx1ZUZvckJpbmRpbmdzKGZsb2F0IHZhbHVlKQogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAKICAgICBzZXRWYWx1ZSh2YWx1ZSk7Ci0gICAgYXV0byByZXN1bHQgPSBz
ZXRWYWx1ZUF0VGltZShtX3ZhbHVlLCBjb250ZXh0KCkuY3VycmVudFRpbWUoKSk7CisKKyAgICBp
ZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8gcmVzdWx0ID0g
c2V0VmFsdWVBdFRpbWUobV92YWx1ZSwgY29udGV4dCgpLT5jdXJyZW50VGltZSgpKTsKICAgICBp
ZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VF
eGNlcHRpb24oKTsKICAgICByZXR1cm4geyB9OwpAQCAtMTE4LDkgKzEyMiwxMiBAQCBmbG9hdCBB
dWRpb1BhcmFtOjpzbW9vdGhlZFZhbHVlKCkKIAogYm9vbCBBdWRpb1BhcmFtOjpzbW9vdGgoKQog
eworICAgIGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIC8vIElm
IHZhbHVlcyBoYXZlIGJlZW4gZXhwbGljaXRseSBzY2hlZHVsZWQgb24gdGhlIHRpbWVsaW5lLCB0
aGVuIHVzZSB0aGUgZXhhY3QgdmFsdWUuCiAgICAgLy8gU21vb3RoaW5nIGVmZmVjdGl2ZWx5IGlz
IHBlcmZvcm1lZCBieSB0aGUgdGltZWxpbmUuCi0gICAgYXV0byB0aW1lbGluZVZhbHVlID0gbV90
aW1lbGluZS52YWx1ZUZvckNvbnRleHRUaW1lKGNvbnRleHQoKSwgbV92YWx1ZSwgbWluVmFsdWUo
KSwgbWF4VmFsdWUoKSk7CisgICAgYXV0byB0aW1lbGluZVZhbHVlID0gbV90aW1lbGluZS52YWx1
ZUZvckNvbnRleHRUaW1lKCpjb250ZXh0KCksIG1fdmFsdWUsIG1pblZhbHVlKCksIG1heFZhbHVl
KCkpOwogICAgIGlmICh0aW1lbGluZVZhbHVlKQogICAgICAgICBtX3ZhbHVlID0gKnRpbWVsaW5l
VmFsdWU7CiAKQEAgLTE0NSwxMCArMTUyLDEzIEBAIGJvb2wgQXVkaW9QYXJhbTo6c21vb3RoKCkK
IAogRXhjZXB0aW9uT3I8QXVkaW9QYXJhbSY+IEF1ZGlvUGFyYW06OnNldFZhbHVlQXRUaW1lKGZs
b2F0IHZhbHVlLCBkb3VibGUgc3RhcnRUaW1lKQogeworICAgIGlmICghY29udGV4dCgpKQorICAg
ICAgICByZXR1cm4gKnRoaXM7CisKICAgICBpZiAoc3RhcnRUaW1lIDwgMCkKICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFJhbmdlRXJyb3IsICJzdGFydFRpbWUgbXVzdCBiZSBhIHBvc2l0aXZl
IHZhbHVlIl9zIH07CiAKLSAgICBzdGFydFRpbWUgPSBzdGQ6Om1heChzdGFydFRpbWUsIGNvbnRl
eHQoKS5jdXJyZW50VGltZSgpKTsKKyAgICBzdGFydFRpbWUgPSBzdGQ6Om1heChzdGFydFRpbWUs
IGNvbnRleHQoKS0+Y3VycmVudFRpbWUoKSk7CiAgICAgYXV0byByZXN1bHQgPSBtX3RpbWVsaW5l
LnNldFZhbHVlQXRUaW1lKHZhbHVlLCBTZWNvbmRzIHsgc3RhcnRUaW1lIH0pOwogICAgIGlmIChy
ZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2Vw
dGlvbigpOwpAQCAtMTU3LDExICsxNjcsMTQgQEAgRXhjZXB0aW9uT3I8QXVkaW9QYXJhbSY+IEF1
ZGlvUGFyYW06OnNldFZhbHVlQXRUaW1lKGZsb2F0IHZhbHVlLCBkb3VibGUgc3RhcnRUaW0KIAog
RXhjZXB0aW9uT3I8QXVkaW9QYXJhbSY+IEF1ZGlvUGFyYW06OmxpbmVhclJhbXBUb1ZhbHVlQXRU
aW1lKGZsb2F0IHZhbHVlLCBkb3VibGUgZW5kVGltZSkKIHsKKyAgICBpZiAoIWNvbnRleHQoKSkK
KyAgICAgICAgcmV0dXJuICp0aGlzOworCiAgICAgaWYgKGVuZFRpbWUgPCAwKQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwgImVuZFRpbWUgbXVzdCBiZSBhIHBvc2l0aXZl
IHZhbHVlIl9zIH07CiAKLSAgICBlbmRUaW1lID0gc3RkOjptYXgoZW5kVGltZSwgY29udGV4dCgp
LmN1cnJlbnRUaW1lKCkpOwotICAgIGF1dG8gcmVzdWx0ID0gbV90aW1lbGluZS5saW5lYXJSYW1w
VG9WYWx1ZUF0VGltZSh2YWx1ZSwgU2Vjb25kcyB7IGVuZFRpbWUgfSwgbV92YWx1ZSwgU2Vjb25k
cyB7IGNvbnRleHQoKS5jdXJyZW50VGltZSgpIH0pOworICAgIGVuZFRpbWUgPSBzdGQ6Om1heChl
bmRUaW1lLCBjb250ZXh0KCktPmN1cnJlbnRUaW1lKCkpOworICAgIGF1dG8gcmVzdWx0ID0gbV90
aW1lbGluZS5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2YWx1ZSwgU2Vjb25kcyB7IGVuZFRpbWUg
fSwgbV92YWx1ZSwgU2Vjb25kcyB7IGNvbnRleHQoKS0+Y3VycmVudFRpbWUoKSB9KTsKICAgICBp
ZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VF
eGNlcHRpb24oKTsKICAgICByZXR1cm4gKnRoaXM7CkBAIC0xNzQsOCArMTg3LDggQEAgRXhjZXB0
aW9uT3I8QXVkaW9QYXJhbSY+IEF1ZGlvUGFyYW06OmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRp
bWUoZmxvYXQgdmFsdWUsIGQKICAgICBpZiAoZW5kVGltZSA8IDApCiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBSYW5nZUVycm9yLCAiZW5kVGltZSBtdXN0IGJlIGEgcG9zaXRpdmUgdmFsdWUi
X3MgfTsKIAotICAgIGVuZFRpbWUgPSBzdGQ6Om1heChlbmRUaW1lLCBjb250ZXh0KCkuY3VycmVu
dFRpbWUoKSk7Ci0gICAgYXV0byByZXN1bHQgPSBtX3RpbWVsaW5lLmV4cG9uZW50aWFsUmFtcFRv
VmFsdWVBdFRpbWUodmFsdWUsIFNlY29uZHMgeyBlbmRUaW1lIH0sIG1fdmFsdWUsIFNlY29uZHMg
eyBjb250ZXh0KCkuY3VycmVudFRpbWUoKSB9KTsKKyAgICBlbmRUaW1lID0gc3RkOjptYXgoZW5k
VGltZSwgY29udGV4dCgpLT5jdXJyZW50VGltZSgpKTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fdGlt
ZWxpbmUuZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSh2YWx1ZSwgU2Vjb25kcyB7IGVuZFRp
bWUgfSwgbV92YWx1ZSwgU2Vjb25kcyB7IGNvbnRleHQoKS0+Y3VycmVudFRpbWUoKSB9KTsKICAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKTsKICAgICByZXR1cm4gKnRoaXM7CkBAIC0xODMsMTIgKzE5NiwxNSBAQCBF
eGNlcHRpb25PcjxBdWRpb1BhcmFtJj4gQXVkaW9QYXJhbTo6ZXhwb25lbnRpYWxSYW1wVG9WYWx1
ZUF0VGltZShmbG9hdCB2YWx1ZSwgZAogCiBFeGNlcHRpb25PcjxBdWRpb1BhcmFtJj4gQXVkaW9Q
YXJhbTo6c2V0VGFyZ2V0QXRUaW1lKGZsb2F0IHRhcmdldCwgZG91YmxlIHN0YXJ0VGltZSwgZmxv
YXQgdGltZUNvbnN0YW50KQogeworICAgIGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1cm4g
KnRoaXM7CisKICAgICBpZiAoc3RhcnRUaW1lIDwgMCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFJhbmdlRXJyb3IsICJzdGFydFRpbWUgbXVzdCBiZSBhIHBvc2l0aXZlIHZhbHVlIl9zIH07
CiAgICAgaWYgKHRpbWVDb25zdGFudCA8IDApCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBS
YW5nZUVycm9yLCAidGltZUNvbnN0YW50IG11c3QgYmUgYSBwb3NpdGl2ZSB2YWx1ZSJfcyB9Owog
Ci0gICAgc3RhcnRUaW1lID0gc3RkOjptYXgoc3RhcnRUaW1lLCBjb250ZXh0KCkuY3VycmVudFRp
bWUoKSk7CisgICAgc3RhcnRUaW1lID0gc3RkOjptYXgoc3RhcnRUaW1lLCBjb250ZXh0KCktPmN1
cnJlbnRUaW1lKCkpOwogICAgIGF1dG8gcmVzdWx0ID0gbV90aW1lbGluZS5zZXRUYXJnZXRBdFRp
bWUodGFyZ2V0LCBTZWNvbmRzIHsgc3RhcnRUaW1lIH0sIHRpbWVDb25zdGFudCk7CiAgICAgaWYg
KHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhj
ZXB0aW9uKCk7CkBAIC0xOTcsNiArMjEzLDkgQEAgRXhjZXB0aW9uT3I8QXVkaW9QYXJhbSY+IEF1
ZGlvUGFyYW06OnNldFRhcmdldEF0VGltZShmbG9hdCB0YXJnZXQsIGRvdWJsZSBzdGFydFQKIAog
RXhjZXB0aW9uT3I8QXVkaW9QYXJhbSY+IEF1ZGlvUGFyYW06OnNldFZhbHVlQ3VydmVBdFRpbWUo
VmVjdG9yPGZsb2F0PiYmIGN1cnZlLCBkb3VibGUgc3RhcnRUaW1lLCBkb3VibGUgZHVyYXRpb24p
CiB7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybiAqdGhpczsKKwogICAgIGlm
IChjdXJ2ZS5zaXplKCkgPCAyKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJBcnJheSBtdXN0IGhhdmUgYSBsZW5ndGggb2YgYXQgbGVhc3QgMiJfcyB9Owog
ICAgIGlmIChzdGFydFRpbWUgPCAwKQpAQCAtMjA0LDcgKzIyMyw3IEBAIEV4Y2VwdGlvbk9yPEF1
ZGlvUGFyYW0mPiBBdWRpb1BhcmFtOjpzZXRWYWx1ZUN1cnZlQXRUaW1lKFZlY3RvcjxmbG9hdD4m
JiBjdXJ2ZSwKICAgICBpZiAoZHVyYXRpb24gPD0gMCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFJhbmdlRXJyb3IsICJkdXJhdGlvbiBtdXN0IGJlIGEgc3RyaWN0bHkgcG9zaXRpdmUgdmFs
dWUiX3MgfTsKIAotICAgIHN0YXJ0VGltZSA9IHN0ZDo6bWF4KHN0YXJ0VGltZSwgY29udGV4dCgp
LmN1cnJlbnRUaW1lKCkpOworICAgIHN0YXJ0VGltZSA9IHN0ZDo6bWF4KHN0YXJ0VGltZSwgY29u
dGV4dCgpLT5jdXJyZW50VGltZSgpKTsKICAgICBhdXRvIHJlc3VsdCA9IG1fdGltZWxpbmUuc2V0
VmFsdWVDdXJ2ZUF0VGltZShXVEZNb3ZlKGN1cnZlKSwgU2Vjb25kcyB7IHN0YXJ0VGltZSB9LCBT
ZWNvbmRzIHsgZHVyYXRpb24gfSk7CiAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAg
ICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CkBAIC0yMzcsNyArMjU2LDEw
IEBAIGJvb2wgQXVkaW9QYXJhbTo6aGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMoKSBjb25zdAogICAg
IGlmIChudW1iZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCkpCiAgICAgICAgIHJldHVybiB0cnVl
OwogCi0gICAgcmV0dXJuIG1fdGltZWxpbmUuaGFzVmFsdWVzKGNvbnRleHQoKS5jdXJyZW50U2Ft
cGxlRnJhbWUoKSwgY29udGV4dCgpLnNhbXBsZVJhdGUoKSk7CisgICAgaWYgKCFjb250ZXh0KCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBtX3RpbWVsaW5lLmhhc1ZhbHVl
cyhjb250ZXh0KCktPmN1cnJlbnRTYW1wbGVGcmFtZSgpLCBjb250ZXh0KCktPnNhbXBsZVJhdGUo
KSk7CiB9CiAKIGZsb2F0IEF1ZGlvUGFyYW06OmZpbmFsVmFsdWUoKQpAQCAtMjQ5LDcgKzI3MSw3
IEBAIGZsb2F0IEF1ZGlvUGFyYW06OmZpbmFsVmFsdWUoKQogCiB2b2lkIEF1ZGlvUGFyYW06OmNh
bGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKGZsb2F0KiB2YWx1ZXMsIHVuc2lnbmVkIG51bWJl
ck9mVmFsdWVzKQogewotICAgIGJvb2wgaXNTYWZlID0gY29udGV4dCgpLmlzQXVkaW9UaHJlYWQo
KSAmJiB2YWx1ZXMgJiYgbnVtYmVyT2ZWYWx1ZXM7CisgICAgYm9vbCBpc1NhZmUgPSBjb250ZXh0
KCkgJiYgY29udGV4dCgpLT5pc0F1ZGlvVGhyZWFkKCkgJiYgdmFsdWVzICYmIG51bWJlck9mVmFs
dWVzOwogICAgIEFTU0VSVChpc1NhZmUpOwogICAgIGlmICghaXNTYWZlKQogICAgICAgICByZXR1
cm47CkBAIC0yNTksNyArMjgxLDcgQEAgdm9pZCBBdWRpb1BhcmFtOjpjYWxjdWxhdGVTYW1wbGVB
Y2N1cmF0ZVZhbHVlcyhmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1iZXJPZlYKIAogdm9pZCBB
dWRpb1BhcmFtOjpjYWxjdWxhdGVGaW5hbFZhbHVlcyhmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBu
dW1iZXJPZlZhbHVlcywgYm9vbCBzYW1wbGVBY2N1cmF0ZSkKIHsKLSAgICBib29sIGlzR29vZCA9
IGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkgJiYgdmFsdWVzICYmIG51bWJlck9mVmFsdWVzOwor
ICAgIGJvb2wgaXNHb29kID0gY29udGV4dCgpICYmIGNvbnRleHQoKS0+aXNBdWRpb1RocmVhZCgp
ICYmIHZhbHVlcyAmJiBudW1iZXJPZlZhbHVlczsKICAgICBBU1NFUlQoaXNHb29kKTsKICAgICBp
ZiAoIWlzR29vZCkKICAgICAgICAgcmV0dXJuOwpAQCAtMjcxLDcgKzI5Myw3IEBAIHZvaWQgQXVk
aW9QYXJhbTo6Y2FsY3VsYXRlRmluYWxWYWx1ZXMoZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVt
YmVyT2ZWYWx1ZXMsIGJvCiAgICAgICAgIGNhbGN1bGF0ZVRpbWVsaW5lVmFsdWVzKHZhbHVlcywg
bnVtYmVyT2ZWYWx1ZXMpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIENhbGN1bGF0ZSBjb250
cm9sLXJhdGUgKGstcmF0ZSkgaW50cmluc2ljIHZhbHVlLgotICAgICAgICBhdXRvIHRpbWVsaW5l
VmFsdWUgPSBtX3RpbWVsaW5lLnZhbHVlRm9yQ29udGV4dFRpbWUoY29udGV4dCgpLCBtX3ZhbHVl
LCBtaW5WYWx1ZSgpLCBtYXhWYWx1ZSgpKTsKKyAgICAgICAgYXV0byB0aW1lbGluZVZhbHVlID0g
bV90aW1lbGluZS52YWx1ZUZvckNvbnRleHRUaW1lKCpjb250ZXh0KCksIG1fdmFsdWUsIG1pblZh
bHVlKCksIG1heFZhbHVlKCkpOwogCiAgICAgICAgIGlmICh0aW1lbGluZVZhbHVlKQogICAgICAg
ICAgICAgbV92YWx1ZSA9ICp0aW1lbGluZVZhbHVlOwpAQCAtMzEzLDEwICszMzUsMTMgQEAgdm9p
ZCBBdWRpb1BhcmFtOjpjYWxjdWxhdGVGaW5hbFZhbHVlcyhmbG9hdCogdmFsdWVzLCB1bnNpZ25l
ZCBudW1iZXJPZlZhbHVlcywgYm8KIAogdm9pZCBBdWRpb1BhcmFtOjpjYWxjdWxhdGVUaW1lbGlu
ZVZhbHVlcyhmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1iZXJPZlZhbHVlcykKIHsKKyAgICBp
ZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gQ2FsY3VsYXRlIHZhbHVl
cyBmb3IgdGhpcyByZW5kZXIgcXVhbnR1bS4KICAgICAvLyBOb3JtYWxseSBudW1iZXJPZlZhbHVl
cyB3aWxsIGVxdWFsIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSAodGhlIHJlbmRl
ciBxdWFudHVtIHNpemUpLgotICAgIGRvdWJsZSBzYW1wbGVSYXRlID0gY29udGV4dCgpLnNhbXBs
ZVJhdGUoKTsKLSAgICBzaXplX3Qgc3RhcnRGcmFtZSA9IGNvbnRleHQoKS5jdXJyZW50U2FtcGxl
RnJhbWUoKTsKKyAgICBkb3VibGUgc2FtcGxlUmF0ZSA9IGNvbnRleHQoKS0+c2FtcGxlUmF0ZSgp
OworICAgIHNpemVfdCBzdGFydEZyYW1lID0gY29udGV4dCgpLT5jdXJyZW50U2FtcGxlRnJhbWUo
KTsKICAgICBzaXplX3QgZW5kRnJhbWUgPSBzdGFydEZyYW1lICsgbnVtYmVyT2ZWYWx1ZXM7CiAK
ICAgICAvLyBOb3RlIHdlJ3JlIHJ1bm5pbmcgY29udHJvbCByYXRlIGF0IHRoZSBzYW1wbGUtcmF0
ZS4KQEAgLTMyNiw3ICszNTEsOCBAQCB2b2lkIEF1ZGlvUGFyYW06OmNhbGN1bGF0ZVRpbWVsaW5l
VmFsdWVzKGZsb2F0KiB2YWx1ZXMsIHVuc2lnbmVkIG51bWJlck9mVmFsdWVzKQogCiB2b2lkIEF1
ZGlvUGFyYW06OmNvbm5lY3QoQXVkaW9Ob2RlT3V0cHV0KiBvdXRwdXQpCiB7Ci0gICAgQVNTRVJU
KGNvbnRleHQoKS5pc0dyYXBoT3duZXIoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAg
QVNTRVJUKGNvbnRleHQoKS0+aXNHcmFwaE93bmVyKCkpOwogCiAgICAgQVNTRVJUKG91dHB1dCk7
CiAgICAgaWYgKCFvdXRwdXQpCkBAIC0zNDEsNyArMzY3LDggQEAgdm9pZCBBdWRpb1BhcmFtOjpj
b25uZWN0KEF1ZGlvTm9kZU91dHB1dCogb3V0cHV0KQogCiB2b2lkIEF1ZGlvUGFyYW06OmRpc2Nv
bm5lY3QoQXVkaW9Ob2RlT3V0cHV0KiBvdXRwdXQpCiB7Ci0gICAgQVNTRVJUKGNvbnRleHQoKS5p
c0dyYXBoT3duZXIoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAgQVNTRVJUKGNvbnRl
eHQoKS0+aXNHcmFwaE93bmVyKCkpOwogCiAgICAgQVNTRVJUKG91dHB1dCk7CiAgICAgaWYgKCFv
dXRwdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
U3VtbWluZ0p1bmN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9TdW1taW5nSnVuY3Rpb24uY3BwCmluZGV4IDU3NDU0M2ZlOWE4M2Q3ZTc4MzFiMmM5NDU0YzMw
MjE3MTZhMWJiOWUuLjY1OWZlZTRhMDNiODIxODk5YzFiNmM1OGM0MTUxZTY2YTQ3YWFjN2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVu
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1t
aW5nSnVuY3Rpb24uY3BwCkBAIC0zNSwyOCArMzUsMzAgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogQXVkaW9TdW1taW5nSnVuY3Rpb246OkF1ZGlvU3VtbWluZ0p1bmN0aW9uKEJhc2VBdWRpb0Nv
bnRleHQmIGNvbnRleHQpCi0gICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICA6IG1fY29udGV4
dChtYWtlV2Vha1B0cihjb250ZXh0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6
Tm8pKSAvLyBXZWJBdWRpbyBjb2RlIHVzZXMgbG9ja2luZyB3aGVuIGFjY2Vzc2luZyB0aGUgY29u
dGV4dC4KIHsKIH0KIAogQXVkaW9TdW1taW5nSnVuY3Rpb246On5BdWRpb1N1bW1pbmdKdW5jdGlv
bigpCiB7Ci0gICAgaWYgKG1fcmVuZGVyaW5nU3RhdGVOZWVkVXBkYXRpbmcpCi0gICAgICAgIGNv
bnRleHQoKS5yZW1vdmVNYXJrZWRTdW1taW5nSnVuY3Rpb24odGhpcyk7CisgICAgaWYgKG1fcmVu
ZGVyaW5nU3RhdGVOZWVkVXBkYXRpbmcgJiYgY29udGV4dCgpKQorICAgICAgICBjb250ZXh0KCkt
PnJlbW92ZU1hcmtlZFN1bW1pbmdKdW5jdGlvbih0aGlzKTsKIH0KIAogdm9pZCBBdWRpb1N1bW1p
bmdKdW5jdGlvbjo6bWFya1JlbmRlcmluZ1N0YXRlQXNEaXJ0eSgpCiB7Ci0gICAgQVNTRVJUKGNv
bnRleHQoKS5pc0dyYXBoT3duZXIoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAgQVNT
RVJUKGNvbnRleHQoKS0+aXNHcmFwaE93bmVyKCkpOwogICAgIGlmICghbV9yZW5kZXJpbmdTdGF0
ZU5lZWRVcGRhdGluZyAmJiBjYW5VcGRhdGVTdGF0ZSgpKSB7Ci0gICAgICAgIGNvbnRleHQoKS5t
YXJrU3VtbWluZ0p1bmN0aW9uRGlydHkodGhpcyk7CisgICAgICAgIGNvbnRleHQoKS0+bWFya1N1
bW1pbmdKdW5jdGlvbkRpcnR5KHRoaXMpOwogICAgICAgICBtX3JlbmRlcmluZ1N0YXRlTmVlZFVw
ZGF0aW5nID0gdHJ1ZTsKICAgICB9CiB9CiAKIGJvb2wgQXVkaW9TdW1taW5nSnVuY3Rpb246OmFk
ZE91dHB1dChBdWRpb05vZGVPdXRwdXQmIG91dHB1dCkKIHsKLSAgICBBU1NFUlQoY29udGV4dCgp
LmlzR3JhcGhPd25lcigpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpKTsKKyAgICBBU1NFUlQoY29u
dGV4dCgpLT5pc0dyYXBoT3duZXIoKSk7CiAgICAgaWYgKCFtX291dHB1dHMuYWRkKCZvdXRwdXQp
LmlzTmV3RW50cnkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNzQsNyArNzYsOCBAQCBi
b29sIEF1ZGlvU3VtbWluZ0p1bmN0aW9uOjphZGRPdXRwdXQoQXVkaW9Ob2RlT3V0cHV0JiBvdXRw
dXQpCiAKIGJvb2wgQXVkaW9TdW1taW5nSnVuY3Rpb246OnJlbW92ZU91dHB1dChBdWRpb05vZGVP
dXRwdXQmIG91dHB1dCkKIHsKLSAgICBBU1NFUlQoY29udGV4dCgpLmlzR3JhcGhPd25lcigpKTsK
KyAgICBBU1NFUlQoY29udGV4dCgpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpLT5pc0dyYXBoT3du
ZXIoKSk7CiAgICAgaWYgKCFtX291dHB1dHMucmVtb3ZlKCZvdXRwdXQpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKQEAgLTk0LDcgKzk3LDggQEAgYm9vbCBBdWRpb1N1bW1pbmdKdW5jdGlvbjo6
cmVtb3ZlT3V0cHV0KEF1ZGlvTm9kZU91dHB1dCYgb3V0cHV0KQogCiB2b2lkIEF1ZGlvU3VtbWlu
Z0p1bmN0aW9uOjp1cGRhdGVSZW5kZXJpbmdTdGF0ZSgpCiB7Ci0gICAgQVNTRVJUKGNvbnRleHQo
KS5pc0F1ZGlvVGhyZWFkKCkgJiYgY29udGV4dCgpLmlzR3JhcGhPd25lcigpKTsKKyAgICBBU1NF
UlQoY29udGV4dCgpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpLT5pc0F1ZGlvVGhyZWFkKCkgJiYg
Y29udGV4dCgpLT5pc0dyYXBoT3duZXIoKSk7CiAKICAgICBpZiAobV9yZW5kZXJpbmdTdGF0ZU5l
ZWRVcGRhdGluZyAmJiBjYW5VcGRhdGVTdGF0ZSgpKSB7CiAgICAgICAgIC8vIENvcHkgZnJvbSBt
X291dHB1dHMgdG8gbV9yZW5kZXJpbmdPdXRwdXRzLgpAQCAtMTI4LDcgKzEzMiw4IEBAIHVuc2ln
bmVkIEF1ZGlvU3VtbWluZ0p1bmN0aW9uOjptYXhpbXVtTnVtYmVyT2ZDaGFubmVscygpIGNvbnN0
CiAKIHZvaWQgQXVkaW9TdW1taW5nSnVuY3Rpb246Om91dHB1dEVuYWJsZWRTdGF0ZUNoYW5nZWQo
QXVkaW9Ob2RlT3V0cHV0JiBvdXRwdXQpCiB7Ci0gICAgQVNTRVJUKGNvbnRleHQoKS5pc0dyYXBo
T3duZXIoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKS0+
aXNHcmFwaE93bmVyKCkpOwogICAgIGlmICghbV9wZW5kaW5nUmVuZGVyaW5nT3V0cHV0cykgewog
ICAgICAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1ZGlvIHRo
cmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCiAgICAgICAgIC8vIGV4
cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMpLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlvbi5oCmlu
ZGV4IDA3OWJiNDI0MTE5ZWU3NWQzMTAzMWZkYmVjNzQ4NmQ3NTE4MjNlYmYuLjM0NTc0ZmQ4MGEz
YTdhMDhmNmZhYTM2NmU3NTM3ZTJhNDIyNjg4ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmgKQEAgLTI4LDYgKzI4
LDcgQEAKICNpbmNsdWRlIDxpdGVyYXRvcj4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTQyLDggKzQzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkF1
ZGlvU3VtbWluZ0p1bmN0aW9uKCk7CiAKICAgICAvLyBDYW4gYmUgY2FsbGVkIGZyb20gYW55IHRo
cmVhZC4KLSAgICBCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0
OyB9Ci0gICAgY29uc3QgQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCgpIGNvbnN0IHsgcmV0dXJu
IG1fY29udGV4dDsgfQorICAgIEJhc2VBdWRpb0NvbnRleHQqIGNvbnRleHQoKSB7IHJldHVybiBt
X2NvbnRleHQuZ2V0KCk7IH0KKyAgICBjb25zdCBCYXNlQXVkaW9Db250ZXh0KiBjb250ZXh0KCkg
Y29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAKICAgICAvLyBUaGlzIGNvcGllcyBt
X291dHB1dHMgdG8gbV9yZW5kZXJpbmdPdXRwdXRzLiBQbGVhc2Ugc2VlIGNvbW1lbnRzIGZvciB0
aGVzZSBsaXN0cyBiZWxvdy4KICAgICAvLyBUaGlzIG11c3QgYmUgY2FsbGVkIHdoZW4gd2Ugb3du
IHRoZSBjb250ZXh0J3MgZ3JhcGggbG9jayBpbiB0aGUgYXVkaW8gdGhyZWFkIGF0IHRoZSB2ZXJ5
IHN0YXJ0IG9yIGVuZCBvZiB0aGUgcmVuZGVyIHF1YW50dW0uCkBAIC0xMzQsNyArMTM1LDcgQEAg
cHJvdGVjdGVkOgogICAgIHVuc2lnbmVkIG1heGltdW1OdW1iZXJPZkNoYW5uZWxzKCkgY29uc3Q7
CiAKIHByaXZhdGU6Ci0gICAgUmVmPEJhc2VBdWRpb0NvbnRleHQ+IG1fY29udGV4dDsKKyAgICBX
ZWFrUHRyPEJhc2VBdWRpb0NvbnRleHQ+IG1fY29udGV4dDsKIAogICAgIC8vIG1fcmVuZGVyaW5n
T3V0cHV0cyBpcyBhIGNvcHkgb2YgbV9vdXRwdXRzIHdoaWNoIHdpbGwgbmV2ZXIgYmUgbW9kaWZp
ZWQgZHVyaW5nIHRoZSBncmFwaCByZW5kZXJpbmcgb24gdGhlIGF1ZGlvIHRocmVhZC4KICAgICAv
LyBUaGlzIGlzIHRoZSBsaXN0IHdoaWNoIGlzIHVzZWQgYnkgdGhlIHJlbmRlcmluZyBjb2RlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4
dC5jcHAKaW5kZXggNWZhMGRmMDM2YmNjOGNjMWE1MWQ4YTcwMDEzNzliOGNjZmRkNzBiYS4uNWUz
ZjFhYzZjMjYwNDBkOGJmZDc1YTM5MzNiOGU1NDE3YmRmZjg1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCkBAIC0xMTUs
NiArMTE1LDcgQEAgYm9vbCBCYXNlQXVkaW9Db250ZXh0Ojppc1N1cHBvcnRlZFNhbXBsZVJhdGUo
ZmxvYXQgc2FtcGxlUmF0ZSkKICAgICByZXR1cm4gc2FtcGxlUmF0ZSA+PSAzMDAwICYmIHNhbXBs
ZVJhdGUgPD0gMzg0MDAwOwogfQogCitzdGF0aWMgdW5zaWduZWQgbnVtYmVyT2ZCYXNlQXVkaW9D
b250ZXh0cyA9IDA7CiB1bnNpZ25lZCBCYXNlQXVkaW9Db250ZXh0OjpzX2hhcmR3YXJlQ29udGV4
dENvdW50ID0gMDsKIAogLy8gQ29uc3RydWN0b3IgZm9yIHJlbmRlcmluZyB0byB0aGUgYXVkaW8g
aGFyZHdhcmUuCkBAIC0xMjUsMTYgKzEyNiwxNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVk
aW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgSXNMZWdhY3lXZWJLaXRBdWRpb0NvbnRleAog
ICAgICwgbV9sb2dJZGVudGlmaWVyKHVuaXF1ZUxvZ0lkZW50aWZpZXIoKSkKICNlbmRpZgogICAg
ICwgbV93b3JrbGV0KEF1ZGlvV29ya2xldDo6Y3JlYXRlKCp0aGlzKSkKKyAgICAsIG1fZGVzdGlu
YXRpb25Ob2RlKG1ha2VVbmlxdWVSZWY8RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlPigqdGhp
cywgY29udGV4dE9wdGlvbnMuc2FtcGxlUmF0ZSkpCiAgICAgLCBtX2xpc3RlbmVyKGlzTGVnYWN5
V2ViS2l0QXVkaW9Db250ZXh0ID09IElzTGVnYWN5V2ViS2l0QXVkaW9Db250ZXh0OjpZZXMgPyBS
ZWY8QXVkaW9MaXN0ZW5lcj4oV2ViS2l0QXVkaW9MaXN0ZW5lcjo6Y3JlYXRlKCp0aGlzKSkgOiBB
dWRpb0xpc3RlbmVyOjpjcmVhdGUoKnRoaXMpKQogeworICAgICsrbnVtYmVyT2ZCYXNlQXVkaW9D
b250ZXh0czsKKwogICAgIC8vIEFjY29yZGluZyB0byBzcGVjIEF1ZGlvQ29udGV4dCBtdXN0IGRp
ZSBvbmx5IGFmdGVyIHBhZ2UgbmF2aWdhdGUuCiAgICAgLy8gTGV0cyBtYXJrIGl0IGFzIEFjdGl2
ZURPTU9iamVjdCB3aXRoIHBlbmRpbmcgYWN0aXZpdHkgYW5kIHVubWFyayBpdCBpbiBjbGVhciBt
ZXRob2QuCi0gICAgbWFrZVBlbmRpbmdBY3Rpdml0eSgpOworICAgIHNldFBlbmRpbmdBY3Rpdml0
eSgpOwogCiAgICAgRkZURnJhbWU6OmluaXRpYWxpemUoKTsKIAotICAgIG1fZGVzdGluYXRpb25O
b2RlID0gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpjcmVhdGUoKnRoaXMsIGNvbnRleHRP
cHRpb25zLnNhbXBsZVJhdGUpOwotCiAgICAgLy8gVW5saWtlIE9mZmxpbmVBdWRpb0NvbnRleHQs
IEF1ZGlvQ29udGV4dCBkb2VzIG5vdCByZXF1aXJlIGNhbGxpbmcgcmVzdW1lKCkgdG8gc3RhcnQg
cmVuZGVyaW5nLgogICAgIC8vIExhenkgaW5pdGlhbGl6YXRpb24gc3RhcnRzIHJlbmRlcmluZyBz
byB3ZSBzY2hlZHVsZSBhIHRhc2sgaGVyZSB0byBtYWtlIHN1cmUgbGF6eSBpbml0aWFsaXphdGlv
bgogICAgIC8vIGVuZHMgdXAgaGFwcGVuaW5nLCBldmVuIGlmIG5vIGF1ZGlvIG5vZGUgZ2V0cyBj
b25zdHJ1Y3RlZC4KQEAgLTE1NiwyMSArMTU4LDIwIEBAIEJhc2VBdWRpb0NvbnRleHQ6OkJhc2VB
dWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBJc0xlZ2FjeVdlYktpdEF1ZGlvQ29udGV4
CiAgICAgLCBtX3dvcmtsZXQoQXVkaW9Xb3JrbGV0OjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV9p
c09mZmxpbmVDb250ZXh0KHRydWUpCiAgICAgLCBtX3JlbmRlclRhcmdldChXVEZNb3ZlKHJlbmRl
clRhcmdldCkpCisgICAgLCBtX2Rlc3RpbmF0aW9uTm9kZShtYWtlVW5pcXVlUmVmPE9mZmxpbmVB
dWRpb0Rlc3RpbmF0aW9uTm9kZT4oKnRoaXMsIG51bWJlck9mQ2hhbm5lbHMsIHNhbXBsZVJhdGUs
IG1fcmVuZGVyVGFyZ2V0LmNvcHlSZWYoKSkpCiAgICAgLCBtX2xpc3RlbmVyKGlzTGVnYWN5V2Vi
S2l0QXVkaW9Db250ZXh0ID09IElzTGVnYWN5V2ViS2l0QXVkaW9Db250ZXh0OjpZZXMgPyBSZWY8
QXVkaW9MaXN0ZW5lcj4oV2ViS2l0QXVkaW9MaXN0ZW5lcjo6Y3JlYXRlKCp0aGlzKSkgOiBBdWRp
b0xpc3RlbmVyOjpjcmVhdGUoKnRoaXMpKQogeworICAgICsrbnVtYmVyT2ZCYXNlQXVkaW9Db250
ZXh0czsKICAgICBGRlRGcmFtZTo6aW5pdGlhbGl6ZSgpOwotCi0gICAgLy8gQ3JlYXRlIGEgbmV3
IGRlc3RpbmF0aW9uIGZvciBvZmZsaW5lIHJlbmRlcmluZy4KLSAgICBtX2Rlc3RpbmF0aW9uTm9k
ZSA9IE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6Y3JlYXRlKCp0aGlzLCBudW1iZXJPZkNo
YW5uZWxzLCBzYW1wbGVSYXRlLCBtX3JlbmRlclRhcmdldC5jb3B5UmVmKCkpOwogfQogCiBCYXNl
QXVkaW9Db250ZXh0Ojp+QmFzZUF1ZGlvQ29udGV4dCgpCiB7CisgICAgQVNTRVJUKG51bWJlck9m
QmFzZUF1ZGlvQ29udGV4dHMpOworICAgIC0tbnVtYmVyT2ZCYXNlQXVkaW9Db250ZXh0czsKICNp
ZiBERUJVR19BVURJT05PREVfUkVGRVJFTkNFUwogICAgIGZwcmludGYoc3RkZXJyLCAiJXA6IEJh
c2VBdWRpb0NvbnRleHQ6On5BdWRpb0NvbnRleHQoKVxuIiwgdGhpcyk7CiAjZW5kaWYKLSAgICBB
U1NFUlQoIW1faXNJbml0aWFsaXplZCk7Ci0gICAgQVNTRVJUKG1faXNTdG9wU2NoZWR1bGVkKTsK
ICAgICBBU1NFUlQobV9ub2Rlc1RvRGVsZXRlLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKG1fcmVm
ZXJlbmNlZFNvdXJjZU5vZGVzLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKG1fYXV0b21hdGljUHVs
bE5vZGVzLmlzRW1wdHkoKSk7CkBAIC0xODAsNiArMTgxLDExIEBAIEJhc2VBdWRpb0NvbnRleHQ6
On5CYXNlQXVkaW9Db250ZXh0KCkKICAgICAvLyBGSVhNRTogQ2FuIHdlIGFzc2VydCB0aGF0IG1f
ZGVmZXJyZWRCcmVha0Nvbm5lY3Rpb25MaXN0IGlzIGVtcHR5PwogfQogCit1bnNpZ25lZCBCYXNl
QXVkaW9Db250ZXh0OjpudW1iZXJPZkluc3RhbmNlcygpCit7CisgICAgcmV0dXJuIG51bWJlck9m
QmFzZUF1ZGlvQ29udGV4dHM7Cit9CisKIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6bGF6eUluaXRp
YWxpemUoKQogewogICAgIGlmIChpc1N0b3BwZWQoKSkKQEAgLTE5Myw4ICsxOTksNyBAQCB2b2lk
IEJhc2VBdWRpb0NvbnRleHQ6OmxhenlJbml0aWFsaXplKCkKICAgICBpZiAobV9pc0F1ZGlvVGhy
ZWFkRmluaXNoZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2Rlc3RpbmF0aW9uTm9k
ZSkKLSAgICAgICAgbV9kZXN0aW5hdGlvbk5vZGUtPmluaXRpYWxpemUoKTsKKyAgICBtX2Rlc3Rp
bmF0aW9uTm9kZS0+aW5pdGlhbGl6ZSgpOwogCiAgICAgbV9pc0luaXRpYWxpemVkID0gdHJ1ZTsK
IH0KQEAgLTIwMywxMCArMjA4LDYgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpjbGVhcigpCiB7
CiAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CiAKLSAgICAvLyBXZSBo
YXZlIHRvIHJlbGVhc2Ugb3VyIHJlZmVyZW5jZSB0byB0aGUgZGVzdGluYXRpb24gbm9kZSBiZWZv
cmUgdGhlIGNvbnRleHQgd2lsbCBldmVyIGJlIGRlbGV0ZWQgc2luY2UgdGhlIGRlc3RpbmF0aW9u
IG5vZGUgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlIGNvbnRleHQuCi0gICAgaWYgKG1fZGVzdGlu
YXRpb25Ob2RlKQotICAgICAgICBtX2Rlc3RpbmF0aW9uTm9kZSA9IG51bGxwdHI7Ci0KICAgICAv
LyBBdWRpbyB0aHJlYWQgaXMgZGVhZC4gTm9ib2R5IHdpbGwgc2NoZWR1bGUgbm9kZSBkZWxldGlv
biBhY3Rpb24uIExldCdzIGRvIGl0IG91cnNlbHZlcy4KICAgICBkbyB7CiAgICAgICAgIGRlbGV0
ZU1hcmtlZE5vZGVzKCk7CkBAIC0yMjYsOCArMjI3LDcgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0
Ojp1bmluaXRpYWxpemUoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBUaGlzIHN0b3BzIHRo
ZSBhdWRpbyB0aHJlYWQgYW5kIGFsbCBhdWRpbyByZW5kZXJpbmcuCi0gICAgaWYgKG1fZGVzdGlu
YXRpb25Ob2RlKQotICAgICAgICBtX2Rlc3RpbmF0aW9uTm9kZS0+dW5pbml0aWFsaXplKCk7Cisg
ICAgbV9kZXN0aW5hdGlvbk5vZGUtPnVuaW5pdGlhbGl6ZSgpOwogCiAgICAgLy8gRG9uJ3QgYWxs
b3cgdGhlIGNvbnRleHQgdG8gaW5pdGlhbGl6ZSBhIHNlY29uZCB0aW1lIGFmdGVyIGl0J3MgYWxy
ZWFkeSBiZWVuIGV4cGxpY2l0bHkgdW5pbml0aWFsaXplZC4KICAgICBtX2lzQXVkaW9UaHJlYWRG
aW5pc2hlZCA9IHRydWU7CkBAIC0yOTIsNiArMjkyLDcgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0
OjpzdG9wKCkKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogICAgIAogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyk7CiAKICAgICAvLyBVc3VhbGx5IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgY2FsbHMgc3RvcCB0
d2ljZS4KICAgICBpZiAobV9pc1N0b3BTY2hlZHVsZWQpCkBAIC0zMTcsNyArMzE4LDcgQEAgRG9j
dW1lbnQqIEJhc2VBdWRpb0NvbnRleHQ6OmRvY3VtZW50KCkgY29uc3QKIAogZmxvYXQgQmFzZUF1
ZGlvQ29udGV4dDo6c2FtcGxlUmF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fZGVzdGluYXRp
b25Ob2RlID8gbV9kZXN0aW5hdGlvbk5vZGUtPnNhbXBsZVJhdGUoKSA6IEF1ZGlvRGVzdGluYXRp
b246OmhhcmR3YXJlU2FtcGxlUmF0ZSgpOworICAgIHJldHVybiBtX2Rlc3RpbmF0aW9uTm9kZS0+
c2FtcGxlUmF0ZSgpOwogfQogCiBib29sIEJhc2VBdWRpb0NvbnRleHQ6OndvdWxkVGFpbnRPcmln
aW4oY29uc3QgVVJMJiB1cmwpIGNvbnN0CkBAIC0zNDYsNyArMzQ3LDcgQEAgdm9pZCBCYXNlQXVk
aW9Db250ZXh0OjpkZWNvZGVBdWRpb0RhdGEoUmVmPEFycmF5QnVmZmVyPiYmIGF1ZGlvRGF0YSwg
UmVmUHRyPEF1ZGkKICAgICBpZiAoIW1fYXVkaW9EZWNvZGVyKQogICAgICAgICBtX2F1ZGlvRGVj
b2RlciA9IG1ha2VVbmlxdWU8QXN5bmNBdWRpb0RlY29kZXI+KCk7CiAKLSAgICBtX2F1ZGlvRGVj
b2Rlci0+ZGVjb2RlQXN5bmMoV1RGTW92ZShhdWRpb0RhdGEpLCBzYW1wbGVSYXRlKCksIFt0aGlz
LCBhY3Rpdml0eSA9IEFjdGl2ZURPTU9iamVjdDo6bWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyks
IHN1Y2Nlc3NDYWxsYmFjayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgZXJyb3JDYWxsYmFj
ayA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShF
eGNlcHRpb25PcjxSZWY8QXVkaW9CdWZmZXI+PiYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgbV9h
dWRpb0RlY29kZXItPmRlY29kZUFzeW5jKFdURk1vdmUoYXVkaW9EYXRhKSwgc2FtcGxlUmF0ZSgp
LCBbdGhpcywgYWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKSwgc3VjY2Vzc0Nh
bGxiYWNrID0gV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBlcnJvckNhbGxiYWNrID0gV1RGTW92
ZShlcnJvckNhbGxiYWNrKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlvbk9y
PFJlZjxBdWRpb0J1ZmZlcj4+JiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgcXVldWVUYXNr
S2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpJbnRlcm5hbEFzeW5jVGFzaywg
W3N1Y2Nlc3NDYWxsYmFjayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgZXJyb3JDYWxsYmFj
ayA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBy
ZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAocmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHByb21pc2UpCkBAIC03
NTksNiArNzYwLDcgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpoYW5kbGVEZWZlcnJlZERlY3Jl
bWVudENvbm5lY3Rpb25Db3VudHMoKQogdm9pZCBCYXNlQXVkaW9Db250ZXh0OjptYXJrRm9yRGVs
ZXRpb24oQXVkaW9Ob2RlJiBub2RlKQogewogICAgIEFTU0VSVChpc0dyYXBoT3duZXIoKSk7Cisg
ICAgQVNTRVJUX1dJVEhfTUVTU0FHRShub2RlLm5vZGVUeXBlKCkgIT0gQXVkaW9Ob2RlOjpOb2Rl
VHlwZURlc3RpbmF0aW9uLCAiRGVzdGluYXRpb24gbm9kZSBpcyBvd25lZCBieSB0aGUgQmFzZUF1
ZGlvQ29udGV4dCIpOwogCiAgICAgaWYgKGlzQXVkaW9UaHJlYWRGaW5pc2hlZCgpKQogICAgICAg
ICBtX25vZGVzVG9EZWxldGUuYXBwZW5kKCZub2RlKTsKQEAgLTgyMSw2ICs4MjMsOCBAQCB2b2lk
IEJhc2VBdWRpb0NvbnRleHQ6OmRlbGV0ZU1hcmtlZE5vZGVzKCkKICAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZk91dHB1dHM7ICsraSkKICAgICAgICAgICAgICAg
ICBtX2RpcnR5QXVkaW9Ob2RlT3V0cHV0cy5yZW1vdmUobm9kZS0+b3V0cHV0KGkpKTsKIAorICAg
ICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShub2RlLT5ub2RlVHlwZSgpICE9IEF1ZGlvTm9k
ZTo6Tm9kZVR5cGVEZXN0aW5hdGlvbiwgIkRlc3RpbmF0aW9uIG5vZGUgaXMgb3duZWQgYnkgdGhl
IEJhc2VBdWRpb0NvbnRleHQiKTsKKwogICAgICAgICAgICAgLy8gRmluYWxseSwgZGVsZXRlIGl0
LgogICAgICAgICAgICAgZGVsZXRlIG5vZGU7CiAgICAgICAgIH0KQEAgLTEwMjgsMTAgKzEwMzIs
MTAgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpjbGVhclBlbmRpbmdBY3Rpdml0eSgpCiAgICAg
bV9wZW5kaW5nQWN0aXZpdHkgPSBudWxscHRyOwogfQogCi12b2lkIEJhc2VBdWRpb0NvbnRleHQ6
Om1ha2VQZW5kaW5nQWN0aXZpdHkoKQordm9pZCBCYXNlQXVkaW9Db250ZXh0OjpzZXRQZW5kaW5n
QWN0aXZpdHkoKQogewogICAgIGlmICghbV9wZW5kaW5nQWN0aXZpdHkpCi0gICAgICAgIG1fcGVu
ZGluZ0FjdGl2aXR5ID0gQWN0aXZlRE9NT2JqZWN0OjptYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlz
KTsKKyAgICAgICAgbV9wZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlz
KTsKIH0KIAogUGVyaW9kaWNXYXZlJiBCYXNlQXVkaW9Db250ZXh0OjpwZXJpb2RpY1dhdmUoT3Nj
aWxsYXRvclR5cGUgdHlwZSkKQEAgLTEwODcsOCArMTA5MSw3IEBAIHZvaWQgQmFzZUF1ZGlvQ29u
dGV4dDo6d29ya2xldElzUmVhZHkoKQogCiAgICAgLy8gSWYgd2UncmUgYWxyZWFkeSByZW5kZXJp
bmcgd2hlbiB0aGUgd29ya2xldCBiZWNvbWVzIHJlYWR5LCB3ZSBuZWVkIHRvIHJlc3RhcnQKICAg
ICAvLyByZW5kZXJpbmcgaW4gb3JkZXIgdG8gc3dpdGNoIHRvIHRoZSBhdWRpbyB3b3JrbGV0IHRo
cmVhZC4KLSAgICBpZiAobV9kZXN0aW5hdGlvbk5vZGUpCi0gICAgICAgIG1fZGVzdGluYXRpb25O
b2RlLT5yZXN0YXJ0UmVuZGVyaW5nKCk7CisgICAgbV9kZXN0aW5hdGlvbk5vZGUtPnJlc3RhcnRS
ZW5kZXJpbmcoKTsKIH0KIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaAppbmRleCA5ZDlh
NGE5Yzg5NjM0ZTk3NWQzYmViZWFiNTEwOTIxMmRiZDc0YjkxLi40YmVlMTczZTI3MzI3MzdmYzVh
MTUxZDRjYWYwZDUxZTZkODMxOTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaApAQCAtMTA3LDE1ICsxMDcsMTkgQEAgcHVibGlj
OgogICAgIHVzaW5nIFRocmVhZFNhZmVSZWZDb3VudGVkOjpyZWY7CiAgICAgdXNpbmcgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ6OmRlcmVmOwogCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHVuc2ln
bmVkIG51bWJlck9mSW5zdGFuY2VzKCk7CisKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25z
dDsKICAgICBib29sIGlzSW5pdGlhbGl6ZWQoKSBjb25zdDsKICAgICAKICAgICBib29sIGlzT2Zm
bGluZUNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2lzT2ZmbGluZUNvbnRleHQ7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNXZWJLaXRBdWRpb0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogCi0gICAgQXVkaW9EZXN0aW5hdGlvbk5vZGUqIGRlc3RpbmF0aW9uKCkgeyByZXR1cm4gbV9k
ZXN0aW5hdGlvbk5vZGUuZ2V0KCk7IH0KLSAgICBzaXplX3QgY3VycmVudFNhbXBsZUZyYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbk5vZGUgPyBtX2Rlc3RpbmF0aW9uTm9kZS0+Y3Vy
cmVudFNhbXBsZUZyYW1lKCkgOiAwOyB9Ci0gICAgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9kZXN0aW5hdGlvbk5vZGUgPyBtX2Rlc3RpbmF0aW9uTm9kZS0+Y3VycmVudFRp
bWUoKSA6IDAuOyB9CisgICAgQXVkaW9EZXN0aW5hdGlvbk5vZGUmIGRlc3RpbmF0aW9uKCkgeyBy
ZXR1cm4gbV9kZXN0aW5hdGlvbk5vZGUuZ2V0KCk7IH0KKyAgICBjb25zdCBBdWRpb0Rlc3RpbmF0
aW9uTm9kZSYgZGVzdGluYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uTm9kZS5n
ZXQoKTsgfQorCisgICAgc2l6ZV90IGN1cnJlbnRTYW1wbGVGcmFtZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGVzdGluYXRpb25Ob2RlLT5jdXJyZW50U2FtcGxlRnJhbWUoKTsgfQorICAgIGRvdWJsZSBj
dXJyZW50VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25Ob2RlLT5jdXJyZW50VGlt
ZSgpOyB9CiAgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0OwogICAgIHVuc2lnbmVkIGxvbmcg
YWN0aXZlU291cmNlQ291bnQoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBs
b25nPihtX2FjdGl2ZVNvdXJjZUNvdW50KTsgfQogCkBAIC0yOTYsMTIgKzMwMCwxMCBAQCBwcm90
ZWN0ZWQ6CiAgICAgQmFzZUF1ZGlvQ29udGV4dChEb2N1bWVudCYsIElzTGVnYWN5V2ViS2l0QXVk
aW9Db250ZXh0LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlLCBS
ZWZQdHI8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KTsKICAgICAKICAgICB2b2lkIGNsZWFy
UGVuZGluZ0FjdGl2aXR5KCk7Ci0gICAgdm9pZCBtYWtlUGVuZGluZ0FjdGl2aXR5KCk7CisgICAg
dm9pZCBzZXRQZW5kaW5nQWN0aXZpdHkoKTsKIAogICAgIHZvaWQgbG9ja0ludGVybmFsKGJvb2wm
IG11c3RSZWxlYXNlTG9jayk7CiAKLSAgICBBdWRpb0Rlc3RpbmF0aW9uTm9kZSogZGVzdGluYXRp
b25Ob2RlKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbk5vZGUuZ2V0KCk7IH0KLQogICAg
IHZpcnR1YWwgdm9pZCB1bmluaXRpYWxpemUoKTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxF
RApAQCAtMzgzLDcgKzM4NSw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFZlY3RvcjxET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD4+PiBtX3N0YXRlUmVhY3Rpb25zOwogCiAgICAgUmVmUHRyPEF1ZGlv
QnVmZmVyPiBtX3JlbmRlclRhcmdldDsKLSAgICBSZWZQdHI8QXVkaW9EZXN0aW5hdGlvbk5vZGU+
IG1fZGVzdGluYXRpb25Ob2RlOworICAgIFVuaXF1ZVJlZjxBdWRpb0Rlc3RpbmF0aW9uTm9kZT4g
bV9kZXN0aW5hdGlvbk5vZGU7CiAgICAgUmVmPEF1ZGlvTGlzdGVuZXI+IG1fbGlzdGVuZXI7CiAK
ICAgICB1bnNpZ25lZCBtX2Nvbm5lY3Rpb25Db3VudCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9u
Tm9kZS5oCmluZGV4IDMzNjljMjQ1MjE0ZjI5OWRiNjM2ZGYxNTE3MzdiMWNmZDA5NDhlOWEuLjdk
NGZhYjk5MWEwYzA4ZTYzNzkyNmU2NDY5NjZmYTAzMTEwN2VjMzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGUuaApAQCAtMzMsMjAgKzMzLDE4IEBAIGNsYXNzIEF1ZGlvRGVzdGluYXRpb247CiBj
bGFzcyBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUgZmluYWwgOiBwdWJsaWMgQXVkaW9EZXN0
aW5hdGlvbk5vZGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPERlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZT4gY3JlYXRlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIE9wdGlvbmFsPGZs
b2F0PiBzYW1wbGVSYXRlID0gV1RGOjpudWxsb3B0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKGNvbnRleHQsIHNhbXBsZVJh
dGUpKTsKLSAgICB9CisgICAgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKEJhc2VBdWRpb0Nv
bnRleHQmLCBPcHRpb25hbDxmbG9hdD4gPSBXVEY6Om51bGxvcHQpOwogICAgIAogICAgIHZpcnR1
YWwgfkRlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZSgpOwogCiAgICAgdW5zaWduZWQgZnJhbWVz
UGVyQnVmZmVyKCkgY29uc3Q7CiAgICAgCiAgICAgdm9pZCBzdGFydFJlbmRlcmluZyhDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpIGZpbmFsOworICAgIHZv
aWQgcmVzdW1lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4m
JikgZmluYWw7CisgICAgdm9pZCBzdXNwZW5kKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8RXhjZXB0aW9uPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBjbG9zZShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogCiBwcml2YXRlOgotICAgIERlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZShCYXNlQXVkaW9Db250ZXh0JiwgT3B0aW9uYWw8ZmxvYXQ+KTsKLQogICAgIHZv
aWQgY3JlYXRlRGVzdGluYXRpb24oKTsKICAgICB2b2lkIGNsZWFyRGVzdGluYXRpb24oKTsKICAg
ICB2b2lkIHJlY3JlYXRlRGVzdGluYXRpb24oKTsKQEAgLTYwLDEwICs1OCw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCByZXF1aXJlc1RhaWxQcm9jZXNzaW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIHZvaWQgZW5hYmxlSW5wdXQoY29uc3QgU3RyaW5nJiBpbnB1dERldmlj
ZUlkKSBmaW5hbDsKLSAgICB2b2lkIHJlc3VtZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPEV4Y2VwdGlvbj4mJik+JiYpIGZpbmFsOwotICAgIHZvaWQgc3VzcGVuZChDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQg
cmVzdGFydFJlbmRlcmluZygpIGZpbmFsOwotICAgIHZvaWQgY2xvc2UoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICB1bnNpZ25lZCBtYXhDaGFubmVsQ291bnQoKSBjb25z
dCBmaW5hbDsKICAgICBib29sIGlzUGxheWluZygpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcAppbmRl
eCA2YTBjOWE0MjQxODg4YTc3ZmY0OTJlMWM1OGVkOTE4MjAxZDk3ZjBkLi45Y2VmMDAzODc0NjQ0
NTQyZWUwMzRiYTRiMWJjNGVlNjI3ZGM0NzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTEwOSwxMyAr
MTA5LDEzIEBAIHZvaWQgT2ZmbGluZUF1ZGlvQ29udGV4dDo6c3RhcnRPZmZsaW5lUmVuZGVyaW5n
KFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIAogICAgIGxhenlJbml0aWFsaXplKCk7
CiAKLSAgICBkZXN0aW5hdGlvbigpLT5zdGFydFJlbmRlcmluZyhbdGhpcywgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSksIHBlbmRpbmdBY3Rpdml0eSA9IEFjdGl2ZURPTU9iamVjdDo6bWFrZVBl
bmRpbmdBY3Rpdml0eSgqdGhpcyldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11
dGFibGUgeworICAgIGRlc3RpbmF0aW9uKCkuc3RhcnRSZW5kZXJpbmcoW3RoaXMsIHByb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpLCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5
KCp0aGlzKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CiAgICAg
ICAgIGlmIChleGNlcHRpb24pIHsKICAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChXVEZNb3Zl
KCpleGNlcHRpb24pKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAg
IG1ha2VQZW5kaW5nQWN0aXZpdHkoKTsKKyAgICAgICAgc2V0UGVuZGluZ0FjdGl2aXR5KCk7CiAg
ICAgICAgIG1fcGVuZGluZ09mZmxpbmVSZW5kZXJpbmdQcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KTsKICAgICAgICAgbV9kaWRTdGFydE9mZmxpbmVSZW5kZXJpbmcgPSB0cnVlOwogICAgICAgICBz
ZXRTdGF0ZShTdGF0ZTo6UnVubmluZyk7CkBAIC0xNzEsMTMgKzE3MSwxMyBAQCB2b2lkIE9mZmxp
bmVBdWRpb0NvbnRleHQ6OnJlc3VtZU9mZmxpbmVSZW5kZXJpbmcoUmVmPERlZmVycmVkUHJvbWlz
ZT4mJiBwcm9taXNlKQogICAgIH0KICAgICBBU1NFUlQoc3RhdGUoKSA9PSBBdWRpb0NvbnRleHRT
dGF0ZTo6U3VzcGVuZGVkKTsKIAotICAgIGRlc3RpbmF0aW9uKCktPnN0YXJ0UmVuZGVyaW5nKFt0
aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcGVuZGluZ0FjdGl2aXR5ID0gQWN0aXZl
RE9NT2JqZWN0OjptYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKV0oT3B0aW9uYWw8RXhjZXB0aW9u
PiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgZGVzdGluYXRpb24oKS5zdGFydFJlbmRlcmlu
ZyhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHBlbmRpbmdBY3Rpdml0eSA9IG1h
a2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9u
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGV4Y2VwdGlvbikgewogICAgICAgICAgICAgcHJvbWlz
ZS0+cmVqZWN0KFdURk1vdmUoKmV4Y2VwdGlvbikpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAKLSAgICAgICAgbWFrZVBlbmRpbmdBY3Rpdml0eSgpOworICAgICAgICBzZXRQZW5k
aW5nQWN0aXZpdHkoKTsKICAgICAgICAgc2V0U3RhdGUoU3RhdGU6OlJ1bm5pbmcpOwogICAgICAg
ICBwcm9taXNlLT5yZXNvbHZlKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oCmluZGV4IDE3MTE4OGVjNDNm
MzYxZjI3ODMyOGQ2NzZjMjYzMWRkY2Q0N2IzZGMuLjNkZjA3Y2I3NTZhYzc1MTdlODI3ZDQ3YmI0
MDYzYmYzYzBiMWM3MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oCkBAIC00Nyw3ICs0Nyw4IEBAIHB1YmxpYzoKICAg
ICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQogICAgIGJvb2wg
c2hvdWxkU3VzcGVuZCgpIGZpbmFsOwogCi0gICAgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2Rl
KiBkZXN0aW5hdGlvbigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PE9mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZSo+KEJhc2VBdWRpb0NvbnRleHQ6OmRlc3RpbmF0aW9uKCkpOyB9CisgICAgT2ZmbGlu
ZUF1ZGlvRGVzdGluYXRpb25Ob2RlJiBkZXN0aW5hdGlvbigpIHsgcmV0dXJuIHN0YXRpY19jYXN0
PE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZSY+KEJhc2VBdWRpb0NvbnRleHQ6OmRlc3RpbmF0
aW9uKCkpOyB9CisgICAgY29uc3QgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlJiBkZXN0aW5h
dGlvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IE9mZmxpbmVBdWRpb0Rlc3Rp
bmF0aW9uTm9kZSY+KEJhc2VBdWRpb0NvbnRleHQ6OmRlc3RpbmF0aW9uKCkpOyB9CiAKICAgICAv
LyBtdXN0UmVsZWFzZUxvY2sgaXMgc2V0IHRvIHRydWUgaWYgd2UgYWNxdWlyZWQgdGhlIGxvY2sg
aW4gdGhpcyBtZXRob2QgY2FsbCBhbmQgY2FsbGVyIG11c3QgdW5sb2NrKCksIGZhbHNlIGlmIGl0
IHdhcyBwcmV2aW91c2x5IGFjcXVpcmVkLgogICAgIHZvaWQgb2ZmbGluZUxvY2soYm9vbCYgbXVz
dFJlbGVhc2VMb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IDRmZDNmN2M3YzU2
NWVjMDQxMjNjNTY3MGE1ZjUxMGUxYTFhYjViNDMuLjNiMDQyY2QwNmIxYmExNzZlYzcwODkyMzJm
YmEyY2E0OWMzZmYwZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtMzcsMTAgKzM3
LDcgQEAgY2xhc3MgQXVkaW9Db250ZXh0OwogY2xhc3MgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25O
b2RlIGZpbmFsIDogcHVibGljIEF1ZGlvRGVzdGluYXRpb25Ob2RlIHsKICAgICBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEKE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZSk7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU+IGNyZWF0ZShCYXNlQXVkaW9D
b250ZXh0JiBjb250ZXh0LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzYW1wbGVS
YXRlLCBSZWZQdHI8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KQotICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKGNvbnRleHQs
IG51bWJlck9mQ2hhbm5lbHMsIHNhbXBsZVJhdGUsIFdURk1vdmUocmVuZGVyVGFyZ2V0KSkpOwot
ICAgIH0KKyAgICBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUoQmFzZUF1ZGlvQ29udGV4dCYs
IHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUsIFJlZlB0cjxBdWRp
b0J1ZmZlcj4mJiByZW5kZXJUYXJnZXQpOwogCiAgICAgdmlydHVhbCB+T2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlKCk7CiAgICAgCkBAIC01Myw4ICs1MCw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHN0YXJ0UmVuZGVyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9u
PiYmKT4mJikgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25O
b2RlKEJhc2VBdWRpb0NvbnRleHQmLCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBz
YW1wbGVSYXRlLCBSZWZQdHI8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KTsKLQogICAgIGVu
dW0gY2xhc3MgT2ZmbGluZVJlbmRlclJlc3VsdCB7IEZhaWx1cmUsIFN1c3BlbmRlZCwgQ29tcGxl
dGUgfTsKICAgICBPZmZsaW5lUmVuZGVyUmVzdWx0IG9mZmxpbmVSZW5kZXIoKTsKICAgICB2b2lk
IG5vdGlmeU9mZmxpbmVSZW5kZXJpbmdTdXNwZW5kZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcAppbmRleCBjOGFi
MTZkOTczNjY2ODhjNzQ2M2RlZmU5MTk0MDg2NzZiMmRiOTkyLi5hYmQ4NDI2ODk4ZDg3NDVjYThh
MDk4ZWQwMzBjOWNmZmE2ODExZDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuY3BwCkBAIC0yMDAsNyArMjAwLDcgQEAg
dm9pZCBXZWJLaXRBdWRpb0NvbnRleHQ6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYm
IHByb21pc2UpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoc3RhdGUoKSA9PSBT
dGF0ZTo6Q2xvc2VkIHx8ICFkZXN0aW5hdGlvbk5vZGUoKSkgeworICAgIGlmIChzdGF0ZSgpID09
IFN0YXRlOjpDbG9zZWQpIHsKICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC0yMDksNyArMjA5LDcgQEAgdm9pZCBXZWJLaXRBdWRpb0NvbnRleHQ6
OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAKICAgICBsYXp5SW5p
dGlhbGl6ZSgpOwogCi0gICAgZGVzdGluYXRpb25Ob2RlKCktPmNsb3NlKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICBkZXN0aW5hdGlvbigpLmNsb3NlKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgc2V0U3RhdGUoU3Rh
dGU6OkNsb3NlZCk7CiAgICAgICAgIHVuaW5pdGlhbGl6ZSgpOwogICAgIH0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3QuY3BwCmluZGV4IDdhZjA3OWEzYWE2OGNlZWJlM2JjMTk3MmM1ZTY2OWFmMzA1
ZjM1MjQuLjY3MmJkYzNlMjU0Y2I3YmIzNjRjZGY3YWM4ZmYwZTRmN2FhMTE5NjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0IFNhbWVTaXplQXNT
aGFkb3dSb290IDogcHVibGljIERvY3VtZW50RnJhZ21lbnQsIHB1YmxpYyBUcmVlU2NvcGUgewog
ICAgIHVpbnQ4X3QgbW9kZTsKICAgICB2b2lkKiBzdHlsZVNjb3BlOwogICAgIHZvaWQqIHN0eWxl
U2hlZXRMaXN0OwotICAgIHZvaWQqIGhvc3Q7CisgICAgV2Vha1B0cjxFbGVtZW50PiBob3N0Owog
ICAgIHZvaWQqIHNsb3RBc3NpZ25tZW50OwogICAgIE9wdGlvbmFsPEhhc2hNYXA8QXRvbVN0cmlu
ZywgQXRvbVN0cmluZz4+IHBhcnRNYXBwaW5nczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9GbG9hdGluZ09iamVjdHMuY3BwCmluZGV4IGI3MDkzZWMyMDAwYWQwZGJmNTg1NjNjOTY3
MTM0Yzk4NGVjZThhNTUuLmI3M2UxNTkyYTdmYmZiZTJlYmJkMmU5OTg2MGZlZWRlZTYyNTNhNDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG9hdGluZ09iamVjdHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG9hdGluZ09iamVjdHMuY3BwCkBAIC0z
NCw3ICszNCw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBTYW1lU2l6ZUFzRmxv
YXRpbmdPYmplY3QgewotICAgIHZvaWQqIHBvaW50ZXJzWzJdOworICAgIFdlYWtQdHI8UmVuZGVy
Qm94PiByZW5kZXJlcjsKKyAgICBXZWFrUHRyPFJvb3RJbmxpbmVCb3g+IG9yaWdpbmF0aW5nTGlu
ZTsKICAgICBMYXlvdXRSZWN0IHJlY3Q7CiAgICAgaW50IHBhZ2luYXRpb25TdHJ1dDsKICAgICBM
YXlvdXRTaXplIHNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9v
dElubGluZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5j
cHAKaW5kZXggODA3MTYxNzY5MTg0MzM3Y2JjNmI0Y2I2M2E4ZGYwMDE2OTdkYWIxYS4uMDJhZGI3
NWZhYjk2M2JlMTNmMGUyYTU4MWY5NjhkNDg0OGIwYzE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9Sb290SW5saW5lQm94LmNwcApAQCAtNDcsNyArNDcsOCBAQCBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoUm9vdElubGluZUJveCk7CiAKIHN0cnVjdCBTYW1lU2l6ZUFzUm9vdElu
bGluZUJveCA6IHB1YmxpYyBJbmxpbmVGbG93Qm94LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Um9v
dElubGluZUJveD4gewogICAgIHVuc2lnbmVkIHZhcmlhYmxlc1s3XTsKLSAgICB2b2lkKiBwb2lu
dGVyc1szXTsKKyAgICBXZWFrUHRyPFJlbmRlck9iamVjdD4gbGluZUJyZWFrT2JqOworICAgIHZv
aWQqIHBvaW50ZXJzWzJdOwogfTsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFJvb3RJbmxpbmVC
b3gpID09IHNpemVvZihTYW1lU2l6ZUFzUm9vdElubGluZUJveCksIFJvb3RJbmxpbmVCb3hfc2hv
dWxkX3N0YXlfc21hbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGNj
M2M1NjE2NTI4YjliNGFmMTlmNDRiNDAwNWRmNTU4ZjQ5ZjI4MWQuLmNmYjI2OWYzMmQ1YjhjNzgy
NTIwMjk3ODA0Mjg2YzdmMzY4Y2RjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKQEAgLTI2NTAsNiArMjY1MCwxNSBAQCB1bnNpZ25lZCBJbnRlcm5hbHM6OnJlZmVyZW5jaW5n
Tm9kZUNvdW50KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKICAgICByZXR1cm4gZG9j
dW1lbnQucmVmZXJlbmNpbmdOb2RlQ291bnQoKTsKIH0KIAordW5zaWduZWQgSW50ZXJuYWxzOjpu
dW1iZXJPZkJhc2VBdWRpb0NvbnRleHRzKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoV0VCX0FVRElP
KQorICAgIHJldHVybiBCYXNlQXVkaW9Db250ZXh0OjpudW1iZXJPZkluc3RhbmNlcygpOworI2Vs
c2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCiAjaWYgRU5BQkxFKElOVEVSU0VDVElPTl9P
QlNFUlZFUikKIHVuc2lnbmVkIEludGVybmFsczo6bnVtYmVyT2ZJbnRlcnNlY3Rpb25PYnNlcnZl
cnMoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKaW5kZXggZTFhMDNlOWEwMTc5ZDBmNjljMjg0OWZiMmJkMGZhNDBhOWRkOTRmMi4u
ZTZkNmQ2OTlmN2U4M2JlYjlkYzI5NDcyYzlkZWJmMmNkYTZlNjVkZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCkBAIC00NTUsNiArNDU1LDcgQEAgcHVibGljOgogICAgIHVuc2lnbmVk
IG51bWJlck9mTGl2ZU5vZGVzKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZMaXZlRG9j
dW1lbnRzKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgcmVmZXJlbmNpbmdOb2RlQ291bnQoY29uc3Qg
RG9jdW1lbnQmKSBjb25zdDsKKyAgICB1bnNpZ25lZCBudW1iZXJPZkJhc2VBdWRpb0NvbnRleHRz
KCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoSU5URVJTRUNUSU9OX09CU0VSVkVSKQogICAgIHVuc2ln
bmVkIG51bWJlck9mSW50ZXJzZWN0aW9uT2JzZXJ2ZXJzKGNvbnN0IERvY3VtZW50JikgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggNDI5NDc2OTFhYWNkZmM5ZDkx
NGZmMzlkZjk3NWEwMTI5NWY5NGVlZi4uZjlmMTZhN2VkOGIyMWFmZTM5MTBkYmI2MWYyMDVhOTMx
NTU2Njc4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNTM3LDYgKzUz
Nyw3IEBAIGVudW0gVHJlZVR5cGUgewogCiAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZkxpdmVO
b2RlcygpOwogICAgIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZlRG9jdW1lbnRzKCk7CisgICAg
dW5zaWduZWQgbG9uZyBudW1iZXJPZkJhc2VBdWRpb0NvbnRleHRzKCk7CiAgICAgdW5zaWduZWQg
bG9uZyByZWZlcmVuY2luZ05vZGVDb3VudChEb2N1bWVudCBkb2N1bWVudCk7CiAgICAgW0NvbmRp
dGlvbmFsPUlOVEVSU0VDVElPTl9PQlNFUlZFUl0gdW5zaWduZWQgbG9uZyBudW1iZXJPZkludGVy
c2VjdGlvbk9ic2VydmVycyhEb2N1bWVudCBkb2N1bWVudCk7CiAgICAgW0NvbmRpdGlvbmFsID0g
UkVTSVpFX09CU0VSVkVSXSB1bnNpZ25lZCBsb25nIG51bWJlck9mUmVzaXplT2JzZXJ2ZXJzKERv
Y3VtZW50IGRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMjQ0OTgzYjRkMzg3M2RiM2M1NDMzOWY3NWE2OWE3
MzNkODdlZWI0Li5hZDllZmQzNmMwNWRhOGY4OTczOGYxNGJhMzg0OTU0MjYwMTVlMWMzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBPZmZsaW5lQXVkaW9Db250ZXh0IG9iamVjdHMgYXJlIGxlYWtpbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDI3OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlv
dXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIHdlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRl
eHQvb2ZmbGluZWF1ZGlvY29udGV4dC1sZWFrLWFmdGVyLXJlbmRlcmluZy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQvb2ZmbGluZWF1
ZGlvY29udGV4dC1sZWFrLWFmdGVyLXJlbmRlcmluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0L29mZmxpbmVhdWRpb2NvbnRleHQtbGVhay1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQv
b2ZmbGluZWF1ZGlvY29udGV4dC1sZWFrLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA0LTA3ICBSb2Jl
cnQgSmVubmVyICA8amVubmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBbIG1hY09TIF0gbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3NlZWstZm9yd2FyZC1zdXBwb3J0L3NlZWstZm9yd2FyZC1z
dXBwb3J0Lmh0bWwgaXMgYSBmbGFrZXkgdGltZW91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC9vZmZsaW5lYXVkaW9jb250ZXh0LWxlYWstYWZ0
ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL09mZmxpbmVB
dWRpb0NvbnRleHQvb2ZmbGluZWF1ZGlvY29udGV4dC1sZWFrLWFmdGVyLXJlbmRlcmluZy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFhNzQzNDEzYmQ2ODExNjFlMzZkOTYxMzAxY2U2OGZjZGE3
ZGVhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL09mZmxpbmVBdWRp
b0NvbnRleHQvb2ZmbGluZWF1ZGlvY29udGV4dC1sZWFrLWFmdGVyLXJlbmRlcmluZy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorTWFrZXMgc3VyZSB0aGF0IHRoZSBPZmZsaW5lQXVkaW9D
b250ZXh0IG9iamVjdHMgYXJlIG5vdCBsZWFraW5nIGFmdGVyIHJlbmRlcmluZy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mQmFzZUF1ZGlv
Q29udGV4dHMoKSA+PSBpbnN0YW5jZXNUb0NyZWF0ZSBpcyB0cnVlCitQQVNTIGludGVybmFscy5u
dW1iZXJPZkJhc2VBdWRpb0NvbnRleHRzKCkgPCBpbnN0YW5jZXNUb0NyZWF0ZSBpcyB0cnVlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC9vZmZsaW5lYXVk
aW9jb250ZXh0LWxlYWstYWZ0ZXItcmVuZGVyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9PZmZsaW5lQXVkaW9Db250ZXh0L29mZmxpbmVhdWRpb2NvbnRleHQtbGVhay1hZnRlci1yZW5k
ZXJpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTQwMjYyZDA2OTlkYTcyM2Q5Yzc5MzQ5YWZiYzEzNzZh
MTc1YjJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vT2ZmbGluZUF1
ZGlvQ29udGV4dC9vZmZsaW5lYXVkaW9jb250ZXh0LWxlYWstYWZ0ZXItcmVuZGVyaW5nLmh0bWwK
QEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbigiTWFrZXMgc3VyZSB0aGF0IHRoZSBPZmZsaW5lQXVkaW9Db250ZXh0IG9iamVj
dHMgYXJlIG5vdCBsZWFraW5nIGFmdGVyIHJlbmRlcmluZy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0
cnVlOworCitjb25zdCBpbnN0YW5jZXNUb0NyZWF0ZSA9IDEwMDsKKworZnVuY3Rpb24gdGVzdCgp
IHsKKyAgICBsZXQgcHJvbWlzZXMgPSBbXTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IGluc3Rh
bmNlc1RvQ3JlYXRlOyBpKyspIHsKKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1
ZGlvQ29udGV4dCgyLCAxLCA0NDEwMCk7CisgICAgICAgIHByb21pc2VzLnB1c2goY29udGV4dC5z
dGFydFJlbmRlcmluZygpKTsKKyAgICB9CisgICAgc2hvdWxkQmVUcnVlKCJpbnRlcm5hbHMubnVt
YmVyT2ZCYXNlQXVkaW9Db250ZXh0cygpID49IGluc3RhbmNlc1RvQ3JlYXRlIik7CisgICAgUHJv
bWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oKHZhbHVlcykgPT4geworICAgICAgICBnYygpOworICAg
ICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgIGdjKCk7CisgICAgICAgICAgICBz
aG91bGRCZVRydWUoImludGVybmFscy5udW1iZXJPZkJhc2VBdWRpb0NvbnRleHRzKCkgPCBpbnN0
YW5jZXNUb0NyZWF0ZSIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0s
IDApOworICAgIH0pOworfQorCit0ZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQvb2Zm
bGluZWF1ZGlvY29udGV4dC1sZWFrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L09mZmxpbmVBdWRpb0NvbnRleHQvb2ZmbGluZWF1ZGlvY29udGV4dC1sZWFrLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44NDlmNGIyNTk4ZmUxZmVmYzVkNzhhZjg5YTEyZjNmY2VkNTk4ZjZkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4
dC9vZmZsaW5lYXVkaW9jb250ZXh0LWxlYWstZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAK
K01ha2VzIHN1cmUgdGhhdCB0aGUgT2ZmbGluZUF1ZGlvQ29udGV4dCBvYmplY3RzIGFyZSBub3Qg
bGVha2luZy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW50ZXJuYWxz
Lm51bWJlck9mQmFzZUF1ZGlvQ29udGV4dHMoKSA+PSBpbnN0YW5jZXNUb0NyZWF0ZSBpcyB0cnVl
CitQQVNTIGludGVybmFscy5udW1iZXJPZkJhc2VBdWRpb0NvbnRleHRzKCkgPCBpbnN0YW5jZXNU
b0NyZWF0ZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlv
Q29udGV4dC9vZmZsaW5lYXVkaW9jb250ZXh0LWxlYWsuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQvb2ZmbGluZWF1ZGlvY29udGV4dC1sZWFrLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTc5OWUyZjA3MTgxZDBjMDFkZmVlNTQ5YzZlNDY5N2JjN2U5YmYwYQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQvb2Zm
bGluZWF1ZGlvY29udGV4dC1sZWFrLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiTWFrZXMgc3VyZSB0aGF0IHRo
ZSBPZmZsaW5lQXVkaW9Db250ZXh0IG9iamVjdHMgYXJlIG5vdCBsZWFraW5nLiIpOworanNUZXN0
SXNBc3luYyA9IHRydWU7CisKK2NvbnN0IGluc3RhbmNlc1RvQ3JlYXRlID0gMTAwOworCitmdW5j
dGlvbiBhbGxvY2F0ZUNvbnRleHRzKCkgeworICAgIGxldCBjb250ZXh0cyA9IFtdOworICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgaW5zdGFuY2VzVG9DcmVhdGU7IGkrKykKKyAgICAgICAgY29udGV4
dHMucHVzaChuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLCAxLCA0NDEwMCkpOworICAgIHNob3Vs
ZEJlVHJ1ZSgiaW50ZXJuYWxzLm51bWJlck9mQmFzZUF1ZGlvQ29udGV4dHMoKSA+PSBpbnN0YW5j
ZXNUb0NyZWF0ZSIpOworfQorCithbGxvY2F0ZUNvbnRleHRzKCk7CitnYygpOworc2V0VGltZW91
dCgoKSA9PiB7CisgICAgZ2MoKTsKKyAgICBzaG91bGRCZVRydWUoImludGVybmFscy5udW1iZXJP
ZkJhc2VBdWRpb0NvbnRleHRzKCkgPCBpbnN0YW5jZXNUb0NyZWF0ZSIpOworICAgIGZpbmlzaEpT
VGVzdCgpOworfSwgMCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425510</attachid>
            <date>2021-04-08 09:24:01 -0700</date>
            <delta_ts>2021-04-08 11:41:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224279-20210408092359.patch</filename>
            <type>text/plain</type>
            <size>74964</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY3OWMxZDY4MDkyNzZhMmE4NTc5ODBk
MWI0OWYxZjlkM2I1ZTMzYzkuLmY3ODFlMWJlZGE1MmNjZjkyYWU0OGE4YzhmODY3MTkzOTEwNTRm
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBPZmZsaW5lQXVkaW9Db250ZXh0IG9iamVjdHMgYXJlIGxl
YWtpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NDI3OQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFkZCBm
bGFnIHRoYXQgY2FuIGJlIHBhc3NlZCB3aGVuIGNvbnN0cnVjdGluZyBhIFdlYWtQdHIgdG8gZGlz
YWJsZSB0aHJlYWRpbmcgYXNzZXJ0aW9ucy4KKyAgICAgICAgVGhpcyBpcyB1c2VmdWwgZm9yIGNh
c2VzIHdoZXJlIHdlIGtub3cgaXQgaXMgc2FmZSBkdWUgdG8gbG9ja2luZyBidXQgd2UnZCBsaWtl
IHRvIHVzZSBhCisgICAgICAgIFdlYWtQdHIgaW5zdGVhZCBvZiBhIHJhdyBwb2ludGVyIGJlY2F1
c2UgaXQgaXMgc2FmZXIuCisKKyAgICAgICAgKiB3dGYvV2Vha1B0ci5oOgorICAgICAgICAoV1RG
OjpXZWFrUHRyOjpnZXQgY29uc3QpOgorICAgICAgICAoV1RGOjpXZWFrUHRyOjpvcGVyYXRvci0+
IGNvbnN0KToKKyAgICAgICAgKFdURjo6V2Vha1B0cjo6b3BlcmF0b3IqIGNvbnN0KToKKyAgICAg
ICAgKFdURjo6V2Vha1B0cjo6V2Vha1B0cik6CisgICAgICAgIChXVEY6OldlYWtQdHJGYWN0b3J5
OjpjcmVhdGVXZWFrUHRyIGNvbnN0KToKKyAgICAgICAgKFdURjo6PSk6CisgICAgICAgIChXVEY6
Om1ha2VXZWFrUHRyKToKKwogMjAyMS0wNC0wNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBvc190cmFuc2FjdGlvbl9jcmVhdGUgaW5z
dGVhZCBvZiBkZXByZWNhdGVkIHhwY190cmFuc2FjdGlvbl9iZWdpbi9lbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA4MDUyMTBhM2MwZDY2YTM2Zjg4ZDIwZTMyMDBjYmMyMmU3MDgyODljLi5mMTRlOTVhMzg0MDIy
NjhhMjU1NGQxZDllNzczYmVjODY1MWI0YjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTc4IEBA
CisyMDIxLTA0LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
T2ZmbGluZUF1ZGlvQ29udGV4dCBvYmplY3RzIGFyZSBsZWFraW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyNzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBPZmZsaW5lQXVkaW9Db250ZXh0IG9iamVjdHMg
d2VyZSBhbHdheXMgbGVha2luZyBkdWUgdG8gMiByZWZlcmVuY2UgY3ljbGVzOgorICAgICAgICAx
LiBCYXNlQXVkaW9Db250ZXh0IC0+IG1fbGlzdGVuZXIgKEF1ZGlvTGlzdGVuZXIpIC0+IG1fcG9z
aXRpb25YIChBdWRpb1BhcmFtKSAtPiBtX2NvbnRleHQgKEJhc2VBdWRpb0NvbnRleHQpCisgICAg
ICAgIDIuIEJhc2VBdWRpb0NvbnRleHQgLT4gbV9kZXN0aW5hdGlvbk5vZGUgKEF1ZGlvRGVzdGlu
YXRpb25Ob2RlKSAtPiBtX2NvbnRleHQgKEJhc2VBdWRpb0NvbnRleHQpCisKKyAgICAgICAgRm9y
IHJlZmVyZW5jZSBjeWNsZSAxLCBJIG1hZGUgQXVkaW9TdW1taW5nSnVuY3Rpb24gKGJhc2UgY2xh
c3Mgb2YgQXVkaW9QYXJhbSkgaG9sZCBhIHdlYWsgcG9pbnRlciB0byB0aGUKKyAgICAgICAgQXVk
aW9Db250ZXh0IGluc3RlYWQgb2YgYSBSZWY8Pi4gSSBkb24ndCB0aGluayB0aGVyZSBpcyBhIGdv
b2QgcmVhc29uIGZvciBhbiBBdWRpb1N1bW1pbmdKdW5jdGlvbiAoQXVkaW9QYXJhbQorICAgICAg
ICBvciBBdWRpb05vZGVJbnB1dCkgdG8ga2VlcCBpdHMgQXVkaW9Db250ZXh0IGFsaXZlLiBBdWRp
b05vZGVzIGFscmVhZHkga2VlcCB0aGVpciBBdWRpb0NvbnRleHQgYWxpdmUuCisgICAgICAgIEF1
ZGlvTm9kZUlucHV0cyBhbmQgQXVkaW9QYXJhbXMgYXJlIGFzc29jaWF0ZWQgdG8gQXVkaW9Ob2Rl
cy4KKworICAgICAgICBGb3IgcmVmZXJlbmNlIGN5Y2xlIDIsIEkgbWFkZSBBdWRpb0Rlc3RpbmF0
aW9uTm9kZSBub3QgaG9sZCBhIHN0cm9uZyBwb2ludGVyIHRvIGl0cyBjb250ZXh0IGJ1dCBpbnN0
ZWFkIGEKKyAgICAgICAgd2VhayBwb2ludGVyLiBTaW5jZSBrZWVwaW5nIGFuIEF1ZGlvRGVzdGlu
YXRpb25Ob2RlIGFsaXZlIHNob3VsZCBrZWVwIGl0cyBBdWRpb0NvbnRleHQgYWxpdmUsIEkgbWFk
ZSBpdCBzbworICAgICAgICB0aGF0IHJlZidpbmcgdGhlIEF1ZGlvRGVzdGluYXRpb25Ob2RlIHJl
ZnMgaXRzIEJhc2VBdWRpb0NvbnRleHQuIEFsc28sIEJhc2VBdWRpb0NvbnRleHQ6Om1fZGVzdGlu
YXRpb25Ob2RlCisgICAgICAgIGlzIG5vdyBhIFVuaXF1ZVJlZjw+IGluc3RlYWQgb2YgYSBSZWZQ
dHI8PiB0byBhdm9pZCBhIGN5Y2xlLgorCisgICAgICAgIFRlc3RzOiB3ZWJhdWRpby9PZmZsaW5l
QXVkaW9Db250ZXh0L29mZmxpbmVhdWRpb2NvbnRleHQtbGVhay1hZnRlci1yZW5kZXJpbmcuaHRt
bAorICAgICAgICAgICAgICAgd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC9vZmZsaW5lYXVk
aW9jb250ZXh0LWxlYWsuaHRtbAorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0OjpiYXNlTGF0ZW5jeSk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmdldE91dHB1dFRpbWVzdGFtcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvQ29udGV4dDo6ZGVzdGluYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250
ZXh0OjpkZXN0aW5hdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6
OnN1c3BlbmRSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0OjpyZXN1
bWVSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0OjpzdGFydFJlbmRl
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmxhenlJbml0aWFsaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6bWVkaWFTdGF0ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6Om1heVJlc3VtZVBsYXliYWNrKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6c3VzcGVuZFBsYXliYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvQ29udGV4dDo6cGFnZU11dGVkU3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0Lmg6CisgICAgICAgIC0gRHJvcCBzb21lIG51bGwg
Y2hlY2tzIG5vdyB0aGF0IG1fZGVzdGluYXRpb25Ob2RlIGNhbiBubyBsb25nZXIgYmUgbnVsbC4K
KyAgICAgICAgLSBDYXB0dXJlIGFuIEFjdGl2ZURPTU9iamVjdDo6UGVuZGluZ0FjdGl2aXR5IHdo
ZW4gZG9pbmcgYXN5bmMgd29yayB0aGF0IGVuZHMgdXAgcmVzb2x2aW5nIGEgUHJvbWlzZSwgc28g
dGhhdAorICAgICAgICAgIHdlIGtlZXAgYm90aCB0aGUgb2JqZWN0IGFuZCBpdHMgd3JhcHBlciBh
bGl2ZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBhc3luYyB3b3JrLgorCisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6cmVmKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVz
dGluYXRpb25Ob2RlOjpkZXJlZik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rl
c3RpbmF0aW9uTm9kZS5oOgorICAgICAgICBIYXZlIEF1ZGlvRGVzdGluYXRpb25Ob2RlIG92ZXJy
aWRlIEF1ZGlvTm9kZSdzIHJlZigpIC8gZGVyZWYoKSB0byBmb3J3YXJkIHRoZSByZWZjb3VudGlu
ZworICAgICAgICB0byBpdHMgQmFzZUF1ZGlvQ29udGV4dCwgaW5zdGVhZCBvZiB1c2luZyB0aGUg
QXVkaW9Ob2RlJ3MgaW50ZXJuYWwgcmVmQ291bnQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9MaXN0ZW5lcjo6
dXBkYXRlVmFsdWVzSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9MaXN0ZW5lcjo6
c2V0UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9MaXN0ZW5lcjo6c2V0T3JpZW50
YXRpb24pOgorICAgICAgICBBZGQgc29tZSBudWxsLWNoZWNrcyBmb3IgQXVkaW9QYXJhbTo6Y29u
dGV4dCgpIG5vdyB0aGF0IEF1ZGlvUGFyYW0gaG9sZHMgYSBXZWFrUHRyIHRvIGl0cworICAgICAg
ICBjb250ZXh0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjp0b1dlYWtPclN0cm9uZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpBdWRpb05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9Ob2RlOjpjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZTo6c2FtcGxl
UmF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6Om1hcmtOb2RlRm9yRGVs
ZXRpb25JZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OmNvbnRleHRG
b3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OmNvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpjb250ZXh0IGNvbnN0KToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oOgorICAgICAgICAtIEhvbGQgdGhlIEJhc2VBdWRpb0Nv
bnRleHQgYXMgYSBXZWFrUHRyIGluc3RlYWQgb2YgYSBSZWY8PiBpZiB0aGUgQXVkaW9Ob2RlIGlz
IGFuCisgICAgICAgICAgQXVkaW9EZXN0aW5hdGlvbk5vZGUuIFRoaXMgYXZvaWRzIGEgcmVmZXJl
bmNlIGN5Y2xlIHNpbmNlIHRoZSBCYXNlQXVkaW9Db250ZXh0IG93bnMgdGhlCisgICAgICAgICAg
QXVkaW9EZXN0aW5hdGlvbk5vZGUuIEV2ZW4gdGhvdWdoIHdlIGFyZSB1c2luZyBhIFdlYWtQdHIs
IGl0IGlzIHNhZmUgdG8gYXNzdW1lIHRoYXQKKyAgICAgICAgICB0aGUgY29udGV4dCBpcyBub3Qg
bnVsbCBiZWNhdXNlIHJlZidpbmcgYW4gQXVkaW9EZXN0aW5hdGlvbk5vZGUgcmVmcyBpdHMgQmFz
ZUF1ZGlvQ29udGV4dC4KKyAgICAgICAgLSBNYWtlIHN1cmUgbWFya05vZGVGb3JEZWxldGlvbklm
TmVjZXNzYXJ5KCkgaGFzIG5vIGVmZmVjdCBmb3IgQXVkaW9EZXN0aW5hdGlvbk5vZGUgc2luY2UK
KyAgICAgICAgICBCYXNlQXVkaW9Db250ZXh0IG5vdyBvd25zIHRoZSBBdWRpb0Rlc3RpbmF0aW9u
Tm9kZSB3aGVuIHdlIHRha2UgY2FyZSBvZiBkZXN0cm95aW5nIGl0cworICAgICAgICAgIGRlc3Rp
bmF0aW9uIG5vZGUgd2hlbiBkZXN0cm95ZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvTm9kZUlucHV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZUlucHV0Ojpj
b25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZUlucHV0OjpkaXNjb25uZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZUlucHV0OjpvdXRwdXRFbmFibGVkU3RhdGVDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZUlucHV0Ojp1cGRhdGVJbnRlcm5hbEJ1
cyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGVJbnB1dDo6YnVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvTm9kZUlucHV0OjppbnRlcm5hbFN1bW1pbmdCdXMpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9Ob2RlSW5wdXQ6OnN1bUFsbENvbm5lY3Rpb25zKToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvTm9kZUlucHV0OjpwdWxsKToKKyAgICAgICAgQWRkIGFzc2VydGlvbnMgdGhhdCB0
aGUgY29udGV4dCBpcyBub3QgbnVsbC4gVGhlcmUgd2VyZSBhbHJlYWR5IGFzc2VydGlvbnMgdGhh
dCB3ZSBhcmUgdGhlIGdyYXBoCisgICAgICAgIG93bmVyLCB3aGljaCBtZWFucyB3ZSBhcmUgaG9s
ZGluZyB0aGUgQmFzZUF1ZGlvQ29udGV4dCdzIGxvY2ssIHdoaWNoIG1lYW5zIHRoYXQgdGhlIGF1
ZGlvIGNvbnRleHQKKyAgICAgICAgaXMgYWxpdmUuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvUGFyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbTo6dmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbTo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjpzbW9vdGgpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9QYXJhbTo6aGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9QYXJhbTo6Y2FsY3VsYXRlU2FtcGxlQWNjdXJhdGVWYWx1ZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9QYXJhbTo6Y2FsY3VsYXRlRmluYWxWYWx1ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9QYXJhbTo6Y2FsY3VsYXRlVGltZWxpbmVWYWx1ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9QYXJhbTo6Y29ubmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Bh
cmFtOjpkaXNjb25uZWN0KToKKyAgICAgICAgQWRkIG51bGwtY2hlY2tzIGZvciB0aGUgQXVkaW9D
b250ZXh0IG5vdyB0aGF0IHRoZSBBdWRpb1BhcmFtIGlzIG9ubHkgaG9sZGluZyBhIFdlYWtQdHIg
dG8gaXRzCisgICAgICAgIEJhc2VBdWRpb0NvbnRleHQgKHRvIGF2b2lkIGEgcmVmZXJlbmNlIGN5
Y2xlKS4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TdW1taW5nSnVuY3Rpb246OkF1ZGlvU3VtbWlu
Z0p1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU3VtbWluZ0p1bmN0aW9uOjp+QXVk
aW9TdW1taW5nSnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TdW1taW5nSnVuY3Rp
b246Om1hcmtSZW5kZXJpbmdTdGF0ZUFzRGlydHkpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
dW1taW5nSnVuY3Rpb246OmFkZE91dHB1dCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1N1bW1p
bmdKdW5jdGlvbjo6cmVtb3ZlT3V0cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU3VtbWlu
Z0p1bmN0aW9uOjp1cGRhdGVSZW5kZXJpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1N1bW1pbmdKdW5jdGlvbjo6b3V0cHV0RW5hYmxlZFN0YXRlQ2hhbmdlZCk6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlvbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9TdW1taW5nSnVuY3Rpb246OmNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9TdW1taW5nSnVuY3Rpb246OmNvbnRleHQgY29uc3QpOgorICAgICAgICAtIEhvbGQgYSBXZWFr
UHRyIHRvIHRoZSBCYXNlQXVkaW9Db250ZXh0IHRvIGF2b2lkIGEgcmVmZXJlbmNlIGN5Y2xlLgor
ICAgICAgICAtIERlYWwgd2l0aCB0aGUgZmFjdCB0aGF0IHRoZSBhdWRpbyBjb250ZXh0IG1heSBi
ZSBudWxsIG5vdyB0aGF0IHdlJ3JlIGhvbGRpbmcgYSBXZWFrUHRyCisgICAgICAgICAgdG8gaXQg
KGV4Y2VwdCB3aGVuIGhvbGRpbmcgdGhlIGdyYXBoIGxvY2spCisKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUF1
ZGlvQ29udGV4dDo6QmFzZUF1ZGlvQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVk
aW9Db250ZXh0Ojp+QmFzZUF1ZGlvQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVk
aW9Db250ZXh0OjpudW1iZXJPZkluc3RhbmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVk
aW9Db250ZXh0OjpsYXp5SW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9D
b250ZXh0OjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9Db250ZXh0Ojp1bmlu
aXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUF1ZGlvQ29udGV4dDo6c3RvcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9Db250ZXh0OjpzYW1wbGVSYXRlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OmRlY29kZUF1ZGlvRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpCYXNlQXVkaW9Db250ZXh0OjptYXJrRm9yRGVsZXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6QmFzZUF1ZGlvQ29udGV4dDo6ZGVsZXRlTWFya2VkTm9kZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6QmFzZUF1ZGlvQ29udGV4dDo6c2V0UGVuZGluZ0FjdGl2aXR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OndvcmtsZXRJc1JlYWR5KToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkJhc2VBdWRpb0NvbnRleHQ6OmRlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VB
dWRpb0NvbnRleHQ6OmRlc3RpbmF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VB
dWRpb0NvbnRleHQ6OmN1cnJlbnRTYW1wbGVGcmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpCYXNlQXVkaW9Db250ZXh0OjpjdXJyZW50VGltZSBjb25zdCk6CisgICAgICAgIC0gU3dpdGNo
IG1fZGVzdGluYXRpb25Ob2RlIGZyb20gUmVmUHRyPD4gdG8gVW5pcXVlUmVmPD4gc2luY2UgdGhl
IEF1ZGlvQ29udGV4dCBpcyBub3cKKyAgICAgICAgICB0aGUgb3duZXIgb2YgdGhlIGRlc3RpbmF0
aW9uTm9kZSBhbmQgc2luY2UgcmVmaW5nIHRoZSBkZXN0aW5hdGlvbiBub2RlIGFjdHVhbGx5IHJl
ZnMKKyAgICAgICAgICBpdHMgQmFzZUF1ZGlvQ29udGV4dC4KKyAgICAgICAgLSBEcm9wIHNvbWUg
bnVsbCBjaGVja3Mgbm93IHRoYXQgbV9kZXN0aW5hdGlvbk5vZGUgY2FuIG5vIGxvbmdlciBiZSBu
dWxsLgorICAgICAgICAtIFJlbmFtZSBtYWtlUGVuZGluZ0FjdGl2aXR5KCkgdG8gc2V0UGVuZGlu
Z0FjdGl2aXR5KCkgdG8gYXZvaWQgYSBuYW1pbmcgY29uZmxpY3Qgd2l0aAorICAgICAgICAgIEFj
dGl2ZURPTU9iamVjdDo6bWFrZVBlbmRpbmdBY3Rpdml0eSgpLgorCisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oOgorICAgICAgICAtIERy
b3AgY3JlYXRlKCkgZmFjdG9yeSBmdW5jdGlvbnMgYW5kIG1ha2UgdGhlIGNvbnN0cnVjdG9yIHB1
YmxpYyBub3cgdGhhdCB0aGUgQmFzZUF1ZGlvQ29udGV4dCBvd25zCisgICAgICAgICAgaXRzIGRl
c3RpbmF0aW9uIG5vZGUgdmlhIGEgVW5pcXVlUmVmPD4uCisgICAgICAgIC0gTWFrZSBzb21lIG1l
bWJlciBmdW5jdGlvbnMgcHVibGljIGFzIHRoZXkgYXJlIHZpcnR1YWwgYW5kIHRoZXkgbm93IGNh
bGxlZCBvbiB0aGUgc3ViY2xhc3MgaW5zdGVhZCBvZiB0aGUKKyAgICAgICAgICBiYXNlIGNsYXNz
IChhbmQgdGhlc2UgZnVuY3Rpb25zIGFyZSBwdWJsaWMgaW4gdGhlIGJhc2UgY2xhc3MpLgorCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0NvbnRleHQ6OnN0YXJ0T2ZmbGluZVJlbmRlcmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9Db250ZXh0OjpyZXN1bWVPZmZsaW5lUmVu
ZGVyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQu
aDoKKyAgICAgICAgLSBEcm9wIHNvbWUgbnVsbCBjaGVja3Mgbm93IHRoYXQgbV9kZXN0aW5hdGlv
bk5vZGUgY2FuIG5vIGxvbmdlciBiZSBudWxsLgorICAgICAgICAtIENhcHR1cmUgYW4gQWN0aXZl
RE9NT2JqZWN0OjpQZW5kaW5nQWN0aXZpdHkgd2hlbiBkb2luZyBhc3luYyB3b3JrIHRoYXQgZW5k
cyB1cCByZXNvbHZpbmcgYSBQcm9taXNlLCBzbyB0aGF0CisgICAgICAgICAgd2Uga2VlcCBib3Ro
IHRoZSBvYmplY3QgYW5kIGl0cyB3cmFwcGVyIGFsaXZlIGZvciB0aGUgZHVyYXRpb24gb2YgdGhl
IGFzeW5jIHdvcmsuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBdWRpb0NvbnRleHQ6OmNsb3NlKToK
KyAgICAgICAgRHJvcCBudWxsIGNoZWNrcyBmb3IgdGhlIGRlc3RpbmF0aW9uIG5vZGUgbm93IHRo
YXQgaXQgY2FuIG5ldmVyIGJlIG51bGwuCisKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6
CisgICAgICAgICogcmVuZGVyaW5nL0Zsb2F0aW5nT2JqZWN0cy5jcHA6CisgICAgICAgICogcmVu
ZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwOgorICAgICAgICBVcGRhdGUgY2xhc3NlcyB1c2VkIG9m
IHNpemUgcmVzdHJpY3Rpb25zIHNpbmNlIHRoZSBzaXplIG9mIGEgV2Vha1B0ciBpcyBub3QgbG9u
Z2VyIHRoZSBzYW1lIGFzIHRoZSBzaXplIG9mIGEKKyAgICAgICAgcG9pbnRlciB3aGVuIGRlYnVn
IGFzc2VydGlvbnMgYXJlIGVuYWJsZWQuIEFzIGxvbmcgYXMgdGhleSBhcmUgdGhlIHNhbWUgc2l6
ZSBpbiByZWxlYXNlIGJ1aWxkcywgdGhlcmUgaXMgbm8KKyAgICAgICAgbWVtb3J5IHVzZSBjb25j
ZXJuLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxzOjpudW1iZXJPZkJhc2VBdWRpb0NvbnRleHRzIGNvbnN0KToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoK
KyAgICAgICAgQWRkIHRlc3RpbmcgZnVuY3Rpb24gdG8gY2hlY2sgaG93IG1hbnkgQmFzZUF1ZGlv
Q29udGV4dHMgYXJlIGFsaXZlLCBzbyB0aGF0IHdlIGNhbiB3cml0ZSBsYXlvdXQgdGVzdHMgYW5k
IGNoZWNrCisgICAgICAgIGZvciBsZWFrcy4KKwogMjAyMS0wNC0wNyAgWmFsYW4gQnVqdGFzICA8
emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gUmVtb3ZlIElubGluZUxpbmVz
IGFuZCBJbmxpbmVMaW5lQm94ZXMgaW5saW5lIGNhcGFjaXR5IG9mIDEwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmgKaW5kZXgg
MzM1Zjc0NDZkMmJmZTdhM2FmMzY3YjczNWQ5MGQ2ZDQzNWVlY2Y4Yi4uMmU5ZjU2NmY4NWExMTMz
YTM3MTUxZDgwMWIzNGU3OGFmMjIyMGU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV2Vh
a1B0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaApAQCAtMzgsNiArMzgsOCBAQCBz
dHJ1Y3QgRW1wdHlDb3VudGVyIHsKICAgICBzdGF0aWMgdm9pZCBkZWNyZW1lbnQoKSB7IH0KIH07
CiAKK2VudW0gY2xhc3MgRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMgOiBib29sIHsg
Tm8sIFllcyB9OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb3VudGVyID0gRW1wdHlDb3VudGVyPiBj
bGFzcyBXZWFrUHRySW1wbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWFrUHRySW1w
bDxDb3VudGVyPj4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYWtQdHJJbXBsKTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTkxLDcgKzkzLDcgQEAgcHVibGljOgogICAg
IFQqIGdldCgpIGNvbnN0CiAgICAgewogICAgICAgICAvLyBGSVhNRTogT3VyIEdDIHRocmVhZHMg
Y3VycmVudGx5IG5lZWQgdG8gZ2V0IG9wYXF1ZSBwb2ludGVycyBmcm9tIFdlYWtQdHJzIGFuZCBo
YXZlIHRvIGJlIHNwZWNpYWwtY2FzZWQuCi0gICAgICAgIEFTU0VSVCghbV9pbXBsIHx8IFRocmVh
ZDo6bWF5QmVHQ1RocmVhZCgpIHx8IG1faW1wbC0+d2FzQ29uc3RydWN0ZWRPbk1haW5UaHJlYWQo
KSA9PSBpc01haW5UaHJlYWQoKSk7CisgICAgICAgIEFTU0VSVCghbV9pbXBsIHx8ICFtX3Nob3Vs
ZEVuYWJsZUFzc2VydGlvbnMgfHwgVGhyZWFkOjptYXlCZUdDVGhyZWFkKCkgfHwgbV9pbXBsLT53
YXNDb25zdHJ1Y3RlZE9uTWFpblRocmVhZCgpID09IGlzTWFpblRocmVhZCgpKTsKICAgICAgICAg
cmV0dXJuIG1faW1wbCA/IHN0YXRpY19jYXN0PFQqPihtX2ltcGwtPnRlbXBsYXRlIGdldDxUPigp
KSA6IG51bGxwdHI7CiAgICAgfQogCkBAIC0xMDQsMTMgKzEwNiwxMyBAQCBwdWJsaWM6CiAKICAg
ICBUKiBvcGVyYXRvci0+KCkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9pbXBsIHx8
IG1faW1wbC0+d2FzQ29uc3RydWN0ZWRPbk1haW5UaHJlYWQoKSA9PSBpc01haW5UaHJlYWQoKSk7
CisgICAgICAgIEFTU0VSVCghbV9pbXBsIHx8ICFtX3Nob3VsZEVuYWJsZUFzc2VydGlvbnMgfHwg
bV9pbXBsLT53YXNDb25zdHJ1Y3RlZE9uTWFpblRocmVhZCgpID09IGlzTWFpblRocmVhZCgpKTsK
ICAgICAgICAgcmV0dXJuIGdldCgpOwogICAgIH0KIAogICAgIFQmIG9wZXJhdG9yKigpIGNvbnN0
CiAgICAgewotICAgICAgICBBU1NFUlQoIW1faW1wbCB8fCBtX2ltcGwtPndhc0NvbnN0cnVjdGVk
T25NYWluVGhyZWFkKCkgPT0gaXNNYWluVGhyZWFkKCkpOworICAgICAgICBBU1NFUlQoIW1faW1w
bCB8fCAhbV9zaG91bGRFbmFibGVBc3NlcnRpb25zIHx8IG1faW1wbC0+d2FzQ29uc3RydWN0ZWRP
bk1haW5UaHJlYWQoKSA9PSBpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIHJldHVybiAqZ2V0KCk7
CiAgICAgfQogCkBAIC0xMjEsMTIgKzEyMywxOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5
cGVuYW1lLCB0eXBlbmFtZT4gZnJpZW5kIGNsYXNzIFdlYWtQdHI7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUsIHR5cGVuYW1lPiBmcmllbmQgY2xhc3MgV2Vha1B0ckZhY3Rvcnk7CiAKLSAgICBleHBs
aWNpdCBXZWFrUHRyKFJlZjxXZWFrUHRySW1wbDxDb3VudGVyPj4mJiByZWYpCisgICAgZXhwbGlj
aXQgV2Vha1B0cihSZWY8V2Vha1B0ckltcGw8Q291bnRlcj4+JiYgcmVmLCBFbmFibGVXZWFrUHRy
VGhyZWFkaW5nQXNzZXJ0aW9ucyBzaG91bGRFbmFibGVBc3NlcnRpb25zKQogICAgICAgICA6IG1f
aW1wbChXVEZNb3ZlKHJlZikpCisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAgLCBtX3Nob3Vs
ZEVuYWJsZUFzc2VydGlvbnMoc2hvdWxkRW5hYmxlQXNzZXJ0aW9ucyA9PSBFbmFibGVXZWFrUHRy
VGhyZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQorI2VuZGlmCiAgICAgeworICAgICAgICBVTlVTRURf
UEFSQU0oc2hvdWxkRW5hYmxlQXNzZXJ0aW9ucyk7CiAgICAgfQogCiAgICAgUmVmUHRyPFdlYWtQ
dHJJbXBsPENvdW50ZXI+PiBtX2ltcGw7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBib29sIG1f
c2hvdWxkRW5hYmxlQXNzZXJ0aW9ucyB7IHRydWUgfTsKKyNlbmRpZgogfTsKIAogLy8gTm90ZTog
eW91IHByb2JhYmx5IHdhbnQgdG8gaW5oZXJpdCBmcm9tIENhbk1ha2VXZWFrUHRyIHJhdGhlciB0
aGFuIHVzZSB0aGlzIGRpcmVjdGx5LgpAQCAtMTU5LDEyICsxNjgsMTIgQEAgcHVibGljOgogICAg
ICAgICBtX2ltcGwgPSBXZWFrUHRySW1wbDxDb3VudGVyPjo6Y3JlYXRlKGNvbnN0X2Nhc3Q8VCo+
KCZvYmplY3QpKTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBXZWFrUHRyPFUs
IENvdW50ZXI+IGNyZWF0ZVdlYWtQdHIoVSYgb2JqZWN0KSBjb25zdAorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFU+IFdlYWtQdHI8VSwgQ291bnRlcj4gY3JlYXRlV2Vha1B0cihVJiBvYmplY3QsIEVu
YWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3Nl
cnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykgY29uc3QKICAg
ICB7CiAgICAgICAgIGluaXRpYWxpemVJZk5lZWRlZChvYmplY3QpOwogCiAgICAgICAgIEFTU0VS
VCgmb2JqZWN0ID09IG1faW1wbC0+dGVtcGxhdGUgZ2V0PFQ+KCkpOwotICAgICAgICByZXR1cm4g
V2Vha1B0cjxVLCBDb3VudGVyPihtYWtlUmVmKCptX2ltcGwpKTsKKyAgICAgICAgcmV0dXJuIFdl
YWtQdHI8VSwgQ291bnRlcj4obWFrZVJlZigqbV9pbXBsKSwgZW5hYmxlV2Vha1B0clRocmVhZGlu
Z0Fzc2VydGlvbnMpOwogICAgIH0KIAogICAgIHZvaWQgcmV2b2tlQWxsKCkKQEAgLTI0NCwxNiAr
MjUzLDE2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIENvdW50ZXI+IHRlbXBsYXRl
PHR5cGVuYW1lIFU+IGlubGluZSBXZWFrUHRyPFQsIENvCiAgICAgcmV0dXJuICp0aGlzOwogfQog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgYXV0byBtYWtlV2Vha1B0cihUJiBvYmplY3Qp
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgYXV0byBtYWtlV2Vha1B0cihUJiBvYmplY3Qs
IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdB
c3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKIHsKLSAg
ICByZXR1cm4gb2JqZWN0LndlYWtQdHJGYWN0b3J5KCkudGVtcGxhdGUgY3JlYXRlV2Vha1B0cjxU
PihvYmplY3QpOworICAgIHJldHVybiBvYmplY3Qud2Vha1B0ckZhY3RvcnkoKS50ZW1wbGF0ZSBj
cmVhdGVXZWFrUHRyPFQ+KG9iamVjdCwgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMp
OwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgYXV0byBtYWtlV2Vha1B0cihUKiBw
dHIpIC0+IGRlY2x0eXBlKG1ha2VXZWFrUHRyKCpwdHIpKQordGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIGF1dG8gbWFrZVdlYWtQdHIoVCogcHRyLCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNz
ZXJ0aW9ucyBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA9IEVuYWJsZVdlYWtQdHJU
aHJlYWRpbmdBc3NlcnRpb25zOjpZZXMpIC0+IGRlY2x0eXBlKG1ha2VXZWFrUHRyKCpwdHIpKQog
ewogICAgIGlmICghcHRyKQogICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBtYWtlV2Vh
a1B0cigqcHRyKTsKKyAgICByZXR1cm4gbWFrZVdlYWtQdHIoKnB0ciwgZW5hYmxlV2Vha1B0clRo
cmVhZGluZ0Fzc2VydGlvbnMpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBV
LCB0eXBlbmFtZSBDb3VudGVyPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFdlYWtQdHI8
VCwgQ291bnRlcj4mIGEsIGNvbnN0IFdlYWtQdHI8VSwgQ291bnRlcj4mIGIpCkBAIC0yODksNiAr
Mjk4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgQ291bnRl
cj4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShUKiBhLAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVz
aW5nIFdURjo6Q2FuTWFrZVdlYWtQdHI7Cit1c2luZyBXVEY6OkVuYWJsZVdlYWtQdHJUaHJlYWRp
bmdBc3NlcnRpb25zOwogdXNpbmcgV1RGOjpXZWFrUHRyOwogdXNpbmcgV1RGOjpXZWFrUHRyRmFj
dG9yeTsKIHVzaW5nIFdURjo6V2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCBhMDgz
MDlmMDE4ZjFhM2U3MzliMzdiNWFkNWEyMGQyY2RhNTY5ZDQ1Li43YTVjYjhjYTk5MTE0Mjc3NjRm
NGFhOTE3NjA4MTk1MTc5MjVhMzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCkBAIC0xNTIsMTUgKzE1MiwxMSBAQCBkb3VibGUgQXVk
aW9Db250ZXh0OjpiYXNlTGF0ZW5jeSgpCiB7CiAgICAgbGF6eUluaXRpYWxpemUoKTsKIAotICAg
IGF1dG8qIGRlc3RpbmF0aW9uID0gdGhpcy0+ZGVzdGluYXRpb24oKTsKLSAgICByZXR1cm4gZGVz
dGluYXRpb24gPyBzdGF0aWNfY2FzdDxkb3VibGU+KGRlc3RpbmF0aW9uLT5mcmFtZXNQZXJCdWZm
ZXIoKSkgLyBzYW1wbGVSYXRlKCkgOiAwLjsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91Ymxl
PihkZXN0aW5hdGlvbigpLmZyYW1lc1BlckJ1ZmZlcigpKSAvIHNhbXBsZVJhdGUoKTsKIH0KIAog
QXVkaW9UaW1lc3RhbXAgQXVkaW9Db250ZXh0OjpnZXRPdXRwdXRUaW1lc3RhbXAoRE9NV2luZG93
JiB3aW5kb3cpCiB7Ci0gICAgaWYgKCFkZXN0aW5hdGlvbigpKQotICAgICAgICByZXR1cm4geyAw
LCAwIH07Ci0KICAgICBhdXRvJiBwZXJmb3JtYW5jZSA9IHdpbmRvdy5wZXJmb3JtYW5jZSgpOwog
CiAgICAgYXV0byBwb3NpdGlvbiA9IG91dHB1dFBvc2l0aW9uKCk7CkBAIC0xODIsNyArMTc4LDcg
QEAgdm9pZCBBdWRpb0NvbnRleHQ6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHBy
b21pc2UpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoc3RhdGUoKSA9PSBTdGF0
ZTo6Q2xvc2VkIHx8ICFkZXN0aW5hdGlvbk5vZGUoKSkgeworICAgIGlmIChzdGF0ZSgpID09IFN0
YXRlOjpDbG9zZWQpIHsKICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC0xOTEsMTUgKzE4NywyMCBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6Y2xvc2Uo
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIAogICAgIGxhenlJbml0aWFsaXpl
KCk7CiAKLSAgICBkZXN0aW5hdGlvbk5vZGUoKS0+Y2xvc2UoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKV0geworICAgIGRlc3RpbmF0aW9uKCkuY2xvc2UoW3RoaXMsIGFjdGl2
aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldIHsKICAgICAgICAgc2V0U3RhdGUoU3Rh
dGU6OkNsb3NlZCk7CiAgICAgICAgIHVuaW5pdGlhbGl6ZSgpOwogICAgIH0pOwogfQogCi1EZWZh
dWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUqIEF1ZGlvQ29udGV4dDo6ZGVzdGluYXRpb24oKQorRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlJiBBdWRpb0NvbnRleHQ6OmRlc3RpbmF0aW9uKCkKK3sK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlJj4oQmFz
ZUF1ZGlvQ29udGV4dDo6ZGVzdGluYXRpb24oKSk7Cit9CisKK2NvbnN0IERlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZSYgQXVkaW9Db250ZXh0OjpkZXN0aW5hdGlvbigpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZSo+KEJhc2VBdWRp
b0NvbnRleHQ6OmRlc3RpbmF0aW9uKCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBE
ZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUmPihCYXNlQXVkaW9Db250ZXh0OjpkZXN0aW5hdGlv
bigpKTsKIH0KIAogdm9pZCBBdWRpb0NvbnRleHQ6OnN1c3BlbmRSZW5kZXJpbmcoRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKQEAgLTIwOSw3ICsyMTAsNyBAQCB2b2lkIEF1ZGlv
Q29udGV4dDo6c3VzcGVuZFJlbmRlcmluZyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGlzU3RvcHBlZCgpIHx8IHN0
YXRlKCkgPT0gU3RhdGU6OkNsb3NlZCB8fCAhZGVzdGluYXRpb25Ob2RlKCkpIHsKKyAgICBpZiAo
aXNTdG9wcGVkKCkgfHwgc3RhdGUoKSA9PSBTdGF0ZTo6Q2xvc2VkKSB7CiAgICAgICAgIHByb21p
c2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ29udGV4dCBpcyBjbG9z
ZWQiX3MgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMjMsNyArMjI0LDcgQEAgdm9p
ZCBBdWRpb0NvbnRleHQ6OnN1c3BlbmRSZW5kZXJpbmcoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYgcHJvbWlzZSkKIAogICAgIGxhenlJbml0aWFsaXplKCk7CiAKLSAgICBkZXN0aW5hdGlvbk5v
ZGUoKS0+c3VzcGVuZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikg
bXV0YWJsZSB7CisgICAgZGVzdGluYXRpb24oKS5zdXNwZW5kKFt0aGlzLCBhY3Rpdml0eSA9IG1h
a2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oT3B0
aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmIChleGNl
cHRpb24pIHsKICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4Y2VwdGlvbikp
OwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjQwLDcgKzI0MSw3IEBAIHZvaWQgQXVkaW9Db250
ZXh0OjpyZXN1bWVSZW5kZXJpbmcoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChpc1N0b3BwZWQoKSB8fCBzdGF0ZSgp
ID09IFN0YXRlOjpDbG9zZWQgfHwgIWRlc3RpbmF0aW9uTm9kZSgpKSB7CisgICAgaWYgKGlzU3Rv
cHBlZCgpIHx8IHN0YXRlKCkgPT0gU3RhdGU6OkNsb3NlZCkgewogICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNvbnRleHQgaXMgY2xvc2VkIl9z
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjU0LDcgKzI1NSw3IEBAIHZvaWQgQXVk
aW9Db250ZXh0OjpyZXN1bWVSZW5kZXJpbmcoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJv
bWlzZSkKIAogICAgIGxhenlJbml0aWFsaXplKCk7CiAKLSAgICBkZXN0aW5hdGlvbk5vZGUoKS0+
cmVzdW1lKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxl
IHsKKyAgICBkZXN0aW5hdGlvbigpLnJlc3VtZShbdGhpcywgYWN0aXZpdHkgPSBtYWtlUGVuZGlu
Z0FjdGl2aXR5KCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKE9wdGlvbmFsPEV4
Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgewogICAgICAgICBpZiAoZXhjZXB0aW9uKSB7
CiAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKCpleGNlcHRpb24pKTsKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTI5MywxMCArMjk0LDEwIEBAIHZvaWQgQXVkaW9Db250ZXh0Ojpz
dGFydFJlbmRlcmluZygpCiAgICAgaWYgKGlzU3RvcHBlZCgpIHx8ICF3aWxsQmVnaW5QbGF5YmFj
aygpIHx8IG1fd2FzU3VzcGVuZGVkQnlTY3JpcHQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1h
a2VQZW5kaW5nQWN0aXZpdHkoKTsKKyAgICBzZXRQZW5kaW5nQWN0aXZpdHkoKTsKIAogICAgIGxh
enlJbml0aWFsaXplKCk7Ci0gICAgZGVzdGluYXRpb24oKS0+c3RhcnRSZW5kZXJpbmcoW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4
Y2VwdGlvbikgeworICAgIGRlc3RpbmF0aW9uKCkuc3RhcnRSZW5kZXJpbmcoW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlv
bikgewogICAgICAgICBpZiAoIWV4Y2VwdGlvbikKICAgICAgICAgICAgIHNldFN0YXRlKFN0YXRl
OjpSdW5uaW5nKTsKICAgICB9KTsKQEAgLTMwOSw3ICszMTAsNyBAQCB2b2lkIEF1ZGlvQ29udGV4
dDo6bGF6eUluaXRpYWxpemUoKQogCiAgICAgQmFzZUF1ZGlvQ29udGV4dDo6bGF6eUluaXRpYWxp
emUoKTsKICAgICBpZiAoaXNJbml0aWFsaXplZCgpKSB7Ci0gICAgICAgIGlmIChkZXN0aW5hdGlv
bk5vZGUoKSAmJiBzdGF0ZSgpICE9IFN0YXRlOjpSdW5uaW5nKSB7CisgICAgICAgIGlmIChzdGF0
ZSgpICE9IFN0YXRlOjpSdW5uaW5nKSB7CiAgICAgICAgICAgICAvLyBUaGlzIHN0YXJ0cyB0aGUg
YXVkaW8gdGhyZWFkLiBUaGUgZGVzdGluYXRpb24gbm9kZSdzIHByb3ZpZGVJbnB1dCgpIG1ldGhv
ZCB3aWxsIG5vdyBiZSBjYWxsZWQgcmVwZWF0ZWRseSB0byByZW5kZXIgYXVkaW8uCiAgICAgICAg
ICAgICAvLyBFYWNoIHRpbWUgcHJvdmlkZUlucHV0KCkgaXMgY2FsbGVkLCBhIHBvcnRpb24gb2Yg
dGhlIGF1ZGlvIHN0cmVhbSBpcyByZW5kZXJlZC4gTGV0J3MgY2FsbCB0aGlzIHRpbWUgcGVyaW9k
IGEgInJlbmRlciBxdWFudHVtIi4KICAgICAgICAgICAgIC8vIE5PVEU6IGZvciBub3cgZGVmYXVs
dCBBdWRpb0NvbnRleHQgZG9lcyBub3QgbmVlZCBhbiBleHBsaWNpdCBzdGFydFJlbmRlcmluZygp
IGNhbGwgZnJvbSBKYXZhU2NyaXB0LgpAQCAtMzQ2LDcgKzM0Nyw3IEBAIGJvb2wgQXVkaW9Db250
ZXh0Ojp3aWxsUGF1c2VQbGF5YmFjaygpCiAKIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBBdWRpb0NvbnRleHQ6Om1lZGlhU3RhdGUoKSBjb25zdAogewotICAgIGlmICghaXNTdG9wcGVk
KCkgJiYgZGVzdGluYXRpb25Ob2RlKCkgJiYgZGVzdGluYXRpb25Ob2RlKCktPmlzUGxheWluZ0F1
ZGlvKCkpCisgICAgaWYgKCFpc1N0b3BwZWQoKSAmJiBkZXN0aW5hdGlvbigpLmlzUGxheWluZ0F1
ZGlvKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdBdWRpbzsKIAog
ICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmc7CkBAIC0zNTQsNyArMzU1LDcg
QEAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFTdGF0
ZSgpIGNvbnN0CiAKIHZvaWQgQXVkaW9Db250ZXh0OjptYXlSZXN1bWVQbGF5YmFjayhib29sIHNo
b3VsZFJlc3VtZSkKIHsKLSAgICBpZiAoIWRlc3RpbmF0aW9uTm9kZSgpIHx8IHN0YXRlKCkgPT0g
U3RhdGU6OkNsb3NlZCB8fCBzdGF0ZSgpID09IFN0YXRlOjpSdW5uaW5nKQorICAgIGlmIChzdGF0
ZSgpID09IFN0YXRlOjpDbG9zZWQgfHwgIWlzSW5pdGlhbGl6ZWQoKSB8fCBzdGF0ZSgpID09IFN0
YXRlOjpSdW5uaW5nKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIXNob3VsZFJlc3VtZSkg
ewpAQCAtMzY3LDcgKzM2OCw3IEBAIHZvaWQgQXVkaW9Db250ZXh0OjptYXlSZXN1bWVQbGF5YmFj
ayhib29sIHNob3VsZFJlc3VtZSkKIAogICAgIGxhenlJbml0aWFsaXplKCk7CiAKLSAgICBkZXN0
aW5hdGlvbk5vZGUoKS0+cmVzdW1lKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIHsKKyAgICBkZXN0aW5hdGlvbigp
LnJlc3VtZShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShPcHRpb25hbDxF
eGNlcHRpb24+JiYgZXhjZXB0aW9uKSB7CiAgICAgICAgIHNldFN0YXRlKGV4Y2VwdGlvbiA/IFN0
YXRlOjpTdXNwZW5kZWQgOiBTdGF0ZTo6UnVubmluZyk7CiAgICAgfSk7CiB9CkBAIC00NDEsMTIg
KzQ0MiwxMiBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6cmVzdW1lKCkKIAogdm9pZCBBdWRpb0NvbnRl
eHQ6OnN1c3BlbmRQbGF5YmFjaygpCiB7Ci0gICAgaWYgKCFkZXN0aW5hdGlvbk5vZGUoKSB8fCBz
dGF0ZSgpID09IFN0YXRlOjpDbG9zZWQpCisgICAgaWYgKHN0YXRlKCkgPT0gU3RhdGU6OkNsb3Nl
ZCB8fCAhaXNJbml0aWFsaXplZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBsYXp5SW5pdGlh
bGl6ZSgpOwogCi0gICAgZGVzdGluYXRpb25Ob2RlKCktPnN1c3BlbmQoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikg
eworICAgIGRlc3RpbmF0aW9uKCkuc3VzcGVuZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSB7CiAgICAgICAgIGlm
IChleGNlcHRpb24pCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTQ2OCw4ICs0NjksOCBAQCBi
b29sIEF1ZGlvQ29udGV4dDo6aXNTdXNwZW5kZWQoKSBjb25zdAogCiB2b2lkIEF1ZGlvQ29udGV4
dDo6cGFnZU11dGVkU3RhdGVEaWRDaGFuZ2UoKQogewotICAgIGlmIChkZXN0aW5hdGlvbk5vZGUo
KSAmJiBkb2N1bWVudCgpICYmIGRvY3VtZW50KCktPnBhZ2UoKSkKLSAgICAgICAgZGVzdGluYXRp
b25Ob2RlKCktPnNldE11dGVkKGRvY3VtZW50KCktPnBhZ2UoKS0+aXNBdWRpb011dGVkKCkpOwor
ICAgIGlmIChkb2N1bWVudCgpICYmIGRvY3VtZW50KCktPnBhZ2UoKSkKKyAgICAgICAgZGVzdGlu
YXRpb24oKS5zZXRNdXRlZChkb2N1bWVudCgpLT5wYWdlKCktPmlzQXVkaW9NdXRlZCgpKTsKIH0K
IAogdm9pZCBBdWRpb0NvbnRleHQ6Om1lZGlhQ2FuU3RhcnQoRG9jdW1lbnQmIGRvY3VtZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKaW5kZXgg
YzU1YTUyOTZkNjc0NWU4YmIxMGIxNWIyOWZkOTQzZjlhNjVjYjY1Ni4uOGMwYWUzNWUwN2Y2M2Ji
OTdiNzRhN2U3ZDNmYWZhMjRkMTcxMzFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC01NSw3ICs1NSw4IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogCi0gICAgRGVmYXVsdEF1
ZGlvRGVzdGluYXRpb25Ob2RlKiBkZXN0aW5hdGlvbigpOworICAgIERlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZSYgZGVzdGluYXRpb24oKTsKKyAgICBjb25zdCBEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGUmIGRlc3RpbmF0aW9uKCkgY29uc3Q7CiAgICAgZG91YmxlIGJhc2VMYXRlbmN5KCk7
CiAKICAgICBBdWRpb1RpbWVzdGFtcCBnZXRPdXRwdXRUaW1lc3RhbXAoRE9NV2luZG93Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRp
b25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5h
dGlvbk5vZGUuY3BwCmluZGV4IDJkMTAwNjI5ZTBmYWMyY2Y0MjdkMDg0MTNjMzNiM2EzODUzNWQ4
MzQuLjQ1MTNmN2Q4NjU4NmNiNzZjZDJmM2U0M2IyY2ZkNjEzMzk4MjQ0MTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5v
ZGUuY3BwCkBAIC0xNDYsNiArMTQ2LDE2IEBAIHZvaWQgQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnVw
ZGF0ZUlzRWZmZWN0aXZlbHlQbGF5aW5nQXVkaW8oKQogICAgIGNvbnRleHQoKS5pc1BsYXlpbmdB
dWRpb0RpZENoYW5nZSgpOwogfQogCit2b2lkIEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZWYoKQor
eworICAgIGNvbnRleHQoKS5yZWYoKTsKK30KKwordm9pZCBBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6
ZGVyZWYoKQoreworICAgIGNvbnRleHQoKS5kZXJlZigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IDU0
MDNmYWVhY2NmNWU0OGUzNzU2MWZlMjM4ZmVjMDBiOGIzNTA2NDguLjI2ZjU2MzU0YWJhOWVlZmJk
ODRiODQzYzI5Y2NhNjQ4NDZiNzkwNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmgKQEAgLTY2LDYgKzY2LDEwIEBA
IHB1YmxpYzoKICAgICBib29sIGlzUGxheWluZ0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9pc0Vm
ZmVjdGl2ZWx5UGxheWluZ0F1ZGlvOyB9CiAgICAgdm9pZCBzZXRNdXRlZChib29sIG11dGVkKSB7
IG1fbXV0ZWQgPSBtdXRlZDsgfQogCisgICAgLy8gQXVkaW9EZXN0aW5hdGlvbk5vZGVzIGFyZSBv
d25lZCBieSB0aGUgQmFzZUF1ZGlvQ29udGV4dCBzbyB3ZSBmb3J3YXJkIHRoZSByZWZjb3VudGlu
ZyB0byBpdHMgQmFzZUF1ZGlvQ29udGV4dC4KKyAgICB2b2lkIHJlZigpIGZpbmFsOworICAgIHZv
aWQgZGVyZWYoKSBmaW5hbDsKKwogcHJvdGVjdGVkOgogICAgIGRvdWJsZSB0YWlsVGltZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KICAgICBkb3VibGUgbGF0ZW5jeVRpbWUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmNwcAppbmRleCA1NTY0ZTZkYjk1YWIyMTczY2MzZmM5MWM0
NWY1ZDM2OGM5NjdiZGIwLi4zMWY4NDhiNjljZmEwNWFmNzIyZTdiNTIxOTYxM2ExNjU1MTk5N2U1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVu
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5l
ci5jcHAKQEAgLTkxLDcgKzkxLDEwIEBAIGJvb2wgQXVkaW9MaXN0ZW5lcjo6c2hvdWxkVXNlQVJh
dGUoKSBjb25zdAogCiB2b2lkIEF1ZGlvTGlzdGVuZXI6OnVwZGF0ZVZhbHVlc0lmTmVlZGVkKHNp
emVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7Ci0gICAgZG91YmxlIGN1cnJlbnRUaW1lID0gcG9zaXRp
b25YKCkuY29udGV4dCgpLmN1cnJlbnRUaW1lKCk7CisgICAgaWYgKCFwb3NpdGlvblgoKS5jb250
ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IHBvc2l0
aW9uWCgpLmNvbnRleHQoKS0+Y3VycmVudFRpbWUoKTsKICAgICBpZiAobV9sYXN0VXBkYXRlVGlt
ZSAhPSBjdXJyZW50VGltZSkgewogICAgICAgICAvLyBUaW1lIGhhcyBjaGFuZ2VkLiBVcGRhdGUg
YWxsIG9mIHRoZSBhdXRvbWF0aW9uIHZhbHVlcyBub3cuCiAgICAgICAgIG1fbGFzdFVwZGF0ZVRp
bWUgPSBjdXJyZW50VGltZTsKQEAgLTE3Nyw4ICsxODAsMTAgQEAgY29uc3QgZmxvYXQqIEF1ZGlv
TGlzdGVuZXI6OnVwWlZhbHVlcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogRXhjZXB0aW9uT3I8
dm9pZD4gQXVkaW9MaXN0ZW5lcjo6c2V0UG9zaXRpb24oZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
eikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlmICghbV9wb3NpdGlvblgt
PmNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGRvdWJsZSBub3cgPSBtX3Bv
c2l0aW9uWC0+Y29udGV4dCgpLmN1cnJlbnRUaW1lKCk7CisgICAgZG91YmxlIG5vdyA9IG1fcG9z
aXRpb25YLT5jb250ZXh0KCktPmN1cnJlbnRUaW1lKCk7CiAKICAgICBhdXRvIHJlc3VsdCA9IG1f
cG9zaXRpb25YLT5zZXRWYWx1ZUF0VGltZSh4LCBub3cpOwogICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpCkBAIC0yMDEsOCArMjA2LDEwIEBAIEZsb2F0UG9pbnQzRCBBdWRpb0xpc3RlbmVy
Ojpwb3NpdGlvbigpIGNvbnN0CiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb0xpc3RlbmVyOjpzZXRP
cmllbnRhdGlvbihmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCB1cFgsIGZsb2F0IHVw
WSwgZmxvYXQgdXBaKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgaWYgKCFt
X2ZvcndhcmRYLT5jb250ZXh0KCkpCisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBkb3VibGUg
bm93ID0gbV9mb3J3YXJkWC0+Y29udGV4dCgpLmN1cnJlbnRUaW1lKCk7CisgICAgZG91YmxlIG5v
dyA9IG1fZm9yd2FyZFgtPmNvbnRleHQoKS0+Y3VycmVudFRpbWUoKTsKIAogICAgIGF1dG8gcmVz
dWx0ID0gbV9mb3J3YXJkWC0+c2V0VmFsdWVBdFRpbWUoeCwgbm93KTsKICAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b05vZGUuY3BwCmluZGV4IDZmYzNmOWExOTQ2OGZjNjdkOTE3NDAxMTJhZWY3NjkyMGFkYTg1OGYu
LjQ0ZTYyYmQ3MjIwZTJkYzE4MzMzZDljNmM2MTRmM2FiMDBmOGFjNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKQEAgLTk5LDkgKzk5LDE3IEBA
IFN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhBdWRpb05vZGU6Ok5vZGVUeXBlIGVu
dW1lcmF0aW9uVmFsdWUpCiAgICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVu
dW1lcmF0aW9uVmFsdWUpXTsKIH0KIAorYXV0byBBdWRpb05vZGU6OnRvV2Vha09yU3Ryb25nQ29u
dGV4dChCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBOb2RlVHlwZSBub2RlVHlwZSkgLT4gV2Vh
a09yU3Ryb25nQ29udGV4dAoreworICAgIC8vIERlc3RpbmF0aW9uIG5vZGVzIGFyZSBvd25lZCBi
eSB0aGUgQmFzZUF1ZGlvQ29udGV4dCBzbyB3ZSB1c2UgV2Vha1B0ciB0byBhdm9pZCBhIHJldGFp
biBjeWNsZS4KKyAgICBpZiAobm9kZVR5cGUgPT0gQXVkaW9Ob2RlOjpOb2RlVHlwZURlc3RpbmF0
aW9uKQorICAgICAgICByZXR1cm4gbWFrZVdlYWtQdHIoY29udGV4dCwgRW5hYmxlV2Vha1B0clRo
cmVhZGluZ0Fzc2VydGlvbnM6Ok5vKTsgLy8gV2ViQXVkaW8gY29kZSB1c2VzIGxvY2tpbmcgd2hl
biBhY2Nlc3NpbmcgdGhlIGNvbnRleHQuCisgICAgcmV0dXJuIG1ha2VSZWYoY29udGV4dCk7Cit9
CisKIEF1ZGlvTm9kZTo6QXVkaW9Ob2RlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIE5vZGVU
eXBlIHR5cGUpCiAgICAgOiBtX25vZGVUeXBlKHR5cGUpCi0gICAgLCBtX2NvbnRleHQoY29udGV4
dCkKKyAgICAsIG1fY29udGV4dCh0b1dlYWtPclN0cm9uZ0NvbnRleHQoY29udGV4dCwgdHlwZSkp
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihjb250ZXh0LmxvZ2dl
cigpKQogICAgICwgbV9sb2dJZGVudGlmaWVyKGNvbnRleHQubmV4dEF1ZGlvTm9kZUxvZ0lkZW50
aWZpZXIoKSkKQEAgLTIxNSw3ICsyMjMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6
OmNvbm5lY3QoQXVkaW9QYXJhbSYgcGFyYW0sIHVuc2lnbmVkIG91dHB1dEluZGV4KQogICAgIGlm
IChvdXRwdXRJbmRleCA+PSBudW1iZXJPZk91dHB1dHMoKSkKICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEluZGV4U2l6ZUVycm9yLCAiT3V0cHV0IGluZGV4IGV4Y2VlZHMgbnVtYmVyIG9mIG91
dHB1dHMiX3MgfTsKIAotICAgIGlmICgmY29udGV4dCgpICE9ICZwYXJhbS5jb250ZXh0KCkpCisg
ICAgaWYgKCZjb250ZXh0KCkgIT0gcGFyYW0uY29udGV4dCgpKQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgU3ludGF4RXJyb3IsICJOb2RlIGFuZCBBdWRpb1BhcmFtIGJlbG9uZyB0byBkaWZm
ZXJlbnQgYXVkaW8gY29udGV4dHMiX3MgfTsKIAogICAgIGF1dG8qIG91dHB1dCA9IHRoaXMtPm91
dHB1dChvdXRwdXRJbmRleCk7CkBAIC0zNjcsNyArMzc1LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4g
QXVkaW9Ob2RlOjpkaXNjb25uZWN0KEF1ZGlvUGFyYW0mIGRlc3RpbmF0aW9uUGFyYW0sIHVuc2ln
bmVkIG8KIAogZmxvYXQgQXVkaW9Ob2RlOjpzYW1wbGVSYXRlKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gbV9jb250ZXh0LT5zYW1wbGVSYXRlKCk7CisgICAgcmV0dXJuIGNvbnRleHQoKS5zYW1wbGVS
YXRlKCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6c2V0Q2hhbm5lbENvdW50
KHVuc2lnbmVkIGNoYW5uZWxDb3VudCkKQEAgLTYyNSw2ICs2MzMsMTAgQEAgdm9pZCBBdWRpb05v
ZGU6Om1hcmtOb2RlRm9yRGVsZXRpb25JZk5lY2Vzc2FyeSgpCiAgICAgaWYgKG1fY29ubmVjdGlv
blJlZkNvdW50IHx8IG1fbm9ybWFsUmVmQ291bnQgfHwgbV9pc01hcmtlZEZvckRlbGV0aW9uKQog
ICAgICAgICByZXR1cm47CiAKKyAgICAvLyBBdWRpb0Rlc3RpbmF0aW9uTm9kZXMgYXJlIG93bmVk
IGJ5IHRoZWlyIEJhc2VBdWRpb0NvbnRleHQgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBtYXJrIHRo
ZW0gZm9yIGRlbGV0aW9uLgorICAgIGlmIChub2RlVHlwZSgpID09IE5vZGVUeXBlRGVzdGluYXRp
b24pCisgICAgICAgIHJldHVybjsKKwogICAgIC8vIEFsbCByZWZlcmVuY2VzIGFyZSBnb25lIC0g
d2UgbmVlZCB0byBnbyBhd2F5LgogICAgIGZvciAoYXV0byYgb3V0cHV0IDogbV9vdXRwdXRzKQog
ICAgICAgICBvdXRwdXQtPmRpc2Nvbm5lY3RBbGwoKTsgLy8gVGhpcyB3aWxsIGRlcmVmKCkgbm9k
ZXMgd2UncmUgY29ubmVjdGVkIHRvLgpAQCAtNjYxLDExICs2NzMsMTIgQEAgdm9pZCBBdWRpb05v
ZGU6OmRlcmVmKCkKICAgICAgICAgY29udGV4dCgpLmRlbGV0ZU1hcmtlZE5vZGVzKCk7CiB9CiAK
LVZhcmlhbnQ8UmVmUHRyPEJhc2VBdWRpb0NvbnRleHQ+LCBSZWZQdHI8V2ViS2l0QXVkaW9Db250
ZXh0Pj4gQXVkaW9Ob2RlOjpjb250ZXh0Rm9yQmluZGluZ3MoKSBjb25zdAorVmFyaWFudDxSZWZQ
dHI8QmFzZUF1ZGlvQ29udGV4dD4sIFJlZlB0cjxXZWJLaXRBdWRpb0NvbnRleHQ+PiBBdWRpb05v
ZGU6OmNvbnRleHRGb3JCaW5kaW5ncygpCiB7Ci0gICAgaWYgKG1fY29udGV4dC0+aXNXZWJLaXRB
dWRpb0NvbnRleHQoKSkKLSAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIoc3RhdGljX2Nhc3Q8V2Vi
S2l0QXVkaW9Db250ZXh0Jj4obV9jb250ZXh0LmdldCgpKSk7Ci0gICAgcmV0dXJuIG1ha2VSZWZQ
dHIobV9jb250ZXh0LmdldCgpKTsKKyAgICBhdXRvJiBjb250ZXh0ID0gdGhpcy0+Y29udGV4dCgp
OworICAgIGlmIChjb250ZXh0LmlzV2ViS2l0QXVkaW9Db250ZXh0KCkpCisgICAgICAgIHJldHVy
biBtYWtlUmVmUHRyKHN0YXRpY19jYXN0PFdlYktpdEF1ZGlvQ29udGV4dCY+KGNvbnRleHQpKTsK
KyAgICByZXR1cm4gbWFrZVJlZlB0cihjb250ZXh0KTsKIH0KIAogdm9pZCBBdWRpb05vZGU6OmRl
cmVmV2l0aExvY2soKQpAQCAtNjk5LDYgKzcxMiwyNCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRp
b05vZGU6OmhhbmRsZUF1ZGlvTm9kZU9wdGlvbnMoY29uc3QgQXVkaW9Ob2RlT3B0aW9ucyYgb3B0
aQogICAgIHJldHVybiB7IH07CiB9CiAKK0Jhc2VBdWRpb0NvbnRleHQmIEF1ZGlvTm9kZTo6Y29u
dGV4dCgpCit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9jb250ZXh0LCBbXShSZWY8QmFz
ZUF1ZGlvQ29udGV4dD4mIGNvbnRleHQpIC0+IEJhc2VBdWRpb0NvbnRleHQmIHsKKyAgICAgICAg
cmV0dXJuIGNvbnRleHQuZ2V0KCk7CisgICAgfSwgW10oV2Vha1B0cjxCYXNlQXVkaW9Db250ZXh0
PiYgY29udGV4dCkgLT4gQmFzZUF1ZGlvQ29udGV4dCYgeworICAgICAgICByZXR1cm4gKmNvbnRl
eHQ7CisgICAgfSk7Cit9CisKK2NvbnN0IEJhc2VBdWRpb0NvbnRleHQmIEF1ZGlvTm9kZTo6Y29u
dGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9jb250ZXh0LCBbXShj
b25zdCBSZWY8QmFzZUF1ZGlvQ29udGV4dD4mIGNvbnRleHQpIC0+IGNvbnN0IEJhc2VBdWRpb0Nv
bnRleHQmIHsKKyAgICAgICAgcmV0dXJuIGNvbnRleHQuZ2V0KCk7CisgICAgfSwgW10oY29uc3Qg
V2Vha1B0cjxCYXNlQXVkaW9Db250ZXh0PiYgY29udGV4dCkgLT4gY29uc3QgQmFzZUF1ZGlvQ29u
dGV4dCYgeworICAgICAgICByZXR1cm4gKmNvbnRleHQ7CisgICAgfSk7Cit9CisKICNpZiBERUJV
R19BVURJT05PREVfUkVGRVJFTkNFUwogCiBib29sIEF1ZGlvTm9kZTo6c19pc05vZGVDb3VudElu
aXRpYWxpemVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b05vZGUuaAppbmRleCBlMWE1Y2MyZWZjYzJmYzQ3NmY5NmM0NWNmMTMzMjJjMTMxMzRiMDNhLi4y
Mjc1YzUzNzcyZjNmMjU3MDZjMjQ5NWI2MDBhMWE0ZmM3NTJlMmMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmgKQEAgLTg3LDE2ICs4NywxNiBAQCBwdWJs
aWM6CiAgICAgQXVkaW9Ob2RlKEJhc2VBdWRpb0NvbnRleHQmLCBOb2RlVHlwZSk7CiAgICAgdmly
dHVhbCB+QXVkaW9Ob2RlKCk7CiAKLSAgICBCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0KCkgeyBy
ZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9Ci0gICAgY29uc3QgQmFzZUF1ZGlvQ29udGV4dCYgY29u
dGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQorICAgIEJhc2VBdWRpb0Nv
bnRleHQmIGNvbnRleHQoKTsKKyAgICBjb25zdCBCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0KCkg
Y29uc3Q7CiAKLSAgICBWYXJpYW50PFJlZlB0cjxCYXNlQXVkaW9Db250ZXh0PiwgUmVmUHRyPFdl
YktpdEF1ZGlvQ29udGV4dD4+IGNvbnRleHRGb3JCaW5kaW5ncygpIGNvbnN0OworICAgIFZhcmlh
bnQ8UmVmUHRyPEJhc2VBdWRpb0NvbnRleHQ+LCBSZWZQdHI8V2ViS2l0QXVkaW9Db250ZXh0Pj4g
Y29udGV4dEZvckJpbmRpbmdzKCk7CiAKICAgICBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbm9kZVR5cGU7IH0KIAogICAgIC8vIENhbiBiZSBjYWxsZWQgZnJvbSBtYWluIHRo
cmVhZCBvciBjb250ZXh0J3MgYXVkaW8gdGhyZWFkLgotICAgIHZvaWQgcmVmKCk7Ci0gICAgdm9p
ZCBkZXJlZigpOworICAgIHZpcnR1YWwgdm9pZCByZWYoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVy
ZWYoKTsKICAgICB2b2lkIGluY3JlbWVudENvbm5lY3Rpb25Db3VudCgpOwogICAgIHZvaWQgZGVj
cmVtZW50Q29ubmVjdGlvbkNvdW50KCk7CiAKQEAgLTIzMCwxMyArMjMwLDE3IEBAIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUHVsbFN0YXR1cygpIHsgfQogCiBwcml2YXRlOgor
ICAgIHVzaW5nIFdlYWtPclN0cm9uZ0NvbnRleHQgPSBWYXJpYW50PFJlZjxCYXNlQXVkaW9Db250
ZXh0PiwgV2Vha1B0cjxCYXNlQXVkaW9Db250ZXh0Pj47CisgICAgc3RhdGljIFdlYWtPclN0cm9u
Z0NvbnRleHQgdG9XZWFrT3JTdHJvbmdDb250ZXh0KEJhc2VBdWRpb0NvbnRleHQmLCBOb2RlVHlw
ZSk7CisKICAgICAvLyBFdmVudFRhcmdldAogICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50
VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9sYXRp
bGUgYm9vbCBtX2lzSW5pdGlhbGl6ZWQgeyBmYWxzZSB9OwogICAgIE5vZGVUeXBlIG1fbm9kZVR5
cGU7Ci0gICAgUmVmPEJhc2VBdWRpb0NvbnRleHQ+IG1fY29udGV4dDsKKworICAgIFdlYWtPclN0
cm9uZ0NvbnRleHQgbV9jb250ZXh0OwogCiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxBdWRp
b05vZGVJbnB1dD4+IG1faW5wdXRzOwogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9O
b2RlT3V0cHV0Pj4gbV9vdXRwdXRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcAppbmRleCAyMWJhNWE3YmIxYTk0ZjQyNGNiMmM2YWRk
NjdhNjM2YjE0ZjMzYmUyLi43ZTA2MzRlNWI2MTVjZGU2MjM4MzFjMDYyMWYyZTJmMWZmZmRiZTU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlu
cHV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlu
cHV0LmNwcApAQCAtNDcsNyArNDcsOCBAQCBBdWRpb05vZGVJbnB1dDo6QXVkaW9Ob2RlSW5wdXQo
QXVkaW9Ob2RlKiBub2RlKQogCiB2b2lkIEF1ZGlvTm9kZUlucHV0Ojpjb25uZWN0KEF1ZGlvTm9k
ZU91dHB1dCogb3V0cHV0KQogewotICAgIEFTU0VSVChjb250ZXh0KCkuaXNHcmFwaE93bmVyKCkp
OworICAgIEFTU0VSVChjb250ZXh0KCkpOworICAgIEFTU0VSVChjb250ZXh0KCktPmlzR3JhcGhP
d25lcigpKTsKICAgICAKICAgICBBU1NFUlQob3V0cHV0ICYmIG5vZGUoKSk7CiAgICAgaWYgKCFv
dXRwdXQgfHwgIW5vZGUoKSkKQEAgLTU5LDcgKzYwLDggQEAgdm9pZCBBdWRpb05vZGVJbnB1dDo6
Y29ubmVjdChBdWRpb05vZGVPdXRwdXQqIG91dHB1dCkKIAogdm9pZCBBdWRpb05vZGVJbnB1dDo6
ZGlzY29ubmVjdChBdWRpb05vZGVPdXRwdXQqIG91dHB1dCkKIHsKLSAgICBBU1NFUlQoY29udGV4
dCgpLmlzR3JhcGhPd25lcigpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpKTsKKyAgICBBU1NFUlQo
Y29udGV4dCgpLT5pc0dyYXBoT3duZXIoKSk7CiAKICAgICBBU1NFUlQob3V0cHV0ICYmIG5vZGUo
KSk7CiAgICAgaWYgKCFvdXRwdXQgfHwgIW5vZGUoKSkKQEAgLTc2LDcgKzc4LDggQEAgdm9pZCBB
dWRpb05vZGVJbnB1dDo6ZGlzY29ubmVjdChBdWRpb05vZGVPdXRwdXQqIG91dHB1dCkKIAogdm9p
ZCBBdWRpb05vZGVJbnB1dDo6b3V0cHV0RW5hYmxlZFN0YXRlQ2hhbmdlZChBdWRpb05vZGVPdXRw
dXQmIG91dHB1dCkKIHsKLSAgICBBU1NFUlQoY29udGV4dCgpLmlzR3JhcGhPd25lcigpKTsKKyAg
ICBBU1NFUlQoY29udGV4dCgpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpLT5pc0dyYXBoT3duZXIo
KSk7CiAgICAgQXVkaW9TdW1taW5nSnVuY3Rpb246Om91dHB1dEVuYWJsZWRTdGF0ZUNoYW5nZWQo
b3V0cHV0KTsKIAogICAgIC8vIFByb3BhZ2F0ZSBkaXNhYmxlZCBzdGF0ZSB0byBvdXRwdXRzLgpA
QCAtOTYsNyArOTksOCBAQCB2b2lkIEF1ZGlvTm9kZUlucHV0OjpkaWRVcGRhdGUoKQogCiB2b2lk
IEF1ZGlvTm9kZUlucHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cygpCiB7Ci0gICAgQVNTRVJUKGNvbnRl
eHQoKS5pc0F1ZGlvVGhyZWFkKCkgJiYgY29udGV4dCgpLmlzR3JhcGhPd25lcigpKTsKKyAgICBB
U1NFUlQoY29udGV4dCgpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpLT5pc0F1ZGlvVGhyZWFkKCkg
JiYgY29udGV4dCgpLT5pc0dyYXBoT3duZXIoKSk7CiAKICAgICB1bnNpZ25lZCBudW1iZXJPZklu
cHV0Q2hhbm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzKCk7CiAKQEAgLTEyNiw3ICsxMzAsOCBAQCB1
bnNpZ25lZCBBdWRpb05vZGVJbnB1dDo6bnVtYmVyT2ZDaGFubmVscygpIGNvbnN0CiAKIEF1ZGlv
QnVzKiBBdWRpb05vZGVJbnB1dDo6YnVzKCkKIHsKLSAgICBBU1NFUlQoY29udGV4dCgpLmlzQXVk
aW9UaHJlYWQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQo
KS0+aXNBdWRpb1RocmVhZCgpKTsKIAogICAgIC8vIEhhbmRsZSBzaW5nbGUgY29ubmVjdGlvbiBz
cGVjaWFsbHkgdG8gYWxsb3cgZm9yIGluLXBsYWNlIHByb2Nlc3NpbmcuCiAgICAgaWYgKG51bWJl
ck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKSA9PSAxICYmIG5vZGUoKS0+Y2hhbm5lbENvdW50TW9k
ZSgpID09IENoYW5uZWxDb3VudE1vZGU6Ok1heCkKQEAgLTEzOCwxNCArMTQzLDE2IEBAIEF1ZGlv
QnVzKiBBdWRpb05vZGVJbnB1dDo6YnVzKCkKIAogQXVkaW9CdXMqIEF1ZGlvTm9kZUlucHV0Ojpp
bnRlcm5hbFN1bW1pbmdCdXMoKQogewotICAgIEFTU0VSVChjb250ZXh0KCkuaXNBdWRpb1RocmVh
ZCgpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpLT5pc0F1
ZGlvVGhyZWFkKCkpOwogCiAgICAgcmV0dXJuIG1faW50ZXJuYWxTdW1taW5nQnVzLmdldCgpOwog
fQogCiB2b2lkIEF1ZGlvTm9kZUlucHV0OjpzdW1BbGxDb25uZWN0aW9ucyhBdWRpb0J1cyogc3Vt
bWluZ0J1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKLSAgICBBU1NFUlQoY29udGV4dCgp
LmlzQXVkaW9UaHJlYWQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAgQVNTRVJUKGNv
bnRleHQoKS0+aXNBdWRpb1RocmVhZCgpKTsKIAogICAgIC8vIFdlIHNob3VsZG4ndCBiZSBjYWxs
aW5nIHRoaXMgbWV0aG9kIGlmIHRoZXJlJ3Mgb25seSBvbmUgY29ubmVjdGlvbiwgc2luY2UgaXQn
cyBsZXNzIGVmZmljaWVudC4KICAgICBBU1NFUlQobnVtYmVyT2ZSZW5kZXJpbmdDb25uZWN0aW9u
cygpID4gMSB8fCBub2RlKCktPmNoYW5uZWxDb3VudE1vZGUoKSAhPSBDaGFubmVsQ291bnRNb2Rl
OjpNYXgpOwpAQCAtMTcxLDcgKzE3OCw4IEBAIHZvaWQgQXVkaW9Ob2RlSW5wdXQ6OnN1bUFsbENv
bm5lY3Rpb25zKEF1ZGlvQnVzKiBzdW1taW5nQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jCiAKIEF1
ZGlvQnVzKiBBdWRpb05vZGVJbnB1dDo6cHVsbChBdWRpb0J1cyogaW5QbGFjZUJ1cywgc2l6ZV90
IGZyYW1lc1RvUHJvY2VzcykKIHsKLSAgICBBU1NFUlQoY29udGV4dCgpLmlzQXVkaW9UaHJlYWQo
KSk7CisgICAgQVNTRVJUKGNvbnRleHQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQoKS0+aXNBdWRp
b1RocmVhZCgpKTsKIAogICAgIGF1dG8gbnVtYmVyT2ZSZW5kZXJpbmdDb25uZWN0aW9ucyA9IHRo
aXMtPm51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKTsKICAgICAvLyBIYW5kbGUgc2luZ2xl
IGNvbm5lY3Rpb24gY2FzZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9QYXJhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW0uY3BwCmluZGV4IGYzOWFjODU5MGM4MjcyNjllMzBmNzJkYTY4ZmZkY2Y3NjFmMDVk
ZjEuLjcyMTRhYjhiZmMyZGMxYzczOTc0Mjc3ODNjOWIwOGVjYjA0NDZmY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcApAQCAtNjksOCArNjks
OCBAQCBBdWRpb1BhcmFtOjpBdWRpb1BhcmFtKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGNv
bnN0IFN0cmluZyYgbmFtZSwgZmxvYXQgZGVmYQogZmxvYXQgQXVkaW9QYXJhbTo6dmFsdWUoKQog
ewogICAgIC8vIFVwZGF0ZSB2YWx1ZSBmb3IgdGltZWxpbmUuCi0gICAgaWYgKGNvbnRleHQoKS5p
c0F1ZGlvVGhyZWFkKCkpIHsKLSAgICAgICAgYXV0byB0aW1lbGluZVZhbHVlID0gbV90aW1lbGlu
ZS52YWx1ZUZvckNvbnRleHRUaW1lKGNvbnRleHQoKSwgbV92YWx1ZSwgbWluVmFsdWUoKSwgbWF4
VmFsdWUoKSk7CisgICAgaWYgKGNvbnRleHQoKSAmJiBjb250ZXh0KCktPmlzQXVkaW9UaHJlYWQo
KSkgeworICAgICAgICBhdXRvIHRpbWVsaW5lVmFsdWUgPSBtX3RpbWVsaW5lLnZhbHVlRm9yQ29u
dGV4dFRpbWUoKmNvbnRleHQoKSwgbV92YWx1ZSwgbWluVmFsdWUoKSwgbWF4VmFsdWUoKSk7CiAg
ICAgICAgIGlmICh0aW1lbGluZVZhbHVlKQogICAgICAgICAgICAgbV92YWx1ZSA9ICp0aW1lbGlu
ZVZhbHVlOwogICAgIH0KQEAgLTk2LDcgKzk2LDExIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlv
UGFyYW06OnNldFZhbHVlRm9yQmluZGluZ3MoZmxvYXQgdmFsdWUpCiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKIAogICAgIHNldFZhbHVlKHZhbHVlKTsKLSAgICBhdXRvIHJlc3VsdCA9IHNl
dFZhbHVlQXRUaW1lKG1fdmFsdWUsIGNvbnRleHQoKS5jdXJyZW50VGltZSgpKTsKKworICAgIGlm
ICghY29udGV4dCgpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgYXV0byByZXN1bHQgPSBz
ZXRWYWx1ZUF0VGltZShtX3ZhbHVlLCBjb250ZXh0KCktPmN1cnJlbnRUaW1lKCkpOwogICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpOwogICAgIHJldHVybiB7IH07CkBAIC0xMTgsOSArMTIyLDEyIEBAIGZsb2F0IEF1
ZGlvUGFyYW06OnNtb290aGVkVmFsdWUoKQogCiBib29sIEF1ZGlvUGFyYW06OnNtb290aCgpCiB7
CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgLy8gSWYg
dmFsdWVzIGhhdmUgYmVlbiBleHBsaWNpdGx5IHNjaGVkdWxlZCBvbiB0aGUgdGltZWxpbmUsIHRo
ZW4gdXNlIHRoZSBleGFjdCB2YWx1ZS4KICAgICAvLyBTbW9vdGhpbmcgZWZmZWN0aXZlbHkgaXMg
cGVyZm9ybWVkIGJ5IHRoZSB0aW1lbGluZS4KLSAgICBhdXRvIHRpbWVsaW5lVmFsdWUgPSBtX3Rp
bWVsaW5lLnZhbHVlRm9yQ29udGV4dFRpbWUoY29udGV4dCgpLCBtX3ZhbHVlLCBtaW5WYWx1ZSgp
LCBtYXhWYWx1ZSgpKTsKKyAgICBhdXRvIHRpbWVsaW5lVmFsdWUgPSBtX3RpbWVsaW5lLnZhbHVl
Rm9yQ29udGV4dFRpbWUoKmNvbnRleHQoKSwgbV92YWx1ZSwgbWluVmFsdWUoKSwgbWF4VmFsdWUo
KSk7CiAgICAgaWYgKHRpbWVsaW5lVmFsdWUpCiAgICAgICAgIG1fdmFsdWUgPSAqdGltZWxpbmVW
YWx1ZTsKIApAQCAtMTQ1LDEwICsxNTIsMTMgQEAgYm9vbCBBdWRpb1BhcmFtOjpzbW9vdGgoKQog
CiBFeGNlcHRpb25PcjxBdWRpb1BhcmFtJj4gQXVkaW9QYXJhbTo6c2V0VmFsdWVBdFRpbWUoZmxv
YXQgdmFsdWUsIGRvdWJsZSBzdGFydFRpbWUpCiB7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAg
ICAgIHJldHVybiAqdGhpczsKKwogICAgIGlmIChzdGFydFRpbWUgPCAwKQogICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwgInN0YXJ0VGltZSBtdXN0IGJlIGEgcG9zaXRpdmUg
dmFsdWUiX3MgfTsKIAotICAgIHN0YXJ0VGltZSA9IHN0ZDo6bWF4KHN0YXJ0VGltZSwgY29udGV4
dCgpLmN1cnJlbnRUaW1lKCkpOworICAgIHN0YXJ0VGltZSA9IHN0ZDo6bWF4KHN0YXJ0VGltZSwg
Y29udGV4dCgpLT5jdXJyZW50VGltZSgpKTsKICAgICBhdXRvIHJlc3VsdCA9IG1fdGltZWxpbmUu
c2V0VmFsdWVBdFRpbWUodmFsdWUsIFNlY29uZHMgeyBzdGFydFRpbWUgfSk7CiAgICAgaWYgKHJl
c3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0
aW9uKCk7CkBAIC0xNTcsMTEgKzE2NywxNCBAQCBFeGNlcHRpb25PcjxBdWRpb1BhcmFtJj4gQXVk
aW9QYXJhbTo6c2V0VmFsdWVBdFRpbWUoZmxvYXQgdmFsdWUsIGRvdWJsZSBzdGFydFRpbQogCiBF
eGNlcHRpb25PcjxBdWRpb1BhcmFtJj4gQXVkaW9QYXJhbTo6bGluZWFyUmFtcFRvVmFsdWVBdFRp
bWUoZmxvYXQgdmFsdWUsIGRvdWJsZSBlbmRUaW1lKQogeworICAgIGlmICghY29udGV4dCgpKQor
ICAgICAgICByZXR1cm4gKnRoaXM7CisKICAgICBpZiAoZW5kVGltZSA8IDApCiAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBSYW5nZUVycm9yLCAiZW5kVGltZSBtdXN0IGJlIGEgcG9zaXRpdmUg
dmFsdWUiX3MgfTsKIAotICAgIGVuZFRpbWUgPSBzdGQ6Om1heChlbmRUaW1lLCBjb250ZXh0KCku
Y3VycmVudFRpbWUoKSk7Ci0gICAgYXV0byByZXN1bHQgPSBtX3RpbWVsaW5lLmxpbmVhclJhbXBU
b1ZhbHVlQXRUaW1lKHZhbHVlLCBTZWNvbmRzIHsgZW5kVGltZSB9LCBtX3ZhbHVlLCBTZWNvbmRz
IHsgY29udGV4dCgpLmN1cnJlbnRUaW1lKCkgfSk7CisgICAgZW5kVGltZSA9IHN0ZDo6bWF4KGVu
ZFRpbWUsIGNvbnRleHQoKS0+Y3VycmVudFRpbWUoKSk7CisgICAgYXV0byByZXN1bHQgPSBtX3Rp
bWVsaW5lLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHZhbHVlLCBTZWNvbmRzIHsgZW5kVGltZSB9
LCBtX3ZhbHVlLCBTZWNvbmRzIHsgY29udGV4dCgpLT5jdXJyZW50VGltZSgpIH0pOwogICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpOwogICAgIHJldHVybiAqdGhpczsKQEAgLTE3NCw4ICsxODcsOCBAQCBFeGNlcHRp
b25PcjxBdWRpb1BhcmFtJj4gQXVkaW9QYXJhbTo6ZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGlt
ZShmbG9hdCB2YWx1ZSwgZAogICAgIGlmIChlbmRUaW1lIDwgMCkKICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFJhbmdlRXJyb3IsICJlbmRUaW1lIG11c3QgYmUgYSBwb3NpdGl2ZSB2YWx1ZSJf
cyB9OwogCi0gICAgZW5kVGltZSA9IHN0ZDo6bWF4KGVuZFRpbWUsIGNvbnRleHQoKS5jdXJyZW50
VGltZSgpKTsKLSAgICBhdXRvIHJlc3VsdCA9IG1fdGltZWxpbmUuZXhwb25lbnRpYWxSYW1wVG9W
YWx1ZUF0VGltZSh2YWx1ZSwgU2Vjb25kcyB7IGVuZFRpbWUgfSwgbV92YWx1ZSwgU2Vjb25kcyB7
IGNvbnRleHQoKS5jdXJyZW50VGltZSgpIH0pOworICAgIGVuZFRpbWUgPSBzdGQ6Om1heChlbmRU
aW1lLCBjb250ZXh0KCktPmN1cnJlbnRUaW1lKCkpOworICAgIGF1dG8gcmVzdWx0ID0gbV90aW1l
bGluZS5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKHZhbHVlLCBTZWNvbmRzIHsgZW5kVGlt
ZSB9LCBtX3ZhbHVlLCBTZWNvbmRzIHsgY29udGV4dCgpLT5jdXJyZW50VGltZSgpIH0pOwogICAg
IGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFz
ZUV4Y2VwdGlvbigpOwogICAgIHJldHVybiAqdGhpczsKQEAgLTE4MywxMiArMTk2LDE1IEBAIEV4
Y2VwdGlvbk9yPEF1ZGlvUGFyYW0mPiBBdWRpb1BhcmFtOjpleHBvbmVudGlhbFJhbXBUb1ZhbHVl
QXRUaW1lKGZsb2F0IHZhbHVlLCBkCiAKIEV4Y2VwdGlvbk9yPEF1ZGlvUGFyYW0mPiBBdWRpb1Bh
cmFtOjpzZXRUYXJnZXRBdFRpbWUoZmxvYXQgdGFyZ2V0LCBkb3VibGUgc3RhcnRUaW1lLCBmbG9h
dCB0aW1lQ29uc3RhbnQpCiB7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybiAq
dGhpczsKKwogICAgIGlmIChzdGFydFRpbWUgPCAwKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgUmFuZ2VFcnJvciwgInN0YXJ0VGltZSBtdXN0IGJlIGEgcG9zaXRpdmUgdmFsdWUiX3MgfTsK
ICAgICBpZiAodGltZUNvbnN0YW50IDwgMCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFJh
bmdlRXJyb3IsICJ0aW1lQ29uc3RhbnQgbXVzdCBiZSBhIHBvc2l0aXZlIHZhbHVlIl9zIH07CiAK
LSAgICBzdGFydFRpbWUgPSBzdGQ6Om1heChzdGFydFRpbWUsIGNvbnRleHQoKS5jdXJyZW50VGlt
ZSgpKTsKKyAgICBzdGFydFRpbWUgPSBzdGQ6Om1heChzdGFydFRpbWUsIGNvbnRleHQoKS0+Y3Vy
cmVudFRpbWUoKSk7CiAgICAgYXV0byByZXN1bHQgPSBtX3RpbWVsaW5lLnNldFRhcmdldEF0VGlt
ZSh0YXJnZXQsIFNlY29uZHMgeyBzdGFydFRpbWUgfSwgdGltZUNvbnN0YW50KTsKICAgICBpZiAo
cmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNl
cHRpb24oKTsKQEAgLTE5Nyw2ICsyMTMsOSBAQCBFeGNlcHRpb25PcjxBdWRpb1BhcmFtJj4gQXVk
aW9QYXJhbTo6c2V0VGFyZ2V0QXRUaW1lKGZsb2F0IHRhcmdldCwgZG91YmxlIHN0YXJ0VAogCiBF
eGNlcHRpb25PcjxBdWRpb1BhcmFtJj4gQXVkaW9QYXJhbTo6c2V0VmFsdWVDdXJ2ZUF0VGltZShW
ZWN0b3I8ZmxvYXQ+JiYgY3VydmUsIGRvdWJsZSBzdGFydFRpbWUsIGRvdWJsZSBkdXJhdGlvbikK
IHsKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuICp0aGlzOworCiAgICAgaWYg
KGN1cnZlLnNpemUoKSA8IDIpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkFycmF5IG11c3QgaGF2ZSBhIGxlbmd0aCBvZiBhdCBsZWFzdCAyIl9zIH07CiAg
ICAgaWYgKHN0YXJ0VGltZSA8IDApCkBAIC0yMDQsNyArMjIzLDcgQEAgRXhjZXB0aW9uT3I8QXVk
aW9QYXJhbSY+IEF1ZGlvUGFyYW06OnNldFZhbHVlQ3VydmVBdFRpbWUoVmVjdG9yPGZsb2F0PiYm
IGN1cnZlLAogICAgIGlmIChkdXJhdGlvbiA8PSAwKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgUmFuZ2VFcnJvciwgImR1cmF0aW9uIG11c3QgYmUgYSBzdHJpY3RseSBwb3NpdGl2ZSB2YWx1
ZSJfcyB9OwogCi0gICAgc3RhcnRUaW1lID0gc3RkOjptYXgoc3RhcnRUaW1lLCBjb250ZXh0KCku
Y3VycmVudFRpbWUoKSk7CisgICAgc3RhcnRUaW1lID0gc3RkOjptYXgoc3RhcnRUaW1lLCBjb250
ZXh0KCktPmN1cnJlbnRUaW1lKCkpOwogICAgIGF1dG8gcmVzdWx0ID0gbV90aW1lbGluZS5zZXRW
YWx1ZUN1cnZlQXRUaW1lKFdURk1vdmUoY3VydmUpLCBTZWNvbmRzIHsgc3RhcnRUaW1lIH0sIFNl
Y29uZHMgeyBkdXJhdGlvbiB9KTsKICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAg
ICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKQEAgLTIzNyw3ICsyNTYsMTAg
QEAgYm9vbCBBdWRpb1BhcmFtOjpoYXNTYW1wbGVBY2N1cmF0ZVZhbHVlcygpIGNvbnN0CiAgICAg
aWYgKG51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAKLSAgICByZXR1cm4gbV90aW1lbGluZS5oYXNWYWx1ZXMoY29udGV4dCgpLmN1cnJlbnRTYW1w
bGVGcmFtZSgpLCBjb250ZXh0KCkuc2FtcGxlUmF0ZSgpKTsKKyAgICBpZiAoIWNvbnRleHQoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1fdGltZWxpbmUuaGFzVmFsdWVz
KGNvbnRleHQoKS0+Y3VycmVudFNhbXBsZUZyYW1lKCksIGNvbnRleHQoKS0+c2FtcGxlUmF0ZSgp
KTsKIH0KIAogZmxvYXQgQXVkaW9QYXJhbTo6ZmluYWxWYWx1ZSgpCkBAIC0yNDksNyArMjcxLDcg
QEAgZmxvYXQgQXVkaW9QYXJhbTo6ZmluYWxWYWx1ZSgpCiAKIHZvaWQgQXVkaW9QYXJhbTo6Y2Fs
Y3VsYXRlU2FtcGxlQWNjdXJhdGVWYWx1ZXMoZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVy
T2ZWYWx1ZXMpCiB7Ci0gICAgYm9vbCBpc1NhZmUgPSBjb250ZXh0KCkuaXNBdWRpb1RocmVhZCgp
ICYmIHZhbHVlcyAmJiBudW1iZXJPZlZhbHVlczsKKyAgICBib29sIGlzU2FmZSA9IGNvbnRleHQo
KSAmJiBjb250ZXh0KCktPmlzQXVkaW9UaHJlYWQoKSAmJiB2YWx1ZXMgJiYgbnVtYmVyT2ZWYWx1
ZXM7CiAgICAgQVNTRVJUKGlzU2FmZSk7CiAgICAgaWYgKCFpc1NhZmUpCiAgICAgICAgIHJldHVy
bjsKQEAgLTI1OSw3ICsyODEsNyBAQCB2b2lkIEF1ZGlvUGFyYW06OmNhbGN1bGF0ZVNhbXBsZUFj
Y3VyYXRlVmFsdWVzKGZsb2F0KiB2YWx1ZXMsIHVuc2lnbmVkIG51bWJlck9mVgogCiB2b2lkIEF1
ZGlvUGFyYW06OmNhbGN1bGF0ZUZpbmFsVmFsdWVzKGZsb2F0KiB2YWx1ZXMsIHVuc2lnbmVkIG51
bWJlck9mVmFsdWVzLCBib29sIHNhbXBsZUFjY3VyYXRlKQogewotICAgIGJvb2wgaXNHb29kID0g
Y29udGV4dCgpLmlzQXVkaW9UaHJlYWQoKSAmJiB2YWx1ZXMgJiYgbnVtYmVyT2ZWYWx1ZXM7Cisg
ICAgYm9vbCBpc0dvb2QgPSBjb250ZXh0KCkgJiYgY29udGV4dCgpLT5pc0F1ZGlvVGhyZWFkKCkg
JiYgdmFsdWVzICYmIG51bWJlck9mVmFsdWVzOwogICAgIEFTU0VSVChpc0dvb2QpOwogICAgIGlm
ICghaXNHb29kKQogICAgICAgICByZXR1cm47CkBAIC0yNzEsNyArMjkzLDcgQEAgdm9pZCBBdWRp
b1BhcmFtOjpjYWxjdWxhdGVGaW5hbFZhbHVlcyhmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1i
ZXJPZlZhbHVlcywgYm8KICAgICAgICAgY2FsY3VsYXRlVGltZWxpbmVWYWx1ZXModmFsdWVzLCBu
dW1iZXJPZlZhbHVlcyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQ2FsY3VsYXRlIGNvbnRy
b2wtcmF0ZSAoay1yYXRlKSBpbnRyaW5zaWMgdmFsdWUuCi0gICAgICAgIGF1dG8gdGltZWxpbmVW
YWx1ZSA9IG1fdGltZWxpbmUudmFsdWVGb3JDb250ZXh0VGltZShjb250ZXh0KCksIG1fdmFsdWUs
IG1pblZhbHVlKCksIG1heFZhbHVlKCkpOworICAgICAgICBhdXRvIHRpbWVsaW5lVmFsdWUgPSBt
X3RpbWVsaW5lLnZhbHVlRm9yQ29udGV4dFRpbWUoKmNvbnRleHQoKSwgbV92YWx1ZSwgbWluVmFs
dWUoKSwgbWF4VmFsdWUoKSk7CiAKICAgICAgICAgaWYgKHRpbWVsaW5lVmFsdWUpCiAgICAgICAg
ICAgICBtX3ZhbHVlID0gKnRpbWVsaW5lVmFsdWU7CkBAIC0zMTMsMTAgKzMzNSwxMyBAQCB2b2lk
IEF1ZGlvUGFyYW06OmNhbGN1bGF0ZUZpbmFsVmFsdWVzKGZsb2F0KiB2YWx1ZXMsIHVuc2lnbmVk
IG51bWJlck9mVmFsdWVzLCBibwogCiB2b2lkIEF1ZGlvUGFyYW06OmNhbGN1bGF0ZVRpbWVsaW5l
VmFsdWVzKGZsb2F0KiB2YWx1ZXMsIHVuc2lnbmVkIG51bWJlck9mVmFsdWVzKQogeworICAgIGlm
ICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKICAgICAvLyBDYWxjdWxhdGUgdmFsdWVz
IGZvciB0aGlzIHJlbmRlciBxdWFudHVtLgogICAgIC8vIE5vcm1hbGx5IG51bWJlck9mVmFsdWVz
IHdpbGwgZXF1YWwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplICh0aGUgcmVuZGVy
IHF1YW50dW0gc2l6ZSkuCi0gICAgZG91YmxlIHNhbXBsZVJhdGUgPSBjb250ZXh0KCkuc2FtcGxl
UmF0ZSgpOwotICAgIHNpemVfdCBzdGFydEZyYW1lID0gY29udGV4dCgpLmN1cnJlbnRTYW1wbGVG
cmFtZSgpOworICAgIGRvdWJsZSBzYW1wbGVSYXRlID0gY29udGV4dCgpLT5zYW1wbGVSYXRlKCk7
CisgICAgc2l6ZV90IHN0YXJ0RnJhbWUgPSBjb250ZXh0KCktPmN1cnJlbnRTYW1wbGVGcmFtZSgp
OwogICAgIHNpemVfdCBlbmRGcmFtZSA9IHN0YXJ0RnJhbWUgKyBudW1iZXJPZlZhbHVlczsKIAog
ICAgIC8vIE5vdGUgd2UncmUgcnVubmluZyBjb250cm9sIHJhdGUgYXQgdGhlIHNhbXBsZS1yYXRl
LgpAQCAtMzI2LDcgKzM1MSw4IEBAIHZvaWQgQXVkaW9QYXJhbTo6Y2FsY3VsYXRlVGltZWxpbmVW
YWx1ZXMoZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXMpCiAKIHZvaWQgQXVk
aW9QYXJhbTo6Y29ubmVjdChBdWRpb05vZGVPdXRwdXQqIG91dHB1dCkKIHsKLSAgICBBU1NFUlQo
Y29udGV4dCgpLmlzR3JhcGhPd25lcigpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpKTsKKyAgICBB
U1NFUlQoY29udGV4dCgpLT5pc0dyYXBoT3duZXIoKSk7CiAKICAgICBBU1NFUlQob3V0cHV0KTsK
ICAgICBpZiAoIW91dHB1dCkKQEAgLTM0MSw3ICszNjcsOCBAQCB2b2lkIEF1ZGlvUGFyYW06OmNv
bm5lY3QoQXVkaW9Ob2RlT3V0cHV0KiBvdXRwdXQpCiAKIHZvaWQgQXVkaW9QYXJhbTo6ZGlzY29u
bmVjdChBdWRpb05vZGVPdXRwdXQqIG91dHB1dCkKIHsKLSAgICBBU1NFUlQoY29udGV4dCgpLmlz
R3JhcGhPd25lcigpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpKTsKKyAgICBBU1NFUlQoY29udGV4
dCgpLT5pc0dyYXBoT3duZXIoKSk7CiAKICAgICBBU1NFUlQob3V0cHV0KTsKICAgICBpZiAoIW91
dHB1dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9T
dW1taW5nSnVuY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1N1bW1pbmdKdW5jdGlvbi5jcHAKaW5kZXggNTc0NTQzZmU5YTgzZDdlNzgzMWIyYzk0NTRjMzAy
MTcxNmExYmI5ZS4uNjU5ZmVlNGEwM2I4MjE4OTljMWI2YzU4YzQxNTFlNjZhNDdhYWM3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5j
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1p
bmdKdW5jdGlvbi5jcHAKQEAgLTM1LDI4ICszNSwzMCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBBdWRpb1N1bW1pbmdKdW5jdGlvbjo6QXVkaW9TdW1taW5nSnVuY3Rpb24oQmFzZUF1ZGlvQ29u
dGV4dCYgY29udGV4dCkKLSAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgIDogbV9jb250ZXh0
KG1ha2VXZWFrUHRyKGNvbnRleHQsIEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpO
bykpIC8vIFdlYkF1ZGlvIGNvZGUgdXNlcyBsb2NraW5nIHdoZW4gYWNjZXNzaW5nIHRoZSBjb250
ZXh0LgogewogfQogCiBBdWRpb1N1bW1pbmdKdW5jdGlvbjo6fkF1ZGlvU3VtbWluZ0p1bmN0aW9u
KCkKIHsKLSAgICBpZiAobV9yZW5kZXJpbmdTdGF0ZU5lZWRVcGRhdGluZykKLSAgICAgICAgY29u
dGV4dCgpLnJlbW92ZU1hcmtlZFN1bW1pbmdKdW5jdGlvbih0aGlzKTsKKyAgICBpZiAobV9yZW5k
ZXJpbmdTdGF0ZU5lZWRVcGRhdGluZyAmJiBjb250ZXh0KCkpCisgICAgICAgIGNvbnRleHQoKS0+
cmVtb3ZlTWFya2VkU3VtbWluZ0p1bmN0aW9uKHRoaXMpOwogfQogCiB2b2lkIEF1ZGlvU3VtbWlu
Z0p1bmN0aW9uOjptYXJrUmVuZGVyaW5nU3RhdGVBc0RpcnR5KCkKIHsKLSAgICBBU1NFUlQoY29u
dGV4dCgpLmlzR3JhcGhPd25lcigpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpKTsKKyAgICBBU1NF
UlQoY29udGV4dCgpLT5pc0dyYXBoT3duZXIoKSk7CiAgICAgaWYgKCFtX3JlbmRlcmluZ1N0YXRl
TmVlZFVwZGF0aW5nICYmIGNhblVwZGF0ZVN0YXRlKCkpIHsKLSAgICAgICAgY29udGV4dCgpLm1h
cmtTdW1taW5nSnVuY3Rpb25EaXJ0eSh0aGlzKTsKKyAgICAgICAgY29udGV4dCgpLT5tYXJrU3Vt
bWluZ0p1bmN0aW9uRGlydHkodGhpcyk7CiAgICAgICAgIG1fcmVuZGVyaW5nU3RhdGVOZWVkVXBk
YXRpbmcgPSB0cnVlOwogICAgIH0KIH0KIAogYm9vbCBBdWRpb1N1bW1pbmdKdW5jdGlvbjo6YWRk
T3V0cHV0KEF1ZGlvTm9kZU91dHB1dCYgb3V0cHV0KQogewotICAgIEFTU0VSVChjb250ZXh0KCku
aXNHcmFwaE93bmVyKCkpOworICAgIEFTU0VSVChjb250ZXh0KCkpOworICAgIEFTU0VSVChjb250
ZXh0KCktPmlzR3JhcGhPd25lcigpKTsKICAgICBpZiAoIW1fb3V0cHV0cy5hZGQoJm91dHB1dCku
aXNOZXdFbnRyeSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC03NCw3ICs3Niw4IEBAIGJv
b2wgQXVkaW9TdW1taW5nSnVuY3Rpb246OmFkZE91dHB1dChBdWRpb05vZGVPdXRwdXQmIG91dHB1
dCkKIAogYm9vbCBBdWRpb1N1bW1pbmdKdW5jdGlvbjo6cmVtb3ZlT3V0cHV0KEF1ZGlvTm9kZU91
dHB1dCYgb3V0cHV0KQogewotICAgIEFTU0VSVChjb250ZXh0KCkuaXNHcmFwaE93bmVyKCkpOwor
ICAgIEFTU0VSVChjb250ZXh0KCkpOworICAgIEFTU0VSVChjb250ZXh0KCktPmlzR3JhcGhPd25l
cigpKTsKICAgICBpZiAoIW1fb3V0cHV0cy5yZW1vdmUoJm91dHB1dCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIApAQCAtOTQsNyArOTcsOCBAQCBib29sIEF1ZGlvU3VtbWluZ0p1bmN0aW9uOjpy
ZW1vdmVPdXRwdXQoQXVkaW9Ob2RlT3V0cHV0JiBvdXRwdXQpCiAKIHZvaWQgQXVkaW9TdW1taW5n
SnVuY3Rpb246OnVwZGF0ZVJlbmRlcmluZ1N0YXRlKCkKIHsKLSAgICBBU1NFUlQoY29udGV4dCgp
LmlzQXVkaW9UaHJlYWQoKSAmJiBjb250ZXh0KCkuaXNHcmFwaE93bmVyKCkpOworICAgIEFTU0VS
VChjb250ZXh0KCkpOworICAgIEFTU0VSVChjb250ZXh0KCktPmlzQXVkaW9UaHJlYWQoKSAmJiBj
b250ZXh0KCktPmlzR3JhcGhPd25lcigpKTsKIAogICAgIGlmIChtX3JlbmRlcmluZ1N0YXRlTmVl
ZFVwZGF0aW5nICYmIGNhblVwZGF0ZVN0YXRlKCkpIHsKICAgICAgICAgLy8gQ29weSBmcm9tIG1f
b3V0cHV0cyB0byBtX3JlbmRlcmluZ091dHB1dHMuCkBAIC0xMjgsNyArMTMyLDggQEAgdW5zaWdu
ZWQgQXVkaW9TdW1taW5nSnVuY3Rpb246Om1heGltdW1OdW1iZXJPZkNoYW5uZWxzKCkgY29uc3QK
IAogdm9pZCBBdWRpb1N1bW1pbmdKdW5jdGlvbjo6b3V0cHV0RW5hYmxlZFN0YXRlQ2hhbmdlZChB
dWRpb05vZGVPdXRwdXQmIG91dHB1dCkKIHsKLSAgICBBU1NFUlQoY29udGV4dCgpLmlzR3JhcGhP
d25lcigpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpKTsKKyAgICBBU1NFUlQoY29udGV4dCgpLT5p
c0dyYXBoT3duZXIoKSk7CiAgICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJpbmdPdXRwdXRzKSB7CiAg
ICAgICAgIC8vIEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgYXVkaW8gdGhy
ZWFkIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8KICAgICAgICAgLy8gZXhw
bGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmgKaW5k
ZXggMDc5YmI0MjQxMTllZTc1ZDMxMDMxZmRiZWM3NDg2ZDc1MTgyM2ViZi4uMzQ1NzRmZDgwYTNh
N2EwOGY2ZmFhMzY2ZTc1MzdlMmE0MjI2ODhkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uaApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgPGl0ZXJhdG9yPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNDIsOCArNDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QXVk
aW9TdW1taW5nSnVuY3Rpb24oKTsKIAogICAgIC8vIENhbiBiZSBjYWxsZWQgZnJvbSBhbnkgdGhy
ZWFkLgotICAgIEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRleHQ7
IH0KLSAgICBjb25zdCBCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4g
bV9jb250ZXh0OyB9CisgICAgQmFzZUF1ZGlvQ29udGV4dCogY29udGV4dCgpIHsgcmV0dXJuIG1f
Y29udGV4dC5nZXQoKTsgfQorICAgIGNvbnN0IEJhc2VBdWRpb0NvbnRleHQqIGNvbnRleHQoKSBj
b25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KIAogICAgIC8vIFRoaXMgY29waWVzIG1f
b3V0cHV0cyB0byBtX3JlbmRlcmluZ091dHB1dHMuIFBsZWFzZSBzZWUgY29tbWVudHMgZm9yIHRo
ZXNlIGxpc3RzIGJlbG93LgogICAgIC8vIFRoaXMgbXVzdCBiZSBjYWxsZWQgd2hlbiB3ZSBvd24g
dGhlIGNvbnRleHQncyBncmFwaCBsb2NrIGluIHRoZSBhdWRpbyB0aHJlYWQgYXQgdGhlIHZlcnkg
c3RhcnQgb3IgZW5kIG9mIHRoZSByZW5kZXIgcXVhbnR1bS4KQEAgLTEzNCw3ICsxMzUsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgdW5zaWduZWQgbWF4aW11bU51bWJlck9mQ2hhbm5lbHMoKSBjb25zdDsK
IAogcHJpdmF0ZToKLSAgICBSZWY8QmFzZUF1ZGlvQ29udGV4dD4gbV9jb250ZXh0OworICAgIFdl
YWtQdHI8QmFzZUF1ZGlvQ29udGV4dD4gbV9jb250ZXh0OwogCiAgICAgLy8gbV9yZW5kZXJpbmdP
dXRwdXRzIGlzIGEgY29weSBvZiBtX291dHB1dHMgd2hpY2ggd2lsbCBuZXZlciBiZSBtb2RpZmll
ZCBkdXJpbmcgdGhlIGdyYXBoIHJlbmRlcmluZyBvbiB0aGUgYXVkaW8gdGhyZWFkLgogICAgIC8v
IFRoaXMgaXMgdGhlIGxpc3Qgd2hpY2ggaXMgdXNlZCBieSB0aGUgcmVuZGVyaW5nIGNvZGUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0
LmNwcAppbmRleCA1ZmEwZGYwMzZiY2M4Y2MxYTUxZDhhNzAwMTM3OWI4Y2NmZGQ3MGJhLi41ZTNm
MWFjNmMyNjA0MGQ4YmZkNzVhMzkzM2I4ZTU0MTdiZGZmODUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTExNSw2
ICsxMTUsNyBAQCBib29sIEJhc2VBdWRpb0NvbnRleHQ6OmlzU3VwcG9ydGVkU2FtcGxlUmF0ZShm
bG9hdCBzYW1wbGVSYXRlKQogICAgIHJldHVybiBzYW1wbGVSYXRlID49IDMwMDAgJiYgc2FtcGxl
UmF0ZSA8PSAzODQwMDA7CiB9CiAKK3N0YXRpYyB1bnNpZ25lZCBudW1iZXJPZkJhc2VBdWRpb0Nv
bnRleHRzID0gMDsKIHVuc2lnbmVkIEJhc2VBdWRpb0NvbnRleHQ6OnNfaGFyZHdhcmVDb250ZXh0
Q291bnQgPSAwOwogCiAvLyBDb25zdHJ1Y3RvciBmb3IgcmVuZGVyaW5nIHRvIHRoZSBhdWRpbyBo
YXJkd2FyZS4KQEAgLTEyNSwxNiArMTI2LDE3IEBAIEJhc2VBdWRpb0NvbnRleHQ6OkJhc2VBdWRp
b0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBJc0xlZ2FjeVdlYktpdEF1ZGlvQ29udGV4CiAg
ICAgLCBtX2xvZ0lkZW50aWZpZXIodW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCiAgICAg
LCBtX3dvcmtsZXQoQXVkaW9Xb3JrbGV0OjpjcmVhdGUoKnRoaXMpKQorICAgICwgbV9kZXN0aW5h
dGlvbk5vZGUobWFrZVVuaXF1ZVJlZjxEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU+KCp0aGlz
LCBjb250ZXh0T3B0aW9ucy5zYW1wbGVSYXRlKSkKICAgICAsIG1fbGlzdGVuZXIoaXNMZWdhY3lX
ZWJLaXRBdWRpb0NvbnRleHQgPT0gSXNMZWdhY3lXZWJLaXRBdWRpb0NvbnRleHQ6OlllcyA/IFJl
ZjxBdWRpb0xpc3RlbmVyPihXZWJLaXRBdWRpb0xpc3RlbmVyOjpjcmVhdGUoKnRoaXMpKSA6IEF1
ZGlvTGlzdGVuZXI6OmNyZWF0ZSgqdGhpcykpCiB7CisgICAgKytudW1iZXJPZkJhc2VBdWRpb0Nv
bnRleHRzOworCiAgICAgLy8gQWNjb3JkaW5nIHRvIHNwZWMgQXVkaW9Db250ZXh0IG11c3QgZGll
IG9ubHkgYWZ0ZXIgcGFnZSBuYXZpZ2F0ZS4KICAgICAvLyBMZXRzIG1hcmsgaXQgYXMgQWN0aXZl
RE9NT2JqZWN0IHdpdGggcGVuZGluZyBhY3Rpdml0eSBhbmQgdW5tYXJrIGl0IGluIGNsZWFyIG1l
dGhvZC4KLSAgICBtYWtlUGVuZGluZ0FjdGl2aXR5KCk7CisgICAgc2V0UGVuZGluZ0FjdGl2aXR5
KCk7CiAKICAgICBGRlRGcmFtZTo6aW5pdGlhbGl6ZSgpOwogCi0gICAgbV9kZXN0aW5hdGlvbk5v
ZGUgPSBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmNyZWF0ZSgqdGhpcywgY29udGV4dE9w
dGlvbnMuc2FtcGxlUmF0ZSk7Ci0KICAgICAvLyBVbmxpa2UgT2ZmbGluZUF1ZGlvQ29udGV4dCwg
QXVkaW9Db250ZXh0IGRvZXMgbm90IHJlcXVpcmUgY2FsbGluZyByZXN1bWUoKSB0byBzdGFydCBy
ZW5kZXJpbmcuCiAgICAgLy8gTGF6eSBpbml0aWFsaXphdGlvbiBzdGFydHMgcmVuZGVyaW5nIHNv
IHdlIHNjaGVkdWxlIGEgdGFzayBoZXJlIHRvIG1ha2Ugc3VyZSBsYXp5IGluaXRpYWxpemF0aW9u
CiAgICAgLy8gZW5kcyB1cCBoYXBwZW5pbmcsIGV2ZW4gaWYgbm8gYXVkaW8gbm9kZSBnZXRzIGNv
bnN0cnVjdGVkLgpAQCAtMTU2LDIxICsxNTgsMjAgQEAgQmFzZUF1ZGlvQ29udGV4dDo6QmFzZUF1
ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIElzTGVnYWN5V2ViS2l0QXVkaW9Db250ZXgK
ICAgICAsIG1fd29ya2xldChBdWRpb1dvcmtsZXQ6OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX2lz
T2ZmbGluZUNvbnRleHQodHJ1ZSkKICAgICAsIG1fcmVuZGVyVGFyZ2V0KFdURk1vdmUocmVuZGVy
VGFyZ2V0KSkKKyAgICAsIG1fZGVzdGluYXRpb25Ob2RlKG1ha2VVbmlxdWVSZWY8T2ZmbGluZUF1
ZGlvRGVzdGluYXRpb25Ob2RlPigqdGhpcywgbnVtYmVyT2ZDaGFubmVscywgc2FtcGxlUmF0ZSwg
bV9yZW5kZXJUYXJnZXQuY29weVJlZigpKSkKICAgICAsIG1fbGlzdGVuZXIoaXNMZWdhY3lXZWJL
aXRBdWRpb0NvbnRleHQgPT0gSXNMZWdhY3lXZWJLaXRBdWRpb0NvbnRleHQ6OlllcyA/IFJlZjxB
dWRpb0xpc3RlbmVyPihXZWJLaXRBdWRpb0xpc3RlbmVyOjpjcmVhdGUoKnRoaXMpKSA6IEF1ZGlv
TGlzdGVuZXI6OmNyZWF0ZSgqdGhpcykpCiB7CisgICAgKytudW1iZXJPZkJhc2VBdWRpb0NvbnRl
eHRzOwogICAgIEZGVEZyYW1lOjppbml0aWFsaXplKCk7Ci0KLSAgICAvLyBDcmVhdGUgYSBuZXcg
ZGVzdGluYXRpb24gZm9yIG9mZmxpbmUgcmVuZGVyaW5nLgotICAgIG1fZGVzdGluYXRpb25Ob2Rl
ID0gT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpjcmVhdGUoKnRoaXMsIG51bWJlck9mQ2hh
bm5lbHMsIHNhbXBsZVJhdGUsIG1fcmVuZGVyVGFyZ2V0LmNvcHlSZWYoKSk7CiB9CiAKIEJhc2VB
dWRpb0NvbnRleHQ6On5CYXNlQXVkaW9Db250ZXh0KCkKIHsKKyAgICBBU1NFUlQobnVtYmVyT2ZC
YXNlQXVkaW9Db250ZXh0cyk7CisgICAgLS1udW1iZXJPZkJhc2VBdWRpb0NvbnRleHRzOwogI2lm
IERFQlVHX0FVRElPTk9ERV9SRUZFUkVOQ0VTCiAgICAgZnByaW50ZihzdGRlcnIsICIlcDogQmFz
ZUF1ZGlvQ29udGV4dDo6fkF1ZGlvQ29udGV4dCgpXG4iLCB0aGlzKTsKICNlbmRpZgotICAgIEFT
U0VSVCghbV9pc0luaXRpYWxpemVkKTsKLSAgICBBU1NFUlQobV9pc1N0b3BTY2hlZHVsZWQpOwog
ICAgIEFTU0VSVChtX25vZGVzVG9EZWxldGUuaXNFbXB0eSgpKTsKICAgICBBU1NFUlQobV9yZWZl
cmVuY2VkU291cmNlTm9kZXMuaXNFbXB0eSgpKTsKICAgICBBU1NFUlQobV9hdXRvbWF0aWNQdWxs
Tm9kZXMuaXNFbXB0eSgpKTsKQEAgLTE4MCw2ICsxODEsMTEgQEAgQmFzZUF1ZGlvQ29udGV4dDo6
fkJhc2VBdWRpb0NvbnRleHQoKQogICAgIC8vIEZJWE1FOiBDYW4gd2UgYXNzZXJ0IHRoYXQgbV9k
ZWZlcnJlZEJyZWFrQ29ubmVjdGlvbkxpc3QgaXMgZW1wdHk/CiB9CiAKK3Vuc2lnbmVkIEJhc2VB
dWRpb0NvbnRleHQ6Om51bWJlck9mSW5zdGFuY2VzKCkKK3sKKyAgICByZXR1cm4gbnVtYmVyT2ZC
YXNlQXVkaW9Db250ZXh0czsKK30KKwogdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpsYXp5SW5pdGlh
bGl6ZSgpCiB7CiAgICAgaWYgKGlzU3RvcHBlZCgpKQpAQCAtMTkzLDggKzE5OSw3IEBAIHZvaWQg
QmFzZUF1ZGlvQ29udGV4dDo6bGF6eUluaXRpYWxpemUoKQogICAgIGlmIChtX2lzQXVkaW9UaHJl
YWRGaW5pc2hlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fZGVzdGluYXRpb25Ob2Rl
KQotICAgICAgICBtX2Rlc3RpbmF0aW9uTm9kZS0+aW5pdGlhbGl6ZSgpOworICAgIG1fZGVzdGlu
YXRpb25Ob2RlLT5pbml0aWFsaXplKCk7CiAKICAgICBtX2lzSW5pdGlhbGl6ZWQgPSB0cnVlOwog
fQpAQCAtMjAzLDEwICsyMDgsNiBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmNsZWFyKCkKIHsK
ICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKIAotICAgIC8vIFdlIGhh
dmUgdG8gcmVsZWFzZSBvdXIgcmVmZXJlbmNlIHRvIHRoZSBkZXN0aW5hdGlvbiBub2RlIGJlZm9y
ZSB0aGUgY29udGV4dCB3aWxsIGV2ZXIgYmUgZGVsZXRlZCBzaW5jZSB0aGUgZGVzdGluYXRpb24g
bm9kZSBob2xkcyBhIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dC4KLSAgICBpZiAobV9kZXN0aW5h
dGlvbk5vZGUpCi0gICAgICAgIG1fZGVzdGluYXRpb25Ob2RlID0gbnVsbHB0cjsKLQogICAgIC8v
IEF1ZGlvIHRocmVhZCBpcyBkZWFkLiBOb2JvZHkgd2lsbCBzY2hlZHVsZSBub2RlIGRlbGV0aW9u
IGFjdGlvbi4gTGV0J3MgZG8gaXQgb3Vyc2VsdmVzLgogICAgIGRvIHsKICAgICAgICAgZGVsZXRl
TWFya2VkTm9kZXMoKTsKQEAgLTIyNiw4ICsyMjcsNyBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6
OnVuaW5pdGlhbGl6ZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFRoaXMgc3RvcHMgdGhl
IGF1ZGlvIHRocmVhZCBhbmQgYWxsIGF1ZGlvIHJlbmRlcmluZy4KLSAgICBpZiAobV9kZXN0aW5h
dGlvbk5vZGUpCi0gICAgICAgIG1fZGVzdGluYXRpb25Ob2RlLT51bmluaXRpYWxpemUoKTsKKyAg
ICBtX2Rlc3RpbmF0aW9uTm9kZS0+dW5pbml0aWFsaXplKCk7CiAKICAgICAvLyBEb24ndCBhbGxv
dyB0aGUgY29udGV4dCB0byBpbml0aWFsaXplIGEgc2Vjb25kIHRpbWUgYWZ0ZXIgaXQncyBhbHJl
YWR5IGJlZW4gZXhwbGljaXRseSB1bmluaXRpYWxpemVkLgogICAgIG1faXNBdWRpb1RocmVhZEZp
bmlzaGVkID0gdHJ1ZTsKQEAgLTI5Miw2ICsyOTIsNyBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6
OnN0b3AoKQogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAgICAgCiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KTsKIAogICAgIC8vIFVzdWFsbHkgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBjYWxscyBzdG9wIHR3
aWNlLgogICAgIGlmIChtX2lzU3RvcFNjaGVkdWxlZCkKQEAgLTMxNyw3ICszMTgsNyBAQCBEb2N1
bWVudCogQmFzZUF1ZGlvQ29udGV4dDo6ZG9jdW1lbnQoKSBjb25zdAogCiBmbG9hdCBCYXNlQXVk
aW9Db250ZXh0OjpzYW1wbGVSYXRlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9kZXN0aW5hdGlv
bk5vZGUgPyBtX2Rlc3RpbmF0aW9uTm9kZS0+c2FtcGxlUmF0ZSgpIDogQXVkaW9EZXN0aW5hdGlv
bjo6aGFyZHdhcmVTYW1wbGVSYXRlKCk7CisgICAgcmV0dXJuIG1fZGVzdGluYXRpb25Ob2RlLT5z
YW1wbGVSYXRlKCk7CiB9CiAKIGJvb2wgQmFzZUF1ZGlvQ29udGV4dDo6d291bGRUYWludE9yaWdp
bihjb25zdCBVUkwmIHVybCkgY29uc3QKQEAgLTM0Niw3ICszNDcsNyBAQCB2b2lkIEJhc2VBdWRp
b0NvbnRleHQ6OmRlY29kZUF1ZGlvRGF0YShSZWY8QXJyYXlCdWZmZXI+JiYgYXVkaW9EYXRhLCBS
ZWZQdHI8QXVkaQogICAgIGlmICghbV9hdWRpb0RlY29kZXIpCiAgICAgICAgIG1fYXVkaW9EZWNv
ZGVyID0gbWFrZVVuaXF1ZTxBc3luY0F1ZGlvRGVjb2Rlcj4oKTsKIAotICAgIG1fYXVkaW9EZWNv
ZGVyLT5kZWNvZGVBc3luYyhXVEZNb3ZlKGF1ZGlvRGF0YSksIHNhbXBsZVJhdGUoKSwgW3RoaXMs
IGFjdGl2aXR5ID0gQWN0aXZlRE9NT2JqZWN0OjptYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKSwg
c3VjY2Vzc0NhbGxiYWNrID0gV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBlcnJvckNhbGxiYWNr
ID0gV1RGTW92ZShlcnJvckNhbGxiYWNrKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKEV4
Y2VwdGlvbk9yPFJlZjxBdWRpb0J1ZmZlcj4+JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBtX2F1
ZGlvRGVjb2Rlci0+ZGVjb2RlQXN5bmMoV1RGTW92ZShhdWRpb0RhdGEpLCBzYW1wbGVSYXRlKCks
IFt0aGlzLCBhY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBzdWNjZXNzQ2Fs
bGJhY2sgPSBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIGVycm9yQ2FsbGJhY2sgPSBXVEZNb3Zl
KGVycm9yQ2FsbGJhY2spLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8
UmVmPEF1ZGlvQnVmZmVyPj4mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBxdWV1ZVRhc2tL
ZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6OkludGVybmFsQXN5bmNUYXNrLCBb
c3VjY2Vzc0NhbGxiYWNrID0gV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBlcnJvckNhbGxiYWNr
ID0gV1RGTW92ZShlcnJvckNhbGxiYWNrKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHJl
c3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChyZXN1
bHQuaGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBpZiAocHJvbWlzZSkKQEAgLTc1
OSw2ICs3NjAsNyBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmhhbmRsZURlZmVycmVkRGVjcmVt
ZW50Q29ubmVjdGlvbkNvdW50cygpCiB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6Om1hcmtGb3JEZWxl
dGlvbihBdWRpb05vZGUmIG5vZGUpCiB7CiAgICAgQVNTRVJUKGlzR3JhcGhPd25lcigpKTsKKyAg
ICBBU1NFUlRfV0lUSF9NRVNTQUdFKG5vZGUubm9kZVR5cGUoKSAhPSBBdWRpb05vZGU6Ok5vZGVU
eXBlRGVzdGluYXRpb24sICJEZXN0aW5hdGlvbiBub2RlIGlzIG93bmVkIGJ5IHRoZSBCYXNlQXVk
aW9Db250ZXh0Iik7CiAKICAgICBpZiAoaXNBdWRpb1RocmVhZEZpbmlzaGVkKCkpCiAgICAgICAg
IG1fbm9kZXNUb0RlbGV0ZS5hcHBlbmQoJm5vZGUpOwpAQCAtODIxLDYgKzgyMyw4IEBAIHZvaWQg
QmFzZUF1ZGlvQ29udGV4dDo6ZGVsZXRlTWFya2VkTm9kZXMoKQogICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mT3V0cHV0czsgKytpKQogICAgICAgICAgICAgICAg
IG1fZGlydHlBdWRpb05vZGVPdXRwdXRzLnJlbW92ZShub2RlLT5vdXRwdXQoaSkpOwogCisgICAg
ICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG5vZGUtPm5vZGVUeXBlKCkgIT0gQXVkaW9Ob2Rl
OjpOb2RlVHlwZURlc3RpbmF0aW9uLCAiRGVzdGluYXRpb24gbm9kZSBpcyBvd25lZCBieSB0aGUg
QmFzZUF1ZGlvQ29udGV4dCIpOworCiAgICAgICAgICAgICAvLyBGaW5hbGx5LCBkZWxldGUgaXQu
CiAgICAgICAgICAgICBkZWxldGUgbm9kZTsKICAgICAgICAgfQpAQCAtMTAyOCwxMCArMTAzMiwx
MCBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmNsZWFyUGVuZGluZ0FjdGl2aXR5KCkKICAgICBt
X3BlbmRpbmdBY3Rpdml0eSA9IG51bGxwdHI7CiB9CiAKLXZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6
bWFrZVBlbmRpbmdBY3Rpdml0eSgpCit2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OnNldFBlbmRpbmdB
Y3Rpdml0eSgpCiB7CiAgICAgaWYgKCFtX3BlbmRpbmdBY3Rpdml0eSkKLSAgICAgICAgbV9wZW5k
aW5nQWN0aXZpdHkgPSBBY3RpdmVET01PYmplY3Q6Om1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMp
OworICAgICAgICBtX3BlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMp
OwogfQogCiBQZXJpb2RpY1dhdmUmIEJhc2VBdWRpb0NvbnRleHQ6OnBlcmlvZGljV2F2ZShPc2Np
bGxhdG9yVHlwZSB0eXBlKQpAQCAtMTA4Nyw4ICsxMDkxLDcgQEAgdm9pZCBCYXNlQXVkaW9Db250
ZXh0Ojp3b3JrbGV0SXNSZWFkeSgpCiAKICAgICAvLyBJZiB3ZSdyZSBhbHJlYWR5IHJlbmRlcmlu
ZyB3aGVuIHRoZSB3b3JrbGV0IGJlY29tZXMgcmVhZHksIHdlIG5lZWQgdG8gcmVzdGFydAogICAg
IC8vIHJlbmRlcmluZyBpbiBvcmRlciB0byBzd2l0Y2ggdG8gdGhlIGF1ZGlvIHdvcmtsZXQgdGhy
ZWFkLgotICAgIGlmIChtX2Rlc3RpbmF0aW9uTm9kZSkKLSAgICAgICAgbV9kZXN0aW5hdGlvbk5v
ZGUtPnJlc3RhcnRSZW5kZXJpbmcoKTsKKyAgICBtX2Rlc3RpbmF0aW9uTm9kZS0+cmVzdGFydFJl
bmRlcmluZygpOwogfQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oCmluZGV4IDlkOWE0
YTljODk2MzRlOTc1ZDNiZWJlYWI1MTA5MjEyZGJkNzRiOTEuLjVlMGFjZTZhYzg5NzMwNGJmNDBh
M2QzZTdjNjc3MjExMmEwMDI4MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oCkBAIC0xMDcsMTUgKzEwNywyMCBAQCBwdWJsaWM6
CiAgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ6OnJlZjsKICAgICB1c2luZyBUaHJlYWRT
YWZlUmVmQ291bnRlZDo6ZGVyZWY7CiAKKyAgICAvLyBUaGlzIGlzIHVzZWQgZm9yIGxpZmV0aW1l
IHRlc3RpbmcuCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHVuc2lnbmVkIG51bWJlck9mSW5z
dGFuY2VzKCk7CisKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKICAgICBib29sIGlz
SW5pdGlhbGl6ZWQoKSBjb25zdDsKICAgICAKICAgICBib29sIGlzT2ZmbGluZUNvbnRleHQoKSBj
b25zdCB7IHJldHVybiBtX2lzT2ZmbGluZUNvbnRleHQ7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNX
ZWJLaXRBdWRpb0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgQXVkaW9E
ZXN0aW5hdGlvbk5vZGUqIGRlc3RpbmF0aW9uKCkgeyByZXR1cm4gbV9kZXN0aW5hdGlvbk5vZGUu
Z2V0KCk7IH0KLSAgICBzaXplX3QgY3VycmVudFNhbXBsZUZyYW1lKCkgY29uc3QgeyByZXR1cm4g
bV9kZXN0aW5hdGlvbk5vZGUgPyBtX2Rlc3RpbmF0aW9uTm9kZS0+Y3VycmVudFNhbXBsZUZyYW1l
KCkgOiAwOyB9Ci0gICAgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0
aW5hdGlvbk5vZGUgPyBtX2Rlc3RpbmF0aW9uTm9kZS0+Y3VycmVudFRpbWUoKSA6IDAuOyB9Cisg
ICAgQXVkaW9EZXN0aW5hdGlvbk5vZGUmIGRlc3RpbmF0aW9uKCkgeyByZXR1cm4gbV9kZXN0aW5h
dGlvbk5vZGUuZ2V0KCk7IH0KKyAgICBjb25zdCBBdWRpb0Rlc3RpbmF0aW9uTm9kZSYgZGVzdGlu
YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uTm9kZS5nZXQoKTsgfQorCisgICAg
c2l6ZV90IGN1cnJlbnRTYW1wbGVGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25O
b2RlLT5jdXJyZW50U2FtcGxlRnJhbWUoKTsgfQorICAgIGRvdWJsZSBjdXJyZW50VGltZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25Ob2RlLT5jdXJyZW50VGltZSgpOyB9CiAgICAgZmxv
YXQgc2FtcGxlUmF0ZSgpIGNvbnN0OwogICAgIHVuc2lnbmVkIGxvbmcgYWN0aXZlU291cmNlQ291
bnQoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPihtX2FjdGl2ZVNv
dXJjZUNvdW50KTsgfQogCkBAIC0yOTYsMTIgKzMwMSwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgQmFz
ZUF1ZGlvQ29udGV4dChEb2N1bWVudCYsIElzTGVnYWN5V2ViS2l0QXVkaW9Db250ZXh0LCB1bnNp
Z25lZCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlLCBSZWZQdHI8QXVkaW9CdWZm
ZXI+JiYgcmVuZGVyVGFyZ2V0KTsKICAgICAKICAgICB2b2lkIGNsZWFyUGVuZGluZ0FjdGl2aXR5
KCk7Ci0gICAgdm9pZCBtYWtlUGVuZGluZ0FjdGl2aXR5KCk7CisgICAgdm9pZCBzZXRQZW5kaW5n
QWN0aXZpdHkoKTsKIAogICAgIHZvaWQgbG9ja0ludGVybmFsKGJvb2wmIG11c3RSZWxlYXNlTG9j
ayk7CiAKLSAgICBBdWRpb0Rlc3RpbmF0aW9uTm9kZSogZGVzdGluYXRpb25Ob2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9kZXN0aW5hdGlvbk5vZGUuZ2V0KCk7IH0KLQogICAgIHZpcnR1YWwgdm9pZCB1
bmluaXRpYWxpemUoKTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApAQCAtMzgzLDcgKzM4
Niw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFZlY3RvcjxET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4+PiBtX3N0YXRlUmVhY3Rpb25zOwogCiAgICAgUmVmUHRyPEF1ZGlvQnVmZmVyPiBtX3JlbmRl
clRhcmdldDsKLSAgICBSZWZQdHI8QXVkaW9EZXN0aW5hdGlvbk5vZGU+IG1fZGVzdGluYXRpb25O
b2RlOworICAgIFVuaXF1ZVJlZjxBdWRpb0Rlc3RpbmF0aW9uTm9kZT4gbV9kZXN0aW5hdGlvbk5v
ZGU7CiAgICAgUmVmPEF1ZGlvTGlzdGVuZXI+IG1fbGlzdGVuZXI7CiAKICAgICB1bnNpZ25lZCBt
X2Nvbm5lY3Rpb25Db3VudCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IDMz
NjljMjQ1MjE0ZjI5OWRiNjM2ZGYxNTE3MzdiMWNmZDA5NDhlOWEuLjVhODcxNTc3MWUzZTBkZGI1
YzE2NDAxNWIyYWIwMjViZTRmOGVjNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAt
MzMsMjAgKzMzLDE4IEBAIGNsYXNzIEF1ZGlvRGVzdGluYXRpb247CiBjbGFzcyBEZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUgZmluYWwgOiBwdWJsaWMgQXVkaW9EZXN0aW5hdGlvbk5vZGUgewog
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKTsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZT4gY3Jl
YXRlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIE9wdGlvbmFsPGZsb2F0PiBzYW1wbGVSYXRl
ID0gV1RGOjpudWxsb3B0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKGNvbnRleHQsIHNhbXBsZVJhdGUpKTsKLSAgICB9Cisg
ICAgZXhwbGljaXQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQm
LCBPcHRpb25hbDxmbG9hdD4gPSBXVEY6Om51bGxvcHQpOwogICAgIAogICAgIHZpcnR1YWwgfkRl
ZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZSgpOwogCiAgICAgdW5zaWduZWQgZnJhbWVzUGVyQnVm
ZmVyKCkgY29uc3Q7CiAgICAgCiAgICAgdm9pZCBzdGFydFJlbmRlcmluZyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgcmVz
dW1lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikgZmlu
YWw7CisgICAgdm9pZCBzdXNwZW5kKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhj
ZXB0aW9uPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBjbG9zZShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpIGZpbmFsOwogCiBwcml2YXRlOgotICAgIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9u
Tm9kZShCYXNlQXVkaW9Db250ZXh0JiwgT3B0aW9uYWw8ZmxvYXQ+KTsKLQogICAgIHZvaWQgY3Jl
YXRlRGVzdGluYXRpb24oKTsKICAgICB2b2lkIGNsZWFyRGVzdGluYXRpb24oKTsKICAgICB2b2lk
IHJlY3JlYXRlRGVzdGluYXRpb24oKTsKQEAgLTYwLDEwICs1OCw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCByZXF1aXJlc1RhaWxQcm9jZXNzaW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7
IH0KIAogICAgIHZvaWQgZW5hYmxlSW5wdXQoY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkKSBm
aW5hbDsKLSAgICB2b2lkIHJlc3VtZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4
Y2VwdGlvbj4mJik+JiYpIGZpbmFsOwotICAgIHZvaWQgc3VzcGVuZChDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgcmVzdGFy
dFJlbmRlcmluZygpIGZpbmFsOwotICAgIHZvaWQgY2xvc2UoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKSBmaW5hbDsKICAgICB1bnNpZ25lZCBtYXhDaGFubmVsQ291bnQoKSBjb25zdCBmaW5h
bDsKICAgICBib29sIGlzUGxheWluZygpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcAppbmRleCA2YTBj
OWE0MjQxODg4YTc3ZmY0OTJlMWM1OGVkOTE4MjAxZDk3ZjBkLi45Y2VmMDAzODc0NjQ0NTQyZWUw
MzRiYTRiMWJjNGVlNjI3ZGM0NzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTEwOSwxMyArMTA5LDEz
IEBAIHZvaWQgT2ZmbGluZUF1ZGlvQ29udGV4dDo6c3RhcnRPZmZsaW5lUmVuZGVyaW5nKFJlZjxE
ZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIAogICAgIGxhenlJbml0aWFsaXplKCk7CiAKLSAg
ICBkZXN0aW5hdGlvbigpLT5zdGFydFJlbmRlcmluZyhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSksIHBlbmRpbmdBY3Rpdml0eSA9IEFjdGl2ZURPTU9iamVjdDo6bWFrZVBlbmRpbmdB
Y3Rpdml0eSgqdGhpcyldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUg
eworICAgIGRlc3RpbmF0aW9uKCkuc3RhcnRSZW5kZXJpbmcoW3RoaXMsIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpLCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlz
KV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlm
IChleGNlcHRpb24pIHsKICAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChXVEZNb3ZlKCpleGNl
cHRpb24pKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIG1ha2VQ
ZW5kaW5nQWN0aXZpdHkoKTsKKyAgICAgICAgc2V0UGVuZGluZ0FjdGl2aXR5KCk7CiAgICAgICAg
IG1fcGVuZGluZ09mZmxpbmVSZW5kZXJpbmdQcm9taXNlID0gV1RGTW92ZShwcm9taXNlKTsKICAg
ICAgICAgbV9kaWRTdGFydE9mZmxpbmVSZW5kZXJpbmcgPSB0cnVlOwogICAgICAgICBzZXRTdGF0
ZShTdGF0ZTo6UnVubmluZyk7CkBAIC0xNzEsMTMgKzE3MSwxMyBAQCB2b2lkIE9mZmxpbmVBdWRp
b0NvbnRleHQ6OnJlc3VtZU9mZmxpbmVSZW5kZXJpbmcoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQogICAgIH0KICAgICBBU1NFUlQoc3RhdGUoKSA9PSBBdWRpb0NvbnRleHRTdGF0ZTo6
U3VzcGVuZGVkKTsKIAotICAgIGRlc3RpbmF0aW9uKCktPnN0YXJ0UmVuZGVyaW5nKFt0aGlzLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcGVuZGluZ0FjdGl2aXR5ID0gQWN0aXZlRE9NT2Jq
ZWN0OjptYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4
Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgZGVzdGluYXRpb24oKS5zdGFydFJlbmRlcmluZyhbdGhp
cywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5k
aW5nQWN0aXZpdHkoKnRoaXMpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKGV4Y2VwdGlvbikgewogICAgICAgICAgICAgcHJvbWlzZS0+cmVq
ZWN0KFdURk1vdmUoKmV4Y2VwdGlvbikpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKLSAgICAgICAgbWFrZVBlbmRpbmdBY3Rpdml0eSgpOworICAgICAgICBzZXRQZW5kaW5nQWN0
aXZpdHkoKTsKICAgICAgICAgc2V0U3RhdGUoU3RhdGU6OlJ1bm5pbmcpOwogICAgICAgICBwcm9t
aXNlLT5yZXNvbHZlKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oCmluZGV4IDE3MTE4OGVjNDNmMzYxZjI3
ODMyOGQ2NzZjMjYzMWRkY2Q0N2IzZGMuLjNkZjA3Y2I3NTZhYzc1MTdlODI3ZDQ3YmI0MDYzYmYz
YzBiMWM3MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2Zm
bGluZUF1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
T2ZmbGluZUF1ZGlvQ29udGV4dC5oCkBAIC00Nyw3ICs0Nyw4IEBAIHB1YmxpYzoKICAgICB1bnNp
Z25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQogICAgIGJvb2wgc2hvdWxk
U3VzcGVuZCgpIGZpbmFsOwogCi0gICAgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKiBkZXN0
aW5hdGlvbigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9k
ZSo+KEJhc2VBdWRpb0NvbnRleHQ6OmRlc3RpbmF0aW9uKCkpOyB9CisgICAgT2ZmbGluZUF1ZGlv
RGVzdGluYXRpb25Ob2RlJiBkZXN0aW5hdGlvbigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PE9mZmxp
bmVBdWRpb0Rlc3RpbmF0aW9uTm9kZSY+KEJhc2VBdWRpb0NvbnRleHQ6OmRlc3RpbmF0aW9uKCkp
OyB9CisgICAgY29uc3QgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlJiBkZXN0aW5hdGlvbigp
IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9u
Tm9kZSY+KEJhc2VBdWRpb0NvbnRleHQ6OmRlc3RpbmF0aW9uKCkpOyB9CiAKICAgICAvLyBtdXN0
UmVsZWFzZUxvY2sgaXMgc2V0IHRvIHRydWUgaWYgd2UgYWNxdWlyZWQgdGhlIGxvY2sgaW4gdGhp
cyBtZXRob2QgY2FsbCBhbmQgY2FsbGVyIG11c3QgdW5sb2NrKCksIGZhbHNlIGlmIGl0IHdhcyBw
cmV2aW91c2x5IGFjcXVpcmVkLgogICAgIHZvaWQgb2ZmbGluZUxvY2soYm9vbCYgbXVzdFJlbGVh
c2VMb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2Zm
bGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IDRmZDNmN2M3YzU2NWVjMDQx
MjNjNTY3MGE1ZjUxMGUxYTFhYjViNDMuLjNiMDQyY2QwNmIxYmExNzZlYzcwODkyMzJmYmEyY2E0
OWMzZmYwZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2Zm
bGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtMzcsMTAgKzM3LDcgQEAg
Y2xhc3MgQXVkaW9Db250ZXh0OwogY2xhc3MgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlIGZp
bmFsIDogcHVibGljIEF1ZGlvRGVzdGluYXRpb25Ob2RlIHsKICAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZSk7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU+IGNyZWF0ZShCYXNlQXVkaW9Db250ZXh0
JiBjb250ZXh0LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlLCBS
ZWZQdHI8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKGNvbnRleHQsIG51bWJl
ck9mQ2hhbm5lbHMsIHNhbXBsZVJhdGUsIFdURk1vdmUocmVuZGVyVGFyZ2V0KSkpOwotICAgIH0K
KyAgICBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIHVuc2ln
bmVkIG51bWJlck9mQ2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUsIFJlZlB0cjxBdWRpb0J1ZmZl
cj4mJiByZW5kZXJUYXJnZXQpOwogCiAgICAgdmlydHVhbCB+T2ZmbGluZUF1ZGlvRGVzdGluYXRp
b25Ob2RlKCk7CiAgICAgCkBAIC01Myw4ICs1MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0
UmVuZGVyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4m
JikgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKEJh
c2VBdWRpb0NvbnRleHQmLCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzYW1wbGVS
YXRlLCBSZWZQdHI8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KTsKLQogICAgIGVudW0gY2xh
c3MgT2ZmbGluZVJlbmRlclJlc3VsdCB7IEZhaWx1cmUsIFN1c3BlbmRlZCwgQ29tcGxldGUgfTsK
ICAgICBPZmZsaW5lUmVuZGVyUmVzdWx0IG9mZmxpbmVSZW5kZXIoKTsKICAgICB2b2lkIG5vdGlm
eU9mZmxpbmVSZW5kZXJpbmdTdXNwZW5kZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcAppbmRleCBjOGFiMTZkOTcz
NjY2ODhjNzQ2M2RlZmU5MTk0MDg2NzZiMmRiOTkyLi5hYmQ4NDI2ODk4ZDg3NDVjYThhMDk4ZWQw
MzBjOWNmZmE2ODExZDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuY3BwCkBAIC0yMDAsNyArMjAwLDcgQEAgdm9pZCBX
ZWJLaXRBdWRpb0NvbnRleHQ6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21p
c2UpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoc3RhdGUoKSA9PSBTdGF0ZTo6
Q2xvc2VkIHx8ICFkZXN0aW5hdGlvbk5vZGUoKSkgeworICAgIGlmIChzdGF0ZSgpID09IFN0YXRl
OjpDbG9zZWQpIHsKICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC0yMDksNyArMjA5LDcgQEAgdm9pZCBXZWJLaXRBdWRpb0NvbnRleHQ6OmNsb3Nl
KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAKICAgICBsYXp5SW5pdGlhbGl6
ZSgpOwogCi0gICAgZGVzdGluYXRpb25Ob2RlKCktPmNsb3NlKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICBkZXN0aW5hdGlvbigpLmNsb3NlKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgc2V0U3RhdGUoU3RhdGU6OkNs
b3NlZCk7CiAgICAgICAgIHVuaW5pdGlhbGl6ZSgpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwCmluZGV4IDdhZjA3OWEzYWE2OGNlZWJlM2JjMTk3MmM1ZTY2OWFmMzA1ZjM1MjQu
LjllNWNmN2FhODI2ODdjNjZkMzRkNWY5MGU5ZDg5MDY3YTEyZGZlM2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5jcHAKQEAgLTU0LDEyICs1NCwxNSBAQCBzdHJ1Y3QgU2FtZVNpemVBc1NoYWRv
d1Jvb3QgOiBwdWJsaWMgRG9jdW1lbnRGcmFnbWVudCwgcHVibGljIFRyZWVTY29wZSB7CiAgICAg
dWludDhfdCBtb2RlOwogICAgIHZvaWQqIHN0eWxlU2NvcGU7CiAgICAgdm9pZCogc3R5bGVTaGVl
dExpc3Q7Ci0gICAgdm9pZCogaG9zdDsKKyAgICBXZWFrUHRyPEVsZW1lbnQ+IGhvc3Q7CiAgICAg
dm9pZCogc2xvdEFzc2lnbm1lbnQ7CiAgICAgT3B0aW9uYWw8SGFzaE1hcDxBdG9tU3RyaW5nLCBB
dG9tU3RyaW5nPj4gcGFydE1hcHBpbmdzOwogfTsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFNo
YWRvd1Jvb3QpID09IHNpemVvZihTYW1lU2l6ZUFzU2hhZG93Um9vdCksIHNoYWRvd3Jvb3Rfc2hv
dWxkX3N0YXlfc21hbGwpOworI2lmICFBU1NFUlRfRU5BQkxFRAorQ09NUElMRV9BU1NFUlQoc2l6
ZW9mKFdlYWtQdHI8RWxlbWVudD4pID09IHNpemVvZih2b2lkKiksIFdlYWtQdHJfc2hvdWxkX2Jl
X3NhbWVfc2l6ZV9hc19yYXdfcG9pbnRlcik7CisjZW5kaWYKIAogU2hhZG93Um9vdDo6U2hhZG93
Um9vdChEb2N1bWVudCYgZG9jdW1lbnQsIFNoYWRvd1Jvb3RNb2RlIHR5cGUsIERlbGVnYXRlc0Zv
Y3VzIGRlbGVnYXRlc0ZvY3VzKQogICAgIDogRG9jdW1lbnRGcmFnbWVudChkb2N1bWVudCwgQ3Jl
YXRlU2hhZG93Um9vdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG9h
dGluZ09iamVjdHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb2F0aW5nT2JqZWN0
cy5jcHAKaW5kZXggYjcwOTNlYzIwMDBhZDBkYmY1ODU2M2M5NjcxMzRjOTg0ZWNlOGE1NS4uM2Ey
ZDQyYThhYTllOGRkOWMxNWMwZjUwMWU2YTNmMTAyMDk1ZTZkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0Zsb2F0aW5nT2JqZWN0cy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0Zsb2F0aW5nT2JqZWN0cy5jcHAKQEAgLTM0LDcgKzM0LDggQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IFNhbWVTaXplQXNGbG9hdGluZ09iamVjdCB7Ci0gICAg
dm9pZCogcG9pbnRlcnNbMl07CisgICAgV2Vha1B0cjxSZW5kZXJCb3g+IHJlbmRlcmVyOworICAg
IFdlYWtQdHI8Um9vdElubGluZUJveD4gb3JpZ2luYXRpbmdMaW5lOwogICAgIExheW91dFJlY3Qg
cmVjdDsKICAgICBpbnQgcGFnaW5hdGlvblN0cnV0OwogICAgIExheW91dFNpemUgc2l6ZTsKQEAg
LTQyLDYgKzQzLDEwIEBAIHN0cnVjdCBTYW1lU2l6ZUFzRmxvYXRpbmdPYmplY3QgewogfTsKIAog
Q09NUElMRV9BU1NFUlQoc2l6ZW9mKEZsb2F0aW5nT2JqZWN0KSA9PSBzaXplb2YoU2FtZVNpemVB
c0Zsb2F0aW5nT2JqZWN0KSwgRmxvYXRpbmdPYmplY3Rfc2hvdWxkX3N0YXlfc21hbGwpOworI2lm
ICFBU1NFUlRfRU5BQkxFRAorQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFdlYWtQdHI8UmVuZGVyQm94
PikgPT0gc2l6ZW9mKHZvaWQqKSwgV2Vha1B0cl9zaG91bGRfYmVfc2FtZV9zaXplX2FzX3Jhd19w
b2ludGVyKTsKK0NPTVBJTEVfQVNTRVJUKHNpemVvZihXZWFrUHRyPFJvb3RJbmxpbmVCb3g+KSA9
PSBzaXplb2Yodm9pZCopLCBXZWFrUHRyX3Nob3VsZF9iZV9zYW1lX3NpemVfYXNfcmF3X3BvaW50
ZXIpOworI2VuZGlmCiAKIEZsb2F0aW5nT2JqZWN0OjpGbG9hdGluZ09iamVjdChSZW5kZXJCb3gm
IHJlbmRlcmVyKQogICAgIDogbV9yZW5kZXJlcihtYWtlV2Vha1B0cihyZW5kZXJlcikpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAKaW5kZXggODA3MTYxNzY5MTg0
MzM3Y2JjNmI0Y2I2M2E4ZGYwMDE2OTdkYWIxYS4uZmNkZDQwN2FmZmY1YWU5Yzk2M2YyZDVkZGRm
MjU4ZmNjY2FkM2Q1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJ
bmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94
LmNwcApAQCAtNDcsMTAgKzQ3LDE0IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChSb290
SW5saW5lQm94KTsKIAogc3RydWN0IFNhbWVTaXplQXNSb290SW5saW5lQm94IDogcHVibGljIElu
bGluZUZsb3dCb3gsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSb290SW5saW5lQm94PiB7CiAgICAg
dW5zaWduZWQgdmFyaWFibGVzWzddOwotICAgIHZvaWQqIHBvaW50ZXJzWzNdOworICAgIFdlYWtQ
dHI8UmVuZGVyT2JqZWN0PiBsaW5lQnJlYWtPYmo7CisgICAgdm9pZCogcG9pbnRlcnNbMl07CiB9
OwogCiBDT01QSUxFX0FTU0VSVChzaXplb2YoUm9vdElubGluZUJveCkgPT0gc2l6ZW9mKFNhbWVT
aXplQXNSb290SW5saW5lQm94KSwgUm9vdElubGluZUJveF9zaG91bGRfc3RheV9zbWFsbCk7Cisj
aWYgIUFTU0VSVF9FTkFCTEVECitDT01QSUxFX0FTU0VSVChzaXplb2YoV2Vha1B0cjxSZW5kZXJP
YmplY3Q+KSA9PSBzaXplb2Yodm9pZCopLCBXZWFrUHRyX3Nob3VsZF9iZV9zYW1lX3NpemVfYXNf
cmF3X3BvaW50ZXIpOworI2VuZGlmCiAKIHR5cGVkZWYgV1RGOjpIYXNoTWFwPGNvbnN0IFJvb3RJ
bmxpbmVCb3gqLCBzdGQ6OnVuaXF1ZV9wdHI8RWxsaXBzaXNCb3g+PiBFbGxpcHNpc0JveE1hcDsK
IHN0YXRpYyBFbGxpcHNpc0JveE1hcCogZ0VsbGlwc2lzQm94TWFwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCmluZGV4IGNjM2M1NjE2NTI4YjliNGFmMTlmNDRiNDAwNWRmNTU4ZjQ5
ZjI4MWQuLmNmYjI2OWYzMmQ1YjhjNzgyNTIwMjk3ODA0Mjg2YzdmMzY4Y2RjM2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI2NTAsNiArMjY1MCwxNSBAQCB1bnNpZ25l
ZCBJbnRlcm5hbHM6OnJlZmVyZW5jaW5nTm9kZUNvdW50KGNvbnN0IERvY3VtZW50JiBkb2N1bWVu
dCkgY29uc3QKICAgICByZXR1cm4gZG9jdW1lbnQucmVmZXJlbmNpbmdOb2RlQ291bnQoKTsKIH0K
IAordW5zaWduZWQgSW50ZXJuYWxzOjpudW1iZXJPZkJhc2VBdWRpb0NvbnRleHRzKCkgY29uc3QK
K3sKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHJldHVybiBCYXNlQXVkaW9Db250ZXh0Ojpu
dW1iZXJPZkluc3RhbmNlcygpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCiAj
aWYgRU5BQkxFKElOVEVSU0VDVElPTl9PQlNFUlZFUikKIHVuc2lnbmVkIEludGVybmFsczo6bnVt
YmVyT2ZJbnRlcnNlY3Rpb25PYnNlcnZlcnMoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSBjb25z
dAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggZTFhMDNlOWEwMTc5ZDBmNjlj
Mjg0OWZiMmJkMGZhNDBhOWRkOTRmMi4uZTZkNmQ2OTlmN2U4M2JlYjlkYzI5NDcyYzlkZWJmMmNk
YTZlNjVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC00NTUsNiArNDU1LDcg
QEAgcHVibGljOgogICAgIHVuc2lnbmVkIG51bWJlck9mTGl2ZU5vZGVzKCkgY29uc3Q7CiAgICAg
dW5zaWduZWQgbnVtYmVyT2ZMaXZlRG9jdW1lbnRzKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgcmVm
ZXJlbmNpbmdOb2RlQ291bnQoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKKyAgICB1bnNpZ25lZCBu
dW1iZXJPZkJhc2VBdWRpb0NvbnRleHRzKCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoSU5URVJTRUNU
SU9OX09CU0VSVkVSKQogICAgIHVuc2lnbmVkIG51bWJlck9mSW50ZXJzZWN0aW9uT2JzZXJ2ZXJz
KGNvbnN0IERvY3VtZW50JikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
aW5kZXggNDI5NDc2OTFhYWNkZmM5ZDkxNGZmMzlkZjk3NWEwMTI5NWY5NGVlZi4uZjlmMTZhN2Vk
OGIyMWFmZTM5MTBkYmI2MWYyMDVhOTMxNTU2Njc4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbApAQCAtNTM3LDYgKzUzNyw3IEBAIGVudW0gVHJlZVR5cGUgewogCiAgICAgdW5z
aWduZWQgbG9uZyBudW1iZXJPZkxpdmVOb2RlcygpOwogICAgIHVuc2lnbmVkIGxvbmcgbnVtYmVy
T2ZMaXZlRG9jdW1lbnRzKCk7CisgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZkJhc2VBdWRpb0Nv
bnRleHRzKCk7CiAgICAgdW5zaWduZWQgbG9uZyByZWZlcmVuY2luZ05vZGVDb3VudChEb2N1bWVu
dCBkb2N1bWVudCk7CiAgICAgW0NvbmRpdGlvbmFsPUlOVEVSU0VDVElPTl9PQlNFUlZFUl0gdW5z
aWduZWQgbG9uZyBudW1iZXJPZkludGVyc2VjdGlvbk9ic2VydmVycyhEb2N1bWVudCBkb2N1bWVu
dCk7CiAgICAgW0NvbmRpdGlvbmFsID0gUkVTSVpFX09CU0VSVkVSXSB1bnNpZ25lZCBsb25nIG51
bWJlck9mUmVzaXplT2JzZXJ2ZXJzKERvY3VtZW50IGRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMjQ0OTgz
YjRkMzg3M2RiM2M1NDMzOWY3NWE2OWE3MzNkODdlZWI0Li4wYzhiNzU5Mjg4YjRkOGE5YjY5OGZm
N2E4NWZhMjZhMDk1YTBmZGMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDQtMDcgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBPZmZsaW5lQXVkaW9Db250
ZXh0IG9iamVjdHMgYXJlIGxlYWtpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNDI3OQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIHdlYmF1
ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQvb2ZmbGluZWF1ZGlvY29udGV4dC1sZWFrLWFmdGVyLXJl
bmRlcmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL09mZmxpbmVB
dWRpb0NvbnRleHQvb2ZmbGluZWF1ZGlvY29udGV4dC1sZWFrLWFmdGVyLXJlbmRlcmluZy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0L29mZmxpbmVh
dWRpb2NvbnRleHQtbGVhay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlv
L09mZmxpbmVBdWRpb0NvbnRleHQvb2ZmbGluZWF1ZGlvY29udGV4dC1sZWFrLmh0bWw6IEFkZGVk
LgorCiAyMDIxLTA0LTA3ICBSb2JlcnQgSmVubmVyICA8amVubmVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbIG1hY09TIF0gbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3NlZWstZm9yd2FyZC1z
dXBwb3J0L3NlZWstZm9yd2FyZC1zdXBwb3J0Lmh0bWwgaXMgYSBmbGFrZXkgdGltZW91dApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC9vZmZsaW5l
YXVkaW9jb250ZXh0LWxlYWstYWZ0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQvb2ZmbGluZWF1ZGlvY29udGV4dC1sZWFr
LWFmdGVyLXJlbmRlcmluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFhNzQzNDEzYmQ2ODEx
NjFlMzZkOTYxMzAxY2U2OGZjZGE3ZGVhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQvb2ZmbGluZWF1ZGlvY29udGV4dC1sZWFrLWFm
dGVyLXJlbmRlcmluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorTWFrZXMgc3VyZSB0
aGF0IHRoZSBPZmZsaW5lQXVkaW9Db250ZXh0IG9iamVjdHMgYXJlIG5vdCBsZWFraW5nIGFmdGVy
IHJlbmRlcmluZy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW50ZXJu
YWxzLm51bWJlck9mQmFzZUF1ZGlvQ29udGV4dHMoKSA+PSBpbnN0YW5jZXNUb0NyZWF0ZSBpcyB0
cnVlCitQQVNTIGludGVybmFscy5udW1iZXJPZkJhc2VBdWRpb0NvbnRleHRzKCkgPCBpbnN0YW5j
ZXNUb0NyZWF0ZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vT2ZmbGluZUF1
ZGlvQ29udGV4dC9vZmZsaW5lYXVkaW9jb250ZXh0LWxlYWstYWZ0ZXItcmVuZGVyaW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0L29mZmxpbmVhdWRpb2Nv
bnRleHQtbGVhay1hZnRlci1yZW5kZXJpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTQwMjYyZDA2OTlk
YTcyM2Q5Yzc5MzQ5YWZiYzEzNzZhMTc1YjJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC9vZmZsaW5lYXVkaW9jb250ZXh0LWxlYWst
YWZ0ZXItcmVuZGVyaW5nLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiTWFrZXMgc3VyZSB0aGF0IHRoZSBPZmZs
aW5lQXVkaW9Db250ZXh0IG9iamVjdHMgYXJlIG5vdCBsZWFraW5nIGFmdGVyIHJlbmRlcmluZy4i
KTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitjb25zdCBpbnN0YW5jZXNUb0NyZWF0ZSA9IDEw
MDsKKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBsZXQgcHJvbWlzZXMgPSBbXTsKKyAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IGluc3RhbmNlc1RvQ3JlYXRlOyBpKyspIHsKKyAgICAgICAgbGV0IGNv
bnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLCAxLCA0NDEwMCk7CisgICAgICAgIHBy
b21pc2VzLnB1c2goY29udGV4dC5zdGFydFJlbmRlcmluZygpKTsKKyAgICB9CisgICAgc2hvdWxk
QmVUcnVlKCJpbnRlcm5hbHMubnVtYmVyT2ZCYXNlQXVkaW9Db250ZXh0cygpID49IGluc3RhbmNl
c1RvQ3JlYXRlIik7CisgICAgUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oKHZhbHVlcykgPT4g
eworICAgICAgICBnYygpOworICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAg
IGdjKCk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoImludGVybmFscy5udW1iZXJPZkJhc2VB
dWRpb0NvbnRleHRzKCkgPCBpbnN0YW5jZXNUb0NyZWF0ZSIpOworICAgICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgICAgIH0sIDApOworICAgIH0pOworfQorCit0ZXN0KCk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL09m
ZmxpbmVBdWRpb0NvbnRleHQvb2ZmbGluZWF1ZGlvY29udGV4dC1sZWFrLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQvb2ZmbGluZWF1ZGlvY29u
dGV4dC1sZWFrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDlmNGIyNTk4ZmUxZmVmYzVkNzhh
Zjg5YTEyZjNmY2VkNTk4ZjZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvQ29udGV4dC9vZmZsaW5lYXVkaW9jb250ZXh0LWxlYWstZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTEgQEAKK01ha2VzIHN1cmUgdGhhdCB0aGUgT2ZmbGluZUF1ZGlvQ29u
dGV4dCBvYmplY3RzIGFyZSBub3QgbGVha2luZy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mQmFzZUF1ZGlvQ29udGV4dHMoKSA+PSBpbnN0
YW5jZXNUb0NyZWF0ZSBpcyB0cnVlCitQQVNTIGludGVybmFscy5udW1iZXJPZkJhc2VBdWRpb0Nv
bnRleHRzKCkgPCBpbnN0YW5jZXNUb0NyZWF0ZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC9vZmZsaW5lYXVkaW9jb250ZXh0LWxlYWsuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQvb2ZmbGluZWF1ZGlv
Y29udGV4dC1sZWFrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTc5OWUyZjA3MTgxZDBjMDFkZmVlNTQ5YzZl
NDY5N2JjN2U5YmYwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL09m
ZmxpbmVBdWRpb0NvbnRleHQvb2ZmbGluZWF1ZGlvY29udGV4dC1sZWFrLmh0bWwKQEAgLTAsMCAr
MSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bigiTWFrZXMgc3VyZSB0aGF0IHRoZSBPZmZsaW5lQXVkaW9Db250ZXh0IG9iamVjdHMgYXJlIG5v
dCBsZWFraW5nLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2NvbnN0IGluc3RhbmNlc1Rv
Q3JlYXRlID0gMTAwOworCitmdW5jdGlvbiBhbGxvY2F0ZUNvbnRleHRzKCkgeworICAgIGxldCBj
b250ZXh0cyA9IFtdOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5zdGFuY2VzVG9DcmVhdGU7
IGkrKykKKyAgICAgICAgY29udGV4dHMucHVzaChuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLCAx
LCA0NDEwMCkpOworICAgIHNob3VsZEJlVHJ1ZSgiaW50ZXJuYWxzLm51bWJlck9mQmFzZUF1ZGlv
Q29udGV4dHMoKSA+PSBpbnN0YW5jZXNUb0NyZWF0ZSIpOworfQorCithbGxvY2F0ZUNvbnRleHRz
KCk7CitnYygpOworc2V0VGltZW91dCgoKSA9PiB7CisgICAgZ2MoKTsKKyAgICBzaG91bGRCZVRy
dWUoImludGVybmFscy5udW1iZXJPZkJhc2VBdWRpb0NvbnRleHRzKCkgPCBpbnN0YW5jZXNUb0Ny
ZWF0ZSIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSwgMCk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>