<?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>213160</bug_id>
          
          <creation_ts>2020-06-12 18:28:54 -0700</creation_ts>
          <short_desc>Signal handlers should have a two phase installation.</short_desc>
          <delta_ts>2020-06-15 13:35:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=213211</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1662285</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-12 18:28:54 -0700</bug_when>
    <thetext>Signal handlers should have a two phase installation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662286</commentid>
    <comment_count>1</comment_count>
      <attachid>401817</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-12 18:34:48 -0700</bug_when>
    <thetext>Created attachment 401817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662290</commentid>
    <comment_count>2</comment_count>
      <attachid>401818</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-12 18:54:58 -0700</bug_when>
    <thetext>Created attachment 401818
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662299</commentid>
    <comment_count>3</comment_count>
      <attachid>401818</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-12 19:14:45 -0700</bug_when>
    <thetext>Comment on attachment 401818
Patch

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

Some comments for now.  I&apos;ll do a proper review later.

&gt; Source/WTF/ChangeLog:10
&gt; +        With Mach exception handlers installed the OS will send a mach message

comma after &quot;installed&quot; please.

&gt; Source/WTF/ChangeLog:12
&gt; +        When this happens the combination of LLDB and the process JSC is in effectively

comma after &quot;happens&quot; please.

&gt; Source/WTF/ChangeLog:15
&gt; +        Under our new approach we go back to only telling the OS we care about

comma after &quot;approach&quot; please.

&gt; Source/JavaScriptCore/jsc.cpp:3243
&gt; +        Wasm::enableFastMemory();

Please fix the indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662305</commentid>
    <comment_count>4</comment_count>
      <attachid>401821</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-12 19:43:27 -0700</bug_when>
    <thetext>Created attachment 401821
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662306</commentid>
    <comment_count>5</comment_count>
      <attachid>401822</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-12 19:45:56 -0700</bug_when>
    <thetext>Created attachment 401822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662324</commentid>
    <comment_count>6</comment_count>
      <attachid>401822</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-12 21:20:22 -0700</bug_when>
    <thetext>Comment on attachment 401822
Patch

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

&gt; Source/WTF/ChangeLog:17
&gt; +        Under our new approach, we go back to only telling the OS we care about
&gt; +        these exceptions late but lock down the function pointers early. This way
&gt; +        processes that benefit from our exception handler code are easier to debug.

Given my comment below about what should be done in activateSignalHandlersFor(), I would change this to say:

Under our new approach, we go back to registering threads to listen for exceptions late, but lock down all other details about mach exceptions early (including the function pointers, the exception mask, and the exception port). ...

&gt; Source/WTF/wtf/threads/Signals.cpp:243
&gt; +    kern_return_t result = thread_set_exception_ports(thread.machThread(), activeExceptions, handlers.exceptionPort, EXCEPTION_STATE | MACH_EXCEPTION_CODES, MACHINE_THREAD_STATE);

Let&apos;s undo this and keep activeExceptions in the Config (see details below).

&gt; Source/WTF/wtf/threads/Signals.cpp:279
&gt; +static std::once_flag initializeOnceFlags[static_cast&lt;size_t&gt;(Signal::NumberOfSignals)];

Why move this outside of addSignalHandler?  No one else needs it.

&gt; Source/WTF/wtf/threads/Signals.cpp:-295
&gt; -        Config::AssertNotFrozenScope assertScope;

Please keep this.  It defends against bugs where we end up jumping into this lambda function.  We want to make sure that this lambda function is never called once we freeze the Config.

&gt; Source/WTF/wtf/threads/Signals.cpp:317
&gt; +    ASSERT(signal &lt; Signal::Unknown);
&gt; +    ASSERT(!handlers.useMach || signal != Signal::Usr);

Make these ASSERT_UNUSED so that !HAVE(MACH_EXCEPTIONS) builds won&apos;t complain about an unused arguments and variables.

&gt; Source/WTF/wtf/threads/Signals.cpp:319
&gt; +
&gt; +

Remove excess empty lines.

&gt; Source/WTF/wtf/threads/Signals.cpp:324
&gt; +        activeExceptions |= toMachMask(signal);

Why can&apos;t you set activeExceptions in addSignalHandler()?  If a bug overwrites this and removes a Signal type, we may inadvertently disable signal handling that we&apos;re depending on.

Let&apos;s do this:
1. keep the activeExceptions mask in the Config&apos;s handlers record.
2. In addSignalHandler(), set `handlers.activeExceptions |= toMachMask(signal);`
3. In activateSignalHandlersFor(), do this instead: `RELEASE_ASSERT(handlers.activeExceptions &amp; toMachMask(signal));`.  This is ensure that addSignalHandler() was called for this Signal type as expected.

After reading thru this patch, I&apos;m convinced that the only real work that activateSignalHandlersFor() needs to do is simply to register the threads by calling setExceptionPorts() on them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662325</commentid>
    <comment_count>7</comment_count>
      <attachid>401822</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-12 21:20:55 -0700</bug_when>
    <thetext>Comment on attachment 401822
Patch

r- for now since EWS bots are red anyway.  Please revise the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662383</commentid>
    <comment_count>8</comment_count>
      <attachid>401822</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-13 11:02:56 -0700</bug_when>
    <thetext>Comment on attachment 401822
Patch

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

&gt;&gt; Source/WTF/wtf/threads/Signals.cpp:279
&gt;&gt; +static std::once_flag initializeOnceFlags[static_cast&lt;size_t&gt;(Signal::NumberOfSignals)];
&gt; 
&gt; Why move this outside of addSignalHandler?  No one else needs it.

sure.

&gt;&gt; Source/WTF/wtf/threads/Signals.cpp:-295
&gt;&gt; -        Config::AssertNotFrozenScope assertScope;
&gt; 
&gt; Please keep this.  It defends against bugs where we end up jumping into this lambda function.  We want to make sure that this lambda function is never called once we freeze the Config.

Ah yeah, that got incidentally deleted while moving code around. I&apos;ll put it back.

&gt;&gt; Source/WTF/wtf/threads/Signals.cpp:317
&gt;&gt; +    ASSERT(!handlers.useMach || signal != Signal::Usr);
&gt; 
&gt; Make these ASSERT_UNUSED so that !HAVE(MACH_EXCEPTIONS) builds won&apos;t complain about an unused arguments and variables.

sure.

&gt;&gt; Source/WTF/wtf/threads/Signals.cpp:324
&gt;&gt; +        activeExceptions |= toMachMask(signal);
&gt; 
&gt; Why can&apos;t you set activeExceptions in addSignalHandler()?  If a bug overwrites this and removes a Signal type, we may inadvertently disable signal handling that we&apos;re depending on.
&gt; 
&gt; Let&apos;s do this:
&gt; 1. keep the activeExceptions mask in the Config&apos;s handlers record.
&gt; 2. In addSignalHandler(), set `handlers.activeExceptions |= toMachMask(signal);`
&gt; 3. In activateSignalHandlersFor(), do this instead: `RELEASE_ASSERT(handlers.activeExceptions &amp; toMachMask(signal));`.  This is ensure that addSignalHandler() was called for this Signal type as expected.
&gt; 
&gt; After reading thru this patch, I&apos;m convinced that the only real work that activateSignalHandlersFor() needs to do is simply to register the threads by calling setExceptionPorts() on them.

I think that&apos;s a riskier change because then all signals get turned on at once. Until we have a real fix for LLDB I want to make sure we only have the handlers installed when we actually need them.

I don&apos;t think the badness from accidentally clearing the bits is that bad since, IIRC, the API will just leave the old handler in place. But even calling setExceptionPorts disables the other handler it&apos;s just gonna be a crash because no there&apos;s no handler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662390</commentid>
    <comment_count>9</comment_count>
      <attachid>401844</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-13 11:17:48 -0700</bug_when>
    <thetext>Created attachment 401844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662404</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-13 12:32:20 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #8)
&gt; &gt; After reading thru this patch, I&apos;m convinced that the only real work that activateSignalHandlersFor() needs to do is simply to register the threads by calling setExceptionPorts() on them.
&gt; 
&gt; I think that&apos;s a riskier change because then all signals get turned on at
&gt; once. Until we have a real fix for LLDB I want to make sure we only have the
&gt; handlers installed when we actually need them.
&gt; 
&gt; I don&apos;t think the badness from accidentally clearing the bits is that bad
&gt; since, IIRC, the API will just leave the old handler in place. But even
&gt; calling setExceptionPorts disables the other handler it&apos;s just gonna be a
&gt; crash because no there&apos;s no handler.

After thinking about this more, I agree that subtracting masks is not an issue because it means we will just crash.  However, I think adding masks can still be an issue.  I&apos;ll propose a change in your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662406</commentid>
    <comment_count>11</comment_count>
      <attachid>401844</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-13 13:02:06 -0700</bug_when>
    <thetext>Comment on attachment 401844
Patch

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

r=me with fixes for limiting what signals can be activated.

&gt; Source/WTF/ChangeLog:13
&gt; +        LLDB does not like it when we single step while there are mach exception
&gt; +        handlers installed because LLDB suspends all the non-active threads.
&gt; +        With Mach exception handlers installed, the OS will send a mach message
&gt; +        to our exception handler port, which is different than the active thread.
&gt; +        When this happens, the combination of LLDB and the process JSC is in effectively
&gt; +        deadlock.

It&apos;s not clear to me how this patch fixes the LLDB deadlock?  At some point, we will call setExceptionPort() for the signals we wish to handle.  How does having delayed the call to setExceptionPort() help after that it does get called?  Wouldn&apos;t LLDB also still deadlock then?  Or are you saying that you&apos;re only reducing the probability of deadlock here and not actually fixing it completely?  Can you comment and clarify this point in the ChangeLog.

Anyway, I think this patch is an improvement.

&gt; Source/WTF/wtf/threads/Signals.cpp:243
&gt; +    kern_return_t result = thread_set_exception_ports(thread.machThread(), activeExceptions, handlers.exceptionPort, EXCEPTION_STATE | MACH_EXCEPTION_CODES, MACHINE_THREAD_STATE);

Replace &quot;activeExceptions&quot; with &quot;activeExceptions &amp; handlers.addedExceptions&quot; here.

&gt; Source/WTF/wtf/threads/Signals.cpp:-295
&gt; -        Config::AssertNotFrozenScope assertScope;

Please restore this Config::AssertNotFrozenScope.

&gt; Source/WTF/wtf/threads/Signals.cpp:323
&gt; -        handlers.activeExceptions |= toMachMask(signal);
&gt; +        activeExceptions |= toMachMask(signal);

To ensure that we don&apos;t allow activating any handlers for signals that we didn&apos;t explicitly call addSignalHandler() for, let&apos;s do the following:
1. In SignalHandlers::add(), please add the following:
        addedExceptions |= toMachMask(signal);
2. Here in activateSignalHandlersFor(), change this line to:
        activeExceptions |= (toMachMask(signal) &amp; handlers.addedExceptions);

&gt; Source/WTF/wtf/threads/Signals.h:112
&gt;      exception_mask_t activeExceptions;

Rename this &quot;activeExceptions&quot; field to to &quot;addedExceptions&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662706</commentid>
    <comment_count>12</comment_count>
      <attachid>401844</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-15 10:52:17 -0700</bug_when>
    <thetext>Comment on attachment 401844
Patch

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

&gt;&gt; Source/WTF/ChangeLog:13
&gt;&gt; +        deadlock.
&gt; 
&gt; It&apos;s not clear to me how this patch fixes the LLDB deadlock?  At some point, we will call setExceptionPort() for the signals we wish to handle.  How does having delayed the call to setExceptionPort() help after that it does get called?  Wouldn&apos;t LLDB also still deadlock then?  Or are you saying that you&apos;re only reducing the probability of deadlock here and not actually fixing it completely?  Can you comment and clarify this point in the ChangeLog.
&gt; 
&gt; Anyway, I think this patch is an improvement.

It doesn&apos;t fix the LLDB issue, I&apos;ll clarify that in the changelog. This patch is just to reduce the prevalence of the bug back to were it was. In a follow up patch I plan on only turning on the WASM memory when we lazily allocate the WebAssembly object.

&gt;&gt; Source/WTF/wtf/threads/Signals.cpp:243
&gt;&gt; +    kern_return_t result = thread_set_exception_ports(thread.machThread(), activeExceptions, handlers.exceptionPort, EXCEPTION_STATE | MACH_EXCEPTION_CODES, MACHINE_THREAD_STATE);
&gt; 
&gt; Replace &quot;activeExceptions&quot; with &quot;activeExceptions &amp; handlers.addedExceptions&quot; here.

That&apos;s a good idea. I&apos;ll rename it to `handlers.registeredExecptions` though.

&gt;&gt; Source/WTF/wtf/threads/Signals.cpp:-295
&gt;&gt; -        Config::AssertNotFrozenScope assertScope;
&gt; 
&gt; Please restore this Config::AssertNotFrozenScope.

Done. I didn&apos;t mean for this version of the patch to be marked r? &gt;.&gt;

&gt;&gt; Source/WTF/wtf/threads/Signals.cpp:323
&gt;&gt; +        activeExceptions |= toMachMask(signal);
&gt; 
&gt; To ensure that we don&apos;t allow activating any handlers for signals that we didn&apos;t explicitly call addSignalHandler() for, let&apos;s do the following:
&gt; 1. In SignalHandlers::add(), please add the following:
&gt;         addedExceptions |= toMachMask(signal);
&gt; 2. Here in activateSignalHandlersFor(), change this line to:
&gt;         activeExceptions |= (toMachMask(signal) &amp; handlers.addedExceptions);

I don&apos;t think we need to change this line because we will &amp; with registeredExceptions.

&gt;&gt; Source/WTF/wtf/threads/Signals.h:112
&gt;&gt;      exception_mask_t activeExceptions;
&gt; 
&gt; Rename this &quot;activeExceptions&quot; field to to &quot;addedExceptions&quot;.

Ditto on renaming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662707</commentid>
    <comment_count>13</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-15 10:53:19 -0700</bug_when>
    <thetext>Ehhh, I decided against registeredExecptions in favor of addedExcepions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662708</commentid>
    <comment_count>14</comment_count>
      <attachid>401910</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-15 10:53:50 -0700</bug_when>
    <thetext>Created attachment 401910
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662727</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-15 11:30:03 -0700</bug_when>
    <thetext>Committed r263045: &lt;https://trac.webkit.org/changeset/263045&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401910.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662729</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-15 11:31:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/64372103&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401817</attachid>
            <date>2020-06-12 18:34:48 -0700</date>
            <delta_ts>2020-06-12 18:54:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213160-20200612183447.patch</filename>
            <type>text/plain</type>
            <size>14533</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyOTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
N2M1YTM5MmY1ZjIyZmQ0YTI4MDdhNWYzMzZiZDQ4NzU4ZTAyMWQyLi42MWRhZDM4ZjFhMGNhMjM2
MTRmZWVkODFmMjEyNDdiZTFmYzkwODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTaWduYWwgaGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2Ug
aW5zdGFsbGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjEzMTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoQ29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKToK
KyAgICAgICAgKGpzY21haW4pOgorICAgICAgICAqIHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5jcHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHJ1
bnRpbWUvVk1UcmFwcy5jcHA6CisgICAgICAgICogdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5j
cHA6CisgICAgICAgIChKU0M6Omluc3RhbGxDcmFzaEhhbmRsZXIpOgorICAgICAgICAqIHdhc20v
V2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OmVuYWJsZUZh
c3RNZW1vcnkpOgorICAgICAgICAoSlNDOjpXYXNtOjpwcmVwYXJlRmFzdE1lbW9yeSk6CisgICAg
ICAgICogd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmg6CisKIDIwMjAtMDYtMTIgIEtlaXRo
IE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgVGVzdHMgZXhwZWN0
aW5nIGEgY3Jhc2ggc2hvdWxkIHVzZSBhIHNpZ25hbCBoYW5kbGVyIGluIHRoZSBKU0MgQ0xJIHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYzAxMjY3NjgyZWZlZDNmZGRhY2E1ZWJiNTEzNGQxNTVjNDFhM2M3NC4uNzU3
OTY1N2Y3Y2VjOTk1ODJmNzM3MDBmMGVmMmFiZDNlZDdiNDNjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBA
QAorMjAyMC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBTaWduYWwgaGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2UgaW5zdGFsbGF0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEz
MTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTExE
QiBkb2VzIG5vdCBsaWtlIGl0IHdoZW4gd2Ugc2luZ2xlIHN0ZXAgd2hpbGUgdGhlcmUgYXJlIG1h
Y2ggZXhjZXB0aW9uCisgICAgICAgIGhhbmRsZXJzIGluc3RhbGxlZCBiZWNhdXNlIExMREIgc3Vz
cGVuZHMgYWxsIHRoZSBub24tYWN0aXZlIHRocmVhZHMuCisgICAgICAgIFdpdGggTWFjaCBleGNl
cHRpb24gaGFuZGxlcnMgaW5zdGFsbGVkIHRoZSBPUyB3aWxsIHNlbmQgYSBtYWNoIG1lc3NhZ2UK
KyAgICAgICAgdG8gb3VyIGV4Y2VwdGlvbiBoYW5kbGVyIHBvcnQsIHdoaWNoIGlzIGRpZmZlcmVu
dCB0aGFuIHRoZSBhY3RpdmUgdGhyZWFkLgorICAgICAgICBXaGVuIHRoaXMgaGFwcGVucyB0aGUg
Y29tYmluYXRpb24gb2YgTExEQiBhbmQgdGhlIHByb2Nlc3MgSlNDIGlzIGluIGVmZmVjdGl2ZWx5
CisgICAgICAgIGRlYWRsb2NrLgorCisgICAgICAgIFVuZGVyIG91ciBuZXcgYXBwcm9hY2ggd2Ug
Z28gYmFjayB0byBvbmx5IHRlbGxpbmcgdGhlIE9TIHdlIGNhcmUgYWJvdXQKKyAgICAgICAgdGhl
c2UgZXhjZXB0aW9ucyBsYXRlIGJ1dCBsb2NrIGRvd24gdGhlIGZ1bmN0aW9uIHBvaW50ZXJzIGVh
cmx5LiBUaGlzIHdheQorICAgICAgICBwcm9jZXNzZXMgdGhhdCBiZW5lZml0IGZyb20gb3VyIGV4
Y2VwdGlvbiBoYW5kbGVyIGNvZGUgYXJlIGVhc2llciB0byBkZWJ1Zy4KKworICAgICAgICAqIHd0
Zi90aHJlYWRzL1NpZ25hbHMuY3BwOgorICAgICAgICAoV1RGOjphZGRTaWduYWxIYW5kbGVyKToK
KyAgICAgICAgKFdURjo6YWN0aXZhdGVTaWduYWxIYW5kbGVyc0Zvcik6CisgICAgICAgIChXVEY6
Omluc3RhbGxTaWduYWxIYW5kbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvdGhyZWFkcy9T
aWduYWxzLmg6CisKIDIwMjAtMDYtMTIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgVGVzdHMgZXhwZWN0aW5nIGEgY3Jhc2ggc2hvdWxkIHVzZSBhIHNp
Z25hbCBoYW5kbGVyIGluIHRoZSBKU0MgQ0xJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzgyMzVjYjMz
NjMwMzkxMGViOWY0YjM3Nzc4ODNhMWRiMTliMzU5ZC4uMWNiZTgxZjY2OGE0NGRlZDBmMDQ5ZTVj
MGRmODk2YWQ4ODliOGFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNi0xMiAg
S2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBTaWduYWwg
aGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2UgaW5zdGFsbGF0aW9uLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMTYwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHV0IGJhY2sgb2xkIFdBU00g
ZmFzdCBtZW1vcnkgaW5zdGFsbGF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nl
c3MpOgorCiAyMDIwLTA2LTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgTWFrZSBBUEkgdGVzdHMgdG9sZXJhbnQgb2Ygb3VyIHJlbGF0aXZl
bHkgbmV3IHVzZSBvZiBXZWJQYWdlUHJveHk6OnByZWNvbm5lY3RUbwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cAppbmRleCA2ZmM1ZDRkMWY5Nzk4YWZhNmJkYWIyN2MyMjhmMGU4M2FjZWY1MjA2Li5lYzQ1NGIz
NTkxYTkyZTAzZTZlZmI1NTdhMjAxZWQ5NzM1MWI1NDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApA
QCAtNjYsNiArNjYsNyBAQAogI2luY2x1ZGUgIlR5cGVkQXJyYXlJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiVk1JbnNwZWN0b3IuaCIKICNpbmNsdWRlICJXYXNtQ2FwYWJpbGl0aWVzLmgiCisjaW5jbHVk
ZSAiV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5oIgogI2luY2x1ZGUgIldhc21NZW1vcnkuaCIKICNp
bmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtMjk4NiwxMSArMjk4Nywx
NiBAQCB2b2lkIENvbW1hbmRMaW5lOjpwYXJzZUFyZ3VtZW50cyhpbnQgYXJnYywgY2hhcioqIGFy
Z3YpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFNpZ25hbEFjdGlvbjo6Rm9yY2VEZWZhdWx0Owog
ICAgICAgICAgICAgfTsKIAotICAgICAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFs
OjpJbGxlZ2FsSW5zdHJ1Y3Rpb24sIFNpZ25hbEhhbmRsZXIoZXhpdCkpOwotICAgICAgICAgICAg
aW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpBY2Nlc3NGYXVsdCwgU2lnbmFsSGFuZGxlcihl
eGl0KSk7Ci0gICAgICAgICAgICBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OkZsb2F0aW5n
UG9pbnQsIFNpZ25hbEhhbmRsZXIoZXhpdCkpOworICAgICAgICAgICAgYWRkU2lnbmFsSGFuZGxl
cihTaWduYWw6OklsbGVnYWxJbnN0cnVjdGlvbiwgU2lnbmFsSGFuZGxlcihleGl0KSk7CisgICAg
ICAgICAgICBhZGRTaWduYWxIYW5kbGVyKFNpZ25hbDo6QWNjZXNzRmF1bHQsIFNpZ25hbEhhbmRs
ZXIoZXhpdCkpOworICAgICAgICAgICAgYWRkU2lnbmFsSGFuZGxlcihTaWduYWw6OkZsb2F0aW5n
UG9pbnQsIFNpZ25hbEhhbmRsZXIoZXhpdCkpOwogICAgICAgICAgICAgLy8gb25jZSB3ZSBkbyB0
aGlzIGxsZGIgd29uJ3Qgd29yayBhbnltb3JlIGJlY2F1c2Ugd2Ugd2lsbCBleGl0IG9uIGFueSBi
cmVha3BvaW50cyBpdCBzZXRzLgotICAgICAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2ln
bmFsOjpCcmVha3BvaW50LCBTaWduYWxIYW5kbGVyKGV4aXQpKTsKKyAgICAgICAgICAgIGFkZFNp
Z25hbEhhbmRsZXIoU2lnbmFsOjpCcmVha3BvaW50LCBTaWduYWxIYW5kbGVyKGV4aXQpKTsKKwor
ICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWduYWw6OklsbGVnYWxJbnN0
cnVjdGlvbik7CisgICAgICAgICAgICBhY3RpdmF0ZVNpZ25hbEhhbmRsZXJzRm9yKFNpZ25hbDo6
QWNjZXNzRmF1bHQpOworICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWdu
YWw6OkZsb2F0aW5nUG9pbnQpOworICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0Zv
cihTaWduYWw6OkJyZWFrcG9pbnQpOwogI2VuZGlmCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQpAQCAtMzIzMyw2ICszMjM5LDkgQEAgaW50IGpzY21haW4oaW50IGFyZ2MsIGNoYXIq
KiBhcmd2KQogICAgIC8vIEluaXRpYWxpemUgSlNDIGJlZm9yZSBnZXR0aW5nIFZNLgogICAgIEpT
Qzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIGluaXRpYWxpemVUaW1lb3V0SWZOZWVkZWQo
KTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgICAgIFdhc206OmVuYWJsZUZhc3RNZW1v
cnkoKTsKKyNlbmRpZgogCiAgICAgaWYgKE9wdGlvbnM6OnVzZVN1cGVyU2FtcGxlcigpKQogICAg
ICAgICBlbmFibGVTdXBlclNhbXBsZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAKaW5kZXggZGIyZWQyZmFlNDMwZmYy
ZDdiODJjYjBjZDFiOWFhODk3NGVjZjgzMy4uOWZjN2IxZjMzZTIzNGU5OWQwMTY0ZDBiNTk1NjY4
MTBmNWUzZjhhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5p
dGlhbGl6ZVRocmVhZGluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW5pdGlhbGl6ZVRocmVhZGluZy5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBpbml0aWFsaXpl
VGhyZWFkaW5nKCkKICNlbmRpZgogICAgICAgICBWTVRyYXBzOjppbml0aWFsaXplU2lnbmFscygp
OwogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLSAgICAgICAgV2FzbTo6ZW5hYmxlRmFzdE1lbW9y
eSgpOworICAgICAgICBXYXNtOjpwcmVwYXJlRmFzdE1lbW9yeSgpOwogI2VuZGlmCiAKICAgICAg
ICAgV1RGOjpjb21waWxlckZlbmNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTVRyYXBzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
VHJhcHMuY3BwCmluZGV4IGIzMTlkMzE0ZWE5ODIwZDgwY2FmNDk5YTNlMGQ5MjExYjAyMzdhN2Uu
LjQwYWE3OTdjMmFlYWRkMDJhODQ2NzI0YzEwMmQxMGNhN2VmZTE3N2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCkBAIC0xOTMsMTMgKzE5MywxNSBAQCBwdWJs
aWM6CiAgICAgU2lnbmFsU2VuZGVyKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFZNJiB2
bSkKICAgICAgICAgOiBCYXNlKGxvY2tlciwgdm0udHJhcHMoKS5tX2xvY2ssIHZtLnRyYXBzKCku
bV9jb25kaXRpb24uY29weVJlZigpKQogICAgICAgICAsIG1fdm0odm0pCi0gICAgeyB9CisgICAg
eworICAgICAgICBhY3RpdmF0ZVNpZ25hbEhhbmRsZXJzRm9yKFNpZ25hbDo6QWNjZXNzRmF1bHQp
OworICAgIH0KIAogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVTaWduYWxzKCkKICAgICB7CiAg
ICAgICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgICAgICBzdGQ6OmNhbGxfb25j
ZShvbmNlLCBbXSB7Ci0gICAgICAgICAgICBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OkFj
Y2Vzc0ZhdWx0LCBbXSAoU2lnbmFsLCBTaWdJbmZvJiwgUGxhdGZvcm1SZWdpc3RlcnMmIHJlZ2lz
dGVycykgLT4gU2lnbmFsQWN0aW9uIHsKKyAgICAgICAgICAgIGFkZFNpZ25hbEhhbmRsZXIoU2ln
bmFsOjpBY2Nlc3NGYXVsdCwgW10gKFNpZ25hbCwgU2lnSW5mbyYsIFBsYXRmb3JtUmVnaXN0ZXJz
JiByZWdpc3RlcnMpIC0+IFNpZ25hbEFjdGlvbiB7CiAgICAgICAgICAgICAgICAgYXV0byBzaWdu
YWxDb250ZXh0ID0gU2lnbmFsQ29udGV4dDo6dHJ5Q3JlYXRlKHJlZ2lzdGVycyk7CiAgICAgICAg
ICAgICAgICAgaWYgKCFzaWduYWxDb250ZXh0KQogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
U2lnbmFsQWN0aW9uOjpOb3RIYW5kbGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwCmluZGV4IGNjMmZkYzA2ZmE5NzE2ZTY3YTUw
NzhkYmMyNWVkMjZkMDM2YWU3ZmEuLjA2NDZiZjI5MmNlN2I1M2VhZmQ1NTg4YTlmODhlZjhkMGUy
ODliYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9TaWdpbGxDcmFz
aEFuYWx5emVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jh
c2hBbmFseXplci5jcHAKQEAgLTE1Niw3ICsxNTYsNyBAQCBwdWJsaWM6CiBzdGF0aWMgdm9pZCBp
bnN0YWxsQ3Jhc2hIYW5kbGVyKCkKIHsKICNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCi0g
ICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpJbGxlZ2FsSW5zdHJ1Y3Rpb24sIFtdIChT
aWduYWwsIFNpZ0luZm8mLCBQbGF0Zm9ybVJlZ2lzdGVycyYgcmVnaXN0ZXJzKSB7CisgICAgYWRk
U2lnbmFsSGFuZGxlcihTaWduYWw6OklsbGVnYWxJbnN0cnVjdGlvbiwgW10gKFNpZ25hbCwgU2ln
SW5mbyYsIFBsYXRmb3JtUmVnaXN0ZXJzJiByZWdpc3RlcnMpIHsKICAgICAgICAgYXV0byBzaWdu
YWxDb250ZXh0ID0gU2lnbmFsQ29udGV4dDo6dHJ5Q3JlYXRlKHJlZ2lzdGVycyk7CiAgICAgICAg
IGlmICghc2lnbmFsQ29udGV4dCkKICAgICAgICAgICAgIHJldHVybiBTaWduYWxBY3Rpb246Ok5v
dEhhbmRsZWQ7CkBAIC0xNjksNiArMTY5LDcgQEAgc3RhdGljIHZvaWQgaW5zdGFsbENyYXNoSGFu
ZGxlcigpCiAgICAgICAgIGFuYWx5emVyLmFuYWx5emUoKnNpZ25hbENvbnRleHQpOwogICAgICAg
ICByZXR1cm4gU2lnbmFsQWN0aW9uOjpOb3RIYW5kbGVkOwogICAgIH0pOworICAgIGFjdGl2YXRl
U2lnbmFsSGFuZGxlcnNGb3IoU2lnbmFsOjpJbGxlZ2FsSW5zdHJ1Y3Rpb24pOwogI2VuZGlmCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GYXVsdFNpZ25h
bEhhbmRsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFs
SGFuZGxlci5jcHAKaW5kZXggZDdjNDQwYjEzOGI2NDRhY2VlOTg3NDViNTQ2NzNjODAyNTVkOTQy
Yi4uYmU4NjRjYTY1ODhmNDk2NTFhZmFkMWNkNzI2ZDQyMDVkMmYwZjI3YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAK
QEAgLTExMywxMiArMTEzLDI4IEBAIHZvaWQgZW5hYmxlRmFzdE1lbW9yeSgpCiAgICAgICAgIGlm
ICghT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5KCkpCiAgICAgICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpBY2Nlc3NGYXVsdCwg
W10gKFNpZ25hbCBzaWduYWwsIFNpZ0luZm8mIHNpZ0luZm8sIFBsYXRmb3JtUmVnaXN0ZXJzJiB1
Y29udGV4dCkgewotICAgICAgICAgICAgcmV0dXJuIHRyYXBIYW5kbGVyKHNpZ25hbCwgc2lnSW5m
bywgdWNvbnRleHQpOwotICAgICAgICB9KTsKKyAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVy
c0ZvcihTaWduYWw6OkFjY2Vzc0ZhdWx0KTsKIAogICAgICAgICBmYXN0SGFuZGxlckluc3RhbGxl
ZCA9IHRydWU7CiAgICAgfSk7CisjZW5kaWYKK30KKwordm9pZCBwcmVwYXJlRmFzdE1lbW9yeSgp
Cit7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0ZBU1RfTUVNT1JZKQorICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBvbmNlOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKKyAgICAgICAg
aWYgKCFXYXNtOjppc1N1cHBvcnRlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGlmICghT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5KCkpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgYWRkU2lnbmFsSGFuZGxlcihTaWduYWw6OkFjY2Vzc0ZhdWx0LCBb
XSAoU2lnbmFsIHNpZ25hbCwgU2lnSW5mbyYgc2lnSW5mbywgUGxhdGZvcm1SZWdpc3RlcnMmIHVj
b250ZXh0KSB7CisgICAgICAgICAgICByZXR1cm4gdHJhcEhhbmRsZXIoc2lnbmFsLCBzaWdJbmZv
LCB1Y29udGV4dCk7CisgICAgICAgIH0pOworICAgIH0pOwogI2VuZGlmIC8vIEVOQUJMRShXRUJB
U1NFTUJMWV9GQVNUX01FTU9SWSkKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuaAppbmRleCA3ODNiNmE2YTUyYjExMWVi
MGE2ZGVhMjUxNzMwOGU2YWEzMmU5ZDhkLi4xNzM1MWJjODc4ZTllNjkyMWE4N2RlMjJhY2EwNTNk
Y2E2NzllMDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRmF1
bHRTaWduYWxIYW5kbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZh
dWx0U2lnbmFsSGFuZGxlci5oCkBAIC0zMiw2ICszMiw3IEBAIG5hbWVzcGFjZSBKU0MgewogbmFt
ZXNwYWNlIFdhc20gewogCiBib29sIGZhc3RNZW1vcnlFbmFibGVkKCk7CitKU19FWFBPUlRfUFJJ
VkFURSB2b2lkIHByZXBhcmVGYXN0TWVtb3J5KCk7CiBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGVu
YWJsZUZhc3RNZW1vcnkoKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90
aHJlYWRzL1NpZ25hbHMuY3BwCmluZGV4IDhlMTE1MGI3YWRmYWQwZmM4ZjI3NzVmMjQ1MGU1YjYx
MjhmMWMyMGUuLmIxYTEwYTdmNmM1MWQ5NWU2YTRhNTIyZDRiZDQ5ZTUwNzIzZDAxNzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvdGhyZWFkcy9TaWduYWxzLmNwcApAQCAtMjc4LDI1ICsyNzgsMzAgQEAgaW5saW5lIHNp
emVfdCBvZmZzZXRGb3JTeXN0ZW1TaWduYWwoaW50IHNpZykKIAogc3RhdGljIHZvaWQganNjU2ln
bmFsSGFuZGxlcihpbnQsIHNpZ2luZm9fdCosIHZvaWQqKTsKIAotdm9pZCBpbnN0YWxsU2lnbmFs
SGFuZGxlcihTaWduYWwgc2lnbmFsLCBTaWduYWxIYW5kbGVyJiYgaGFuZGxlcikKK3ZvaWQgYWRk
U2lnbmFsSGFuZGxlcihTaWduYWwgc2lnbmFsLCBTaWduYWxIYW5kbGVyJiYgaGFuZGxlcikKIHsK
ICAgICBDb25maWc6OkFzc2VydE5vdEZyb3plblNjb3BlIGFzc2VydFNjb3BlOwogICAgIFNpZ25h
bEhhbmRsZXJzJiBoYW5kbGVycyA9IGdfd3RmQ29uZmlnLnNpZ25hbEhhbmRsZXJzOwogICAgIEFT
U0VSVChzaWduYWwgPCBTaWduYWw6OlVua25vd24pOwotI2lmIEhBVkUoTUFDSF9FWENFUFRJT05T
KQogICAgIEFTU0VSVCghaGFuZGxlcnMudXNlTWFjaCB8fCBzaWduYWwgIT0gU2lnbmFsOjpVc3Ip
OwogCisjaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCiAgICAgaWYgKGhhbmRsZXJzLnVzZU1hY2gp
CiAgICAgICAgIHN0YXJ0TWFjaEV4Y2VwdGlvbkhhbmRsZXJUaHJlYWQoKTsKICNlbmRpZgogCisg
ICAgaGFuZGxlcnMuYWRkKHNpZ25hbCwgV1RGTW92ZShoYW5kbGVyKSk7Cit9CisKK3ZvaWQgYWN0
aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWduYWwgc2lnbmFsKQoreworICAgIFNpZ25hbEhhbmRs
ZXJzJiBoYW5kbGVycyA9IGdfd3RmQ29uZmlnLnNpZ25hbEhhbmRsZXJzOworICAgIEFTU0VSVChz
aWduYWwgPCBTaWduYWw6OlVua25vd24pOworICAgIEFTU0VSVCghaGFuZGxlcnMudXNlTWFjaCB8
fCBzaWduYWwgIT0gU2lnbmFsOjpVc3IpOworCiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGlu
aXRpYWxpemVPbmNlRmxhZ3Nbc3RhdGljX2Nhc3Q8c2l6ZV90PihTaWduYWw6Ok51bWJlck9mU2ln
bmFscyldOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVPbmNlRmxhZ3Nbc3RhdGljX2Nh
c3Q8c2l6ZV90PihzaWduYWwpXSwgWyZdIHsKLSAgICAgICAgQ29uZmlnOjpBc3NlcnROb3RGcm96
ZW5TY29wZSBhc3NlcnRTY29wZTsKLSNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLSAgICAgICAg
Ym9vbCB1c2VNYWNoID0gaGFuZGxlcnMudXNlTWFjaDsKLSNlbmRpZgotICAgICAgICBpZiAoIXVz
ZU1hY2gpIHsKKyAgICAgICAgaWYgKCFoYW5kbGVycy51c2VNYWNoKSB7CiAgICAgICAgICAgICBz
dHJ1Y3Qgc2lnYWN0aW9uIGFjdGlvbjsKICAgICAgICAgICAgIGFjdGlvbi5zYV9zaWdhY3Rpb24g
PSBqc2NTaWduYWxIYW5kbGVyOwogICAgICAgICAgICAgYXV0byByZXN1bHQgPSBzaWdmaWxsc2V0
KCZhY3Rpb24uc2FfbWFzayk7CkBAIC0zMTMsOCArMzE4LDYgQEAgdm9pZCBpbnN0YWxsU2lnbmFs
SGFuZGxlcihTaWduYWwgc2lnbmFsLCBTaWduYWxIYW5kbGVyJiYgaGFuZGxlcikKICAgICAgICAg
fQogICAgIH0pOwogCi0gICAgaGFuZGxlcnMuYWRkKHNpZ25hbCwgV1RGTW92ZShoYW5kbGVyKSk7
Ci0KICNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2Nr
KGFjdGl2ZVRocmVhZHMoKS5nZXRMb2NrKCkpOwogICAgIGlmIChoYW5kbGVycy51c2VNYWNoKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL1NpZ25hbHMuaCBiL1NvdXJjZS9X
VEYvd3RmL3RocmVhZHMvU2lnbmFscy5oCmluZGV4IDE2ZWFlOTdiZjg1ZGI5NTQ1Yjg1YTllYTI0
ZmQyMGQ3MGJhYWUwZDAuLjhlM2U2YzFhZDgzOGE5MzFjZTU3Yjc5ZmM0N2ZmMTBhZGEyNTNkYTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5oCkBAIC0xMTEsMTkgKzExMSwyMyBAQCBzdHJ1Y3Qg
U2lnbmFsSGFuZGxlcnMgewogICAgIG1hY2hfcG9ydF90IGV4Y2VwdGlvblBvcnQ7CiAgICAgZXhj
ZXB0aW9uX21hc2tfdCBhY3RpdmVFeGNlcHRpb25zOwogICAgIGJvb2wgdXNlTWFjaDsKKyNlbHNl
CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHVzZU1hY2ggPSBmYWxzZTsKICNlbmRpZgogICAg
IHVpbnQ4X3QgbnVtYmVyT2ZIYW5kbGVyc1tudW1iZXJPZlNpZ25hbHNdOwogICAgIFNpZ25hbEhh
bmRsZXJNZW1vcnkgaGFuZGxlcnNbbnVtYmVyT2ZTaWduYWxzXVttYXhOdW1iZXJPZkhhbmRsZXJz
XTsKICAgICBzdHJ1Y3Qgc2lnYWN0aW9uIG9sZEFjdGlvbnNbbnVtYmVyT2ZTaWduYWxzXTsKIH07
CiAKLS8vIENhbGwgdGhpcyBtZXRob2Qgd2hlbmV2ZXIgeW91IHdhbnQgdG8gaW5zdGFsbCBhIHNp
Z25hbCBoYW5kbGVyLiBUaGlzIGZ1bmN0aW9uIG5lZWRzIHRvIGJlIGNhbGxlZAorLy8gQ2FsbCB0
aGlzIG1ldGhvZCB3aGVuZXZlciB5b3Ugd2FudCB0byBhZGQgYSBzaWduYWwgaGFuZGxlci4gVGhp
cyBmdW5jdGlvbiBuZWVkcyB0byBiZSBjYWxsZWQKIC8vIGJlZm9yZSBnX3d0ZkNvbmZpZyBpcyBm
cm96ZW4uIEFmdGVyIHRoZSBnX3d0ZkNvbmZpZyBpcyBmcm96ZW4sIG5vIGFkZGl0aW9uYWwgc2ln
bmFsIGhhbmRsZXJzIG1heQogLy8gYmUgaW5zdGFsbGVkLiBBbnkgYXR0ZW1wdCB0byBkbyBzbyB3
aWxsIHRyaWdnZXIgYSBjcmFzaC4KIC8vIE5vdGU6IFlvdXIgc2lnbmFsIGhhbmRsZXIgd2lsbCBi
ZSBjYWxsZWQgZXZlcnkgdGltZSB0aGUgaGFuZGxlciBmb3IgdGhlIGRlc2lyZWQgc2lnbmFsIGlz
IGNhbGxlZC4KIC8vIFRodXMgaXQgaXMgeW91ciByZXNwb25zaWJpbGl0eSB0byBkaXNjZXJuIGlm
IHRoZSBzaWduYWwgZmlyZWQgd2FzIHlvdXJzLgotLy8gVGhpcyBmdW5jdGlvbiBpcyBhIG9uZSB3
YXkgc3RyZWV0IGkuZS4gb25jZSBpbnN0YWxsZWQsIGEgc2lnbmFsIGhhbmRsZXIgY2Fubm90IGJl
IHVuaW5zdGFsbGVkLgotV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgaW5zdGFsbFNpZ25hbEhhbmRs
ZXIoU2lnbmFsLCBTaWduYWxIYW5kbGVyJiYpOworLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBhIG9u
ZSB3YXkgc3RyZWV0IGkuZS4gb25jZSBpbnN0YWxsZWQsIGEgc2lnbmFsIGhhbmRsZXIgY2Fubm90
IGJlIHVuaW5zdGFsbGVkCisvLyBhbmQgb25jZSBjb21taXRlZCB0aGV5IGNhbid0IGJlIHR1cm5l
ZCBvZmYuCitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhZGRTaWduYWxIYW5kbGVyKFNpZ25hbCwg
U2lnbmFsSGFuZGxlciYmKTsKK1dURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFjdGl2YXRlU2lnbmFs
SGFuZGxlcnNGb3IoU2lnbmFsKTsKIAogCiAjaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCkBAIC0x
NDcsNiArMTUxLDcgQEAgdXNpbmcgV1RGOjp0b1N5c3RlbVNpZ25hbDsKIHVzaW5nIFdURjo6ZnJv
bVN5c3RlbVNpZ25hbDsKIHVzaW5nIFdURjo6U2lnbmFsQWN0aW9uOwogdXNpbmcgV1RGOjpTaWdu
YWxIYW5kbGVyOwotdXNpbmcgV1RGOjppbnN0YWxsU2lnbmFsSGFuZGxlcjsKK3VzaW5nIFdURjo6
YWRkU2lnbmFsSGFuZGxlcjsKK3VzaW5nIFdURjo6YWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcjsK
IAogI2VuZGlmIC8vIFVTRShQVEhSRUFEUykgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggOWFhYjE5ZmQxNjczMGExOTU4
YjAwNTk4Y2Q2YjQ0Y2IwZGJhOWI2ZS4uMWJjYzg0MTMxZWM2NDhlYWIxZmJiMzUxZTNhODU4NzM1
MTY3NzU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtODMs
NiArODMsNyBAQAogI2luY2x1ZGUgIldlYnNpdGVEYXRhVHlwZS5oIgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01lbW9yeVN0YXRp
c3RpY3MuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9XYXNtRmF1bHRTaWduYWxIYW5kbGVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UuaD4KQEAgLTQ2Niw2ICs0NjcsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpp
bml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycykKICAgICBTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNldFNoYXJlZFByb3ZpZGVyKFdlYlNl
cnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCisgICAgSlNDOjpXYXNtOjplbmFibGVGYXN0TWVtb3J5KCk7CisjZW5kaWYK
KwogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogICAgIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjpzZXRTaG91bGRMb2dVc2VySW50
ZXJhY3Rpb24ocGFyYW1ldGVycy5zaG91bGRMb2dVc2VySW50ZXJhY3Rpb24pOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401818</attachid>
            <date>2020-06-12 18:54:58 -0700</date>
            <delta_ts>2020-06-12 19:43:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213160-20200612185457.patch</filename>
            <type>text/plain</type>
            <size>16328</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyOTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
N2M1YTM5MmY1ZjIyZmQ0YTI4MDdhNWYzMzZiZDQ4NzU4ZTAyMWQyLi42MWRhZDM4ZjFhMGNhMjM2
MTRmZWVkODFmMjEyNDdiZTFmYzkwODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTaWduYWwgaGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2Ug
aW5zdGFsbGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjEzMTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoQ29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKToK
KyAgICAgICAgKGpzY21haW4pOgorICAgICAgICAqIHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5jcHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHJ1
bnRpbWUvVk1UcmFwcy5jcHA6CisgICAgICAgICogdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5j
cHA6CisgICAgICAgIChKU0M6Omluc3RhbGxDcmFzaEhhbmRsZXIpOgorICAgICAgICAqIHdhc20v
V2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OmVuYWJsZUZh
c3RNZW1vcnkpOgorICAgICAgICAoSlNDOjpXYXNtOjpwcmVwYXJlRmFzdE1lbW9yeSk6CisgICAg
ICAgICogd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmg6CisKIDIwMjAtMDYtMTIgIEtlaXRo
IE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgVGVzdHMgZXhwZWN0
aW5nIGEgY3Jhc2ggc2hvdWxkIHVzZSBhIHNpZ25hbCBoYW5kbGVyIGluIHRoZSBKU0MgQ0xJIHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYzAxMjY3NjgyZWZlZDNmZGRhY2E1ZWJiNTEzNGQxNTVjNDFhM2M3NC4uNzU3
OTY1N2Y3Y2VjOTk1ODJmNzM3MDBmMGVmMmFiZDNlZDdiNDNjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBA
QAorMjAyMC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBTaWduYWwgaGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2UgaW5zdGFsbGF0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEz
MTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTExE
QiBkb2VzIG5vdCBsaWtlIGl0IHdoZW4gd2Ugc2luZ2xlIHN0ZXAgd2hpbGUgdGhlcmUgYXJlIG1h
Y2ggZXhjZXB0aW9uCisgICAgICAgIGhhbmRsZXJzIGluc3RhbGxlZCBiZWNhdXNlIExMREIgc3Vz
cGVuZHMgYWxsIHRoZSBub24tYWN0aXZlIHRocmVhZHMuCisgICAgICAgIFdpdGggTWFjaCBleGNl
cHRpb24gaGFuZGxlcnMgaW5zdGFsbGVkIHRoZSBPUyB3aWxsIHNlbmQgYSBtYWNoIG1lc3NhZ2UK
KyAgICAgICAgdG8gb3VyIGV4Y2VwdGlvbiBoYW5kbGVyIHBvcnQsIHdoaWNoIGlzIGRpZmZlcmVu
dCB0aGFuIHRoZSBhY3RpdmUgdGhyZWFkLgorICAgICAgICBXaGVuIHRoaXMgaGFwcGVucyB0aGUg
Y29tYmluYXRpb24gb2YgTExEQiBhbmQgdGhlIHByb2Nlc3MgSlNDIGlzIGluIGVmZmVjdGl2ZWx5
CisgICAgICAgIGRlYWRsb2NrLgorCisgICAgICAgIFVuZGVyIG91ciBuZXcgYXBwcm9hY2ggd2Ug
Z28gYmFjayB0byBvbmx5IHRlbGxpbmcgdGhlIE9TIHdlIGNhcmUgYWJvdXQKKyAgICAgICAgdGhl
c2UgZXhjZXB0aW9ucyBsYXRlIGJ1dCBsb2NrIGRvd24gdGhlIGZ1bmN0aW9uIHBvaW50ZXJzIGVh
cmx5LiBUaGlzIHdheQorICAgICAgICBwcm9jZXNzZXMgdGhhdCBiZW5lZml0IGZyb20gb3VyIGV4
Y2VwdGlvbiBoYW5kbGVyIGNvZGUgYXJlIGVhc2llciB0byBkZWJ1Zy4KKworICAgICAgICAqIHd0
Zi90aHJlYWRzL1NpZ25hbHMuY3BwOgorICAgICAgICAoV1RGOjphZGRTaWduYWxIYW5kbGVyKToK
KyAgICAgICAgKFdURjo6YWN0aXZhdGVTaWduYWxIYW5kbGVyc0Zvcik6CisgICAgICAgIChXVEY6
Omluc3RhbGxTaWduYWxIYW5kbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvdGhyZWFkcy9T
aWduYWxzLmg6CisKIDIwMjAtMDYtMTIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgVGVzdHMgZXhwZWN0aW5nIGEgY3Jhc2ggc2hvdWxkIHVzZSBhIHNp
Z25hbCBoYW5kbGVyIGluIHRoZSBKU0MgQ0xJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzgyMzVjYjMz
NjMwMzkxMGViOWY0YjM3Nzc4ODNhMWRiMTliMzU5ZC4uMWNiZTgxZjY2OGE0NGRlZDBmMDQ5ZTVj
MGRmODk2YWQ4ODliOGFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNi0xMiAg
S2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBTaWduYWwg
aGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2UgaW5zdGFsbGF0aW9uLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMTYwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHV0IGJhY2sgb2xkIFdBU00g
ZmFzdCBtZW1vcnkgaW5zdGFsbGF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nl
c3MpOgorCiAyMDIwLTA2LTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgTWFrZSBBUEkgdGVzdHMgdG9sZXJhbnQgb2Ygb3VyIHJlbGF0aXZl
bHkgbmV3IHVzZSBvZiBXZWJQYWdlUHJveHk6OnByZWNvbm5lY3RUbwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cAppbmRleCA2ZmM1ZDRkMWY5Nzk4YWZhNmJkYWIyN2MyMjhmMGU4M2FjZWY1MjA2Li5lYzQ1NGIz
NTkxYTkyZTAzZTZlZmI1NTdhMjAxZWQ5NzM1MWI1NDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApA
QCAtNjYsNiArNjYsNyBAQAogI2luY2x1ZGUgIlR5cGVkQXJyYXlJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiVk1JbnNwZWN0b3IuaCIKICNpbmNsdWRlICJXYXNtQ2FwYWJpbGl0aWVzLmgiCisjaW5jbHVk
ZSAiV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5oIgogI2luY2x1ZGUgIldhc21NZW1vcnkuaCIKICNp
bmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtMjk4NiwxMSArMjk4Nywx
NiBAQCB2b2lkIENvbW1hbmRMaW5lOjpwYXJzZUFyZ3VtZW50cyhpbnQgYXJnYywgY2hhcioqIGFy
Z3YpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFNpZ25hbEFjdGlvbjo6Rm9yY2VEZWZhdWx0Owog
ICAgICAgICAgICAgfTsKIAotICAgICAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFs
OjpJbGxlZ2FsSW5zdHJ1Y3Rpb24sIFNpZ25hbEhhbmRsZXIoZXhpdCkpOwotICAgICAgICAgICAg
aW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpBY2Nlc3NGYXVsdCwgU2lnbmFsSGFuZGxlcihl
eGl0KSk7Ci0gICAgICAgICAgICBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OkZsb2F0aW5n
UG9pbnQsIFNpZ25hbEhhbmRsZXIoZXhpdCkpOworICAgICAgICAgICAgYWRkU2lnbmFsSGFuZGxl
cihTaWduYWw6OklsbGVnYWxJbnN0cnVjdGlvbiwgU2lnbmFsSGFuZGxlcihleGl0KSk7CisgICAg
ICAgICAgICBhZGRTaWduYWxIYW5kbGVyKFNpZ25hbDo6QWNjZXNzRmF1bHQsIFNpZ25hbEhhbmRs
ZXIoZXhpdCkpOworICAgICAgICAgICAgYWRkU2lnbmFsSGFuZGxlcihTaWduYWw6OkZsb2F0aW5n
UG9pbnQsIFNpZ25hbEhhbmRsZXIoZXhpdCkpOwogICAgICAgICAgICAgLy8gb25jZSB3ZSBkbyB0
aGlzIGxsZGIgd29uJ3Qgd29yayBhbnltb3JlIGJlY2F1c2Ugd2Ugd2lsbCBleGl0IG9uIGFueSBi
cmVha3BvaW50cyBpdCBzZXRzLgotICAgICAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2ln
bmFsOjpCcmVha3BvaW50LCBTaWduYWxIYW5kbGVyKGV4aXQpKTsKKyAgICAgICAgICAgIGFkZFNp
Z25hbEhhbmRsZXIoU2lnbmFsOjpCcmVha3BvaW50LCBTaWduYWxIYW5kbGVyKGV4aXQpKTsKKwor
ICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWduYWw6OklsbGVnYWxJbnN0
cnVjdGlvbik7CisgICAgICAgICAgICBhY3RpdmF0ZVNpZ25hbEhhbmRsZXJzRm9yKFNpZ25hbDo6
QWNjZXNzRmF1bHQpOworICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWdu
YWw6OkZsb2F0aW5nUG9pbnQpOworICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0Zv
cihTaWduYWw6OkJyZWFrcG9pbnQpOwogI2VuZGlmCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQpAQCAtMzIzMyw2ICszMjM5LDkgQEAgaW50IGpzY21haW4oaW50IGFyZ2MsIGNoYXIq
KiBhcmd2KQogICAgIC8vIEluaXRpYWxpemUgSlNDIGJlZm9yZSBnZXR0aW5nIFZNLgogICAgIEpT
Qzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIGluaXRpYWxpemVUaW1lb3V0SWZOZWVkZWQo
KTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgICAgIFdhc206OmVuYWJsZUZhc3RNZW1v
cnkoKTsKKyNlbmRpZgogCiAgICAgaWYgKE9wdGlvbnM6OnVzZVN1cGVyU2FtcGxlcigpKQogICAg
ICAgICBlbmFibGVTdXBlclNhbXBsZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAKaW5kZXggZGIyZWQyZmFlNDMwZmYy
ZDdiODJjYjBjZDFiOWFhODk3NGVjZjgzMy4uOWZjN2IxZjMzZTIzNGU5OWQwMTY0ZDBiNTk1NjY4
MTBmNWUzZjhhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5p
dGlhbGl6ZVRocmVhZGluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW5pdGlhbGl6ZVRocmVhZGluZy5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBpbml0aWFsaXpl
VGhyZWFkaW5nKCkKICNlbmRpZgogICAgICAgICBWTVRyYXBzOjppbml0aWFsaXplU2lnbmFscygp
OwogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLSAgICAgICAgV2FzbTo6ZW5hYmxlRmFzdE1lbW9y
eSgpOworICAgICAgICBXYXNtOjpwcmVwYXJlRmFzdE1lbW9yeSgpOwogI2VuZGlmCiAKICAgICAg
ICAgV1RGOjpjb21waWxlckZlbmNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTVRyYXBzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
VHJhcHMuY3BwCmluZGV4IGIzMTlkMzE0ZWE5ODIwZDgwY2FmNDk5YTNlMGQ5MjExYjAyMzdhN2Uu
LjQwYWE3OTdjMmFlYWRkMDJhODQ2NzI0YzEwMmQxMGNhN2VmZTE3N2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCkBAIC0xOTMsMTMgKzE5MywxNSBAQCBwdWJs
aWM6CiAgICAgU2lnbmFsU2VuZGVyKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFZNJiB2
bSkKICAgICAgICAgOiBCYXNlKGxvY2tlciwgdm0udHJhcHMoKS5tX2xvY2ssIHZtLnRyYXBzKCku
bV9jb25kaXRpb24uY29weVJlZigpKQogICAgICAgICAsIG1fdm0odm0pCi0gICAgeyB9CisgICAg
eworICAgICAgICBhY3RpdmF0ZVNpZ25hbEhhbmRsZXJzRm9yKFNpZ25hbDo6QWNjZXNzRmF1bHQp
OworICAgIH0KIAogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVTaWduYWxzKCkKICAgICB7CiAg
ICAgICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgICAgICBzdGQ6OmNhbGxfb25j
ZShvbmNlLCBbXSB7Ci0gICAgICAgICAgICBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OkFj
Y2Vzc0ZhdWx0LCBbXSAoU2lnbmFsLCBTaWdJbmZvJiwgUGxhdGZvcm1SZWdpc3RlcnMmIHJlZ2lz
dGVycykgLT4gU2lnbmFsQWN0aW9uIHsKKyAgICAgICAgICAgIGFkZFNpZ25hbEhhbmRsZXIoU2ln
bmFsOjpBY2Nlc3NGYXVsdCwgW10gKFNpZ25hbCwgU2lnSW5mbyYsIFBsYXRmb3JtUmVnaXN0ZXJz
JiByZWdpc3RlcnMpIC0+IFNpZ25hbEFjdGlvbiB7CiAgICAgICAgICAgICAgICAgYXV0byBzaWdu
YWxDb250ZXh0ID0gU2lnbmFsQ29udGV4dDo6dHJ5Q3JlYXRlKHJlZ2lzdGVycyk7CiAgICAgICAg
ICAgICAgICAgaWYgKCFzaWduYWxDb250ZXh0KQogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
U2lnbmFsQWN0aW9uOjpOb3RIYW5kbGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwCmluZGV4IGNjMmZkYzA2ZmE5NzE2ZTY3YTUw
NzhkYmMyNWVkMjZkMDM2YWU3ZmEuLjA2NDZiZjI5MmNlN2I1M2VhZmQ1NTg4YTlmODhlZjhkMGUy
ODliYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9TaWdpbGxDcmFz
aEFuYWx5emVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jh
c2hBbmFseXplci5jcHAKQEAgLTE1Niw3ICsxNTYsNyBAQCBwdWJsaWM6CiBzdGF0aWMgdm9pZCBp
bnN0YWxsQ3Jhc2hIYW5kbGVyKCkKIHsKICNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCi0g
ICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpJbGxlZ2FsSW5zdHJ1Y3Rpb24sIFtdIChT
aWduYWwsIFNpZ0luZm8mLCBQbGF0Zm9ybVJlZ2lzdGVycyYgcmVnaXN0ZXJzKSB7CisgICAgYWRk
U2lnbmFsSGFuZGxlcihTaWduYWw6OklsbGVnYWxJbnN0cnVjdGlvbiwgW10gKFNpZ25hbCwgU2ln
SW5mbyYsIFBsYXRmb3JtUmVnaXN0ZXJzJiByZWdpc3RlcnMpIHsKICAgICAgICAgYXV0byBzaWdu
YWxDb250ZXh0ID0gU2lnbmFsQ29udGV4dDo6dHJ5Q3JlYXRlKHJlZ2lzdGVycyk7CiAgICAgICAg
IGlmICghc2lnbmFsQ29udGV4dCkKICAgICAgICAgICAgIHJldHVybiBTaWduYWxBY3Rpb246Ok5v
dEhhbmRsZWQ7CkBAIC0xNjksNiArMTY5LDcgQEAgc3RhdGljIHZvaWQgaW5zdGFsbENyYXNoSGFu
ZGxlcigpCiAgICAgICAgIGFuYWx5emVyLmFuYWx5emUoKnNpZ25hbENvbnRleHQpOwogICAgICAg
ICByZXR1cm4gU2lnbmFsQWN0aW9uOjpOb3RIYW5kbGVkOwogICAgIH0pOworICAgIGFjdGl2YXRl
U2lnbmFsSGFuZGxlcnNGb3IoU2lnbmFsOjpJbGxlZ2FsSW5zdHJ1Y3Rpb24pOwogI2VuZGlmCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GYXVsdFNpZ25h
bEhhbmRsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFs
SGFuZGxlci5jcHAKaW5kZXggZDdjNDQwYjEzOGI2NDRhY2VlOTg3NDViNTQ2NzNjODAyNTVkOTQy
Yi4uYmU4NjRjYTY1ODhmNDk2NTFhZmFkMWNkNzI2ZDQyMDVkMmYwZjI3YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAK
QEAgLTExMywxMiArMTEzLDI4IEBAIHZvaWQgZW5hYmxlRmFzdE1lbW9yeSgpCiAgICAgICAgIGlm
ICghT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5KCkpCiAgICAgICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpBY2Nlc3NGYXVsdCwg
W10gKFNpZ25hbCBzaWduYWwsIFNpZ0luZm8mIHNpZ0luZm8sIFBsYXRmb3JtUmVnaXN0ZXJzJiB1
Y29udGV4dCkgewotICAgICAgICAgICAgcmV0dXJuIHRyYXBIYW5kbGVyKHNpZ25hbCwgc2lnSW5m
bywgdWNvbnRleHQpOwotICAgICAgICB9KTsKKyAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVy
c0ZvcihTaWduYWw6OkFjY2Vzc0ZhdWx0KTsKIAogICAgICAgICBmYXN0SGFuZGxlckluc3RhbGxl
ZCA9IHRydWU7CiAgICAgfSk7CisjZW5kaWYKK30KKwordm9pZCBwcmVwYXJlRmFzdE1lbW9yeSgp
Cit7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0ZBU1RfTUVNT1JZKQorICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBvbmNlOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKKyAgICAgICAg
aWYgKCFXYXNtOjppc1N1cHBvcnRlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGlmICghT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5KCkpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgYWRkU2lnbmFsSGFuZGxlcihTaWduYWw6OkFjY2Vzc0ZhdWx0LCBb
XSAoU2lnbmFsIHNpZ25hbCwgU2lnSW5mbyYgc2lnSW5mbywgUGxhdGZvcm1SZWdpc3RlcnMmIHVj
b250ZXh0KSB7CisgICAgICAgICAgICByZXR1cm4gdHJhcEhhbmRsZXIoc2lnbmFsLCBzaWdJbmZv
LCB1Y29udGV4dCk7CisgICAgICAgIH0pOworICAgIH0pOwogI2VuZGlmIC8vIEVOQUJMRShXRUJB
U1NFTUJMWV9GQVNUX01FTU9SWSkKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuaAppbmRleCA3ODNiNmE2YTUyYjExMWVi
MGE2ZGVhMjUxNzMwOGU2YWEzMmU5ZDhkLi4xNzM1MWJjODc4ZTllNjkyMWE4N2RlMjJhY2EwNTNk
Y2E2NzllMDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRmF1
bHRTaWduYWxIYW5kbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZh
dWx0U2lnbmFsSGFuZGxlci5oCkBAIC0zMiw2ICszMiw3IEBAIG5hbWVzcGFjZSBKU0MgewogbmFt
ZXNwYWNlIFdhc20gewogCiBib29sIGZhc3RNZW1vcnlFbmFibGVkKCk7CitKU19FWFBPUlRfUFJJ
VkFURSB2b2lkIHByZXBhcmVGYXN0TWVtb3J5KCk7CiBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGVu
YWJsZUZhc3RNZW1vcnkoKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90
aHJlYWRzL1NpZ25hbHMuY3BwCmluZGV4IDhlMTE1MGI3YWRmYWQwZmM4ZjI3NzVmMjQ1MGU1YjYx
MjhmMWMyMGUuLmJhOWRlNWRlODQyZmZiNzEyMjU0NWFlMzk1NTA5MDBmZjJkNTE1YzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvdGhyZWFkcy9TaWduYWxzLmNwcApAQCAtMjY1LDExICsyNjUsOCBAQCB2b2lkIHJlZ2lz
dGVyVGhyZWFkRm9yTWFjaEV4Y2VwdGlvbkhhbmRsaW5nKFRocmVhZCYgdGhyZWFkKQogICAgICAg
ICBzZXRFeGNlcHRpb25Qb3J0cyhsb2NrZXIsIHRocmVhZCk7CiB9CiAKLSNlbHNlCi1zdGF0aWMg
Y29uc3RleHByIGJvb2wgdXNlTWFjaCA9IGZhbHNlOwogI2VuZGlmIC8vIEhBVkUoTUFDSF9FWENF
UFRJT05TKQogCi0KIGlubGluZSBzaXplX3Qgb2Zmc2V0Rm9yU3lzdGVtU2lnbmFsKGludCBzaWcp
CiB7CiAgICAgU2lnbmFsIHNpZ25hbCA9IGZyb21TeXN0ZW1TaWduYWwoc2lnKTsKQEAgLTI3OCwy
NSArMjc1LDMwIEBAIGlubGluZSBzaXplX3Qgb2Zmc2V0Rm9yU3lzdGVtU2lnbmFsKGludCBzaWcp
CiAKIHN0YXRpYyB2b2lkIGpzY1NpZ25hbEhhbmRsZXIoaW50LCBzaWdpbmZvX3QqLCB2b2lkKik7
CiAKLXZvaWQgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsIHNpZ25hbCwgU2lnbmFsSGFuZGxl
ciYmIGhhbmRsZXIpCit2b2lkIGFkZFNpZ25hbEhhbmRsZXIoU2lnbmFsIHNpZ25hbCwgU2lnbmFs
SGFuZGxlciYmIGhhbmRsZXIpCiB7CiAgICAgQ29uZmlnOjpBc3NlcnROb3RGcm96ZW5TY29wZSBh
c3NlcnRTY29wZTsKICAgICBTaWduYWxIYW5kbGVycyYgaGFuZGxlcnMgPSBnX3d0ZkNvbmZpZy5z
aWduYWxIYW5kbGVyczsKICAgICBBU1NFUlQoc2lnbmFsIDwgU2lnbmFsOjpVbmtub3duKTsKLSNp
ZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKICAgICBBU1NFUlQoIWhhbmRsZXJzLnVzZU1hY2ggfHwg
c2lnbmFsICE9IFNpZ25hbDo6VXNyKTsKIAorI2lmIEhBVkUoTUFDSF9FWENFUFRJT05TKQogICAg
IGlmIChoYW5kbGVycy51c2VNYWNoKQogICAgICAgICBzdGFydE1hY2hFeGNlcHRpb25IYW5kbGVy
VGhyZWFkKCk7CiAjZW5kaWYKIAorICAgIGhhbmRsZXJzLmFkZChzaWduYWwsIFdURk1vdmUoaGFu
ZGxlcikpOworfQorCit2b2lkIGFjdGl2YXRlU2lnbmFsSGFuZGxlcnNGb3IoU2lnbmFsIHNpZ25h
bCkKK3sKKyAgICBTaWduYWxIYW5kbGVycyYgaGFuZGxlcnMgPSBnX3d0ZkNvbmZpZy5zaWduYWxI
YW5kbGVyczsKKyAgICBBU1NFUlQoc2lnbmFsIDwgU2lnbmFsOjpVbmtub3duKTsKKyAgICBBU1NF
UlQoIWhhbmRsZXJzLnVzZU1hY2ggfHwgc2lnbmFsICE9IFNpZ25hbDo6VXNyKTsKKwogICAgIHN0
YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplT25jZUZsYWdzW3N0YXRpY19jYXN0PHNpemVf
dD4oU2lnbmFsOjpOdW1iZXJPZlNpZ25hbHMpXTsKICAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFs
aXplT25jZUZsYWdzW3N0YXRpY19jYXN0PHNpemVfdD4oc2lnbmFsKV0sIFsmXSB7Ci0gICAgICAg
IENvbmZpZzo6QXNzZXJ0Tm90RnJvemVuU2NvcGUgYXNzZXJ0U2NvcGU7Ci0jaWYgSEFWRShNQUNI
X0VYQ0VQVElPTlMpCi0gICAgICAgIGJvb2wgdXNlTWFjaCA9IGhhbmRsZXJzLnVzZU1hY2g7Ci0j
ZW5kaWYKLSAgICAgICAgaWYgKCF1c2VNYWNoKSB7CisgICAgICAgIGlmICghaGFuZGxlcnMudXNl
TWFjaCkgewogICAgICAgICAgICAgc3RydWN0IHNpZ2FjdGlvbiBhY3Rpb247CiAgICAgICAgICAg
ICBhY3Rpb24uc2Ffc2lnYWN0aW9uID0ganNjU2lnbmFsSGFuZGxlcjsKICAgICAgICAgICAgIGF1
dG8gcmVzdWx0ID0gc2lnZmlsbHNldCgmYWN0aW9uLnNhX21hc2spOwpAQCAtMzEzLDggKzMxNSw2
IEBAIHZvaWQgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsIHNpZ25hbCwgU2lnbmFsSGFuZGxl
ciYmIGhhbmRsZXIpCiAgICAgICAgIH0KICAgICB9KTsKIAotICAgIGhhbmRsZXJzLmFkZChzaWdu
YWwsIFdURk1vdmUoaGFuZGxlcikpOwotCiAjaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCiAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhhY3RpdmVUaHJlYWRzKCkuZ2V0TG9jaygpKTsKICAgICBp
ZiAoaGFuZGxlcnMudXNlTWFjaCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGhyZWFk
cy9TaWduYWxzLmggYi9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL1NpZ25hbHMuaAppbmRleCAxNmVh
ZTk3YmY4NWRiOTU0NWI4NWE5ZWEyNGZkMjBkNzBiYWFlMGQwLi44ZTNlNmMxYWQ4MzhhOTMxY2U1
N2I3OWZjNDdmZjEwYWRhMjUzZGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRz
L1NpZ25hbHMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL1NpZ25hbHMuaApAQCAtMTEx
LDE5ICsxMTEsMjMgQEAgc3RydWN0IFNpZ25hbEhhbmRsZXJzIHsKICAgICBtYWNoX3BvcnRfdCBl
eGNlcHRpb25Qb3J0OwogICAgIGV4Y2VwdGlvbl9tYXNrX3QgYWN0aXZlRXhjZXB0aW9uczsKICAg
ICBib29sIHVzZU1hY2g7CisjZWxzZQorICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB1c2VNYWNo
ID0gZmFsc2U7CiAjZW5kaWYKICAgICB1aW50OF90IG51bWJlck9mSGFuZGxlcnNbbnVtYmVyT2ZT
aWduYWxzXTsKICAgICBTaWduYWxIYW5kbGVyTWVtb3J5IGhhbmRsZXJzW251bWJlck9mU2lnbmFs
c11bbWF4TnVtYmVyT2ZIYW5kbGVyc107CiAgICAgc3RydWN0IHNpZ2FjdGlvbiBvbGRBY3Rpb25z
W251bWJlck9mU2lnbmFsc107CiB9OwogCi0vLyBDYWxsIHRoaXMgbWV0aG9kIHdoZW5ldmVyIHlv
dSB3YW50IHRvIGluc3RhbGwgYSBzaWduYWwgaGFuZGxlci4gVGhpcyBmdW5jdGlvbiBuZWVkcyB0
byBiZSBjYWxsZWQKKy8vIENhbGwgdGhpcyBtZXRob2Qgd2hlbmV2ZXIgeW91IHdhbnQgdG8gYWRk
IGEgc2lnbmFsIGhhbmRsZXIuIFRoaXMgZnVuY3Rpb24gbmVlZHMgdG8gYmUgY2FsbGVkCiAvLyBi
ZWZvcmUgZ193dGZDb25maWcgaXMgZnJvemVuLiBBZnRlciB0aGUgZ193dGZDb25maWcgaXMgZnJv
emVuLCBubyBhZGRpdGlvbmFsIHNpZ25hbCBoYW5kbGVycyBtYXkKIC8vIGJlIGluc3RhbGxlZC4g
QW55IGF0dGVtcHQgdG8gZG8gc28gd2lsbCB0cmlnZ2VyIGEgY3Jhc2guCiAvLyBOb3RlOiBZb3Vy
IHNpZ25hbCBoYW5kbGVyIHdpbGwgYmUgY2FsbGVkIGV2ZXJ5IHRpbWUgdGhlIGhhbmRsZXIgZm9y
IHRoZSBkZXNpcmVkIHNpZ25hbCBpcyBjYWxsZWQuCiAvLyBUaHVzIGl0IGlzIHlvdXIgcmVzcG9u
c2liaWxpdHkgdG8gZGlzY2VybiBpZiB0aGUgc2lnbmFsIGZpcmVkIHdhcyB5b3Vycy4KLS8vIFRo
aXMgZnVuY3Rpb24gaXMgYSBvbmUgd2F5IHN0cmVldCBpLmUuIG9uY2UgaW5zdGFsbGVkLCBhIHNp
Z25hbCBoYW5kbGVyIGNhbm5vdCBiZSB1bmluc3RhbGxlZC4KLVdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIGluc3RhbGxTaWduYWxIYW5kbGVyKFNpZ25hbCwgU2lnbmFsSGFuZGxlciYmKTsKKy8vIFRo
ZXNlIGZ1bmN0aW9ucyBhcmUgYSBvbmUgd2F5IHN0cmVldCBpLmUuIG9uY2UgaW5zdGFsbGVkLCBh
IHNpZ25hbCBoYW5kbGVyIGNhbm5vdCBiZSB1bmluc3RhbGxlZAorLy8gYW5kIG9uY2UgY29tbWl0
ZWQgdGhleSBjYW4ndCBiZSB0dXJuZWQgb2ZmLgorV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYWRk
U2lnbmFsSGFuZGxlcihTaWduYWwsIFNpZ25hbEhhbmRsZXImJik7CitXVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBhY3RpdmF0ZVNpZ25hbEhhbmRsZXJzRm9yKFNpZ25hbCk7CiAKIAogI2lmIEhBVkUo
TUFDSF9FWENFUFRJT05TKQpAQCAtMTQ3LDYgKzE1MSw3IEBAIHVzaW5nIFdURjo6dG9TeXN0ZW1T
aWduYWw7CiB1c2luZyBXVEY6OmZyb21TeXN0ZW1TaWduYWw7CiB1c2luZyBXVEY6OlNpZ25hbEFj
dGlvbjsKIHVzaW5nIFdURjo6U2lnbmFsSGFuZGxlcjsKLXVzaW5nIFdURjo6aW5zdGFsbFNpZ25h
bEhhbmRsZXI7Cit1c2luZyBXVEY6OmFkZFNpZ25hbEhhbmRsZXI7Cit1c2luZyBXVEY6OmFjdGl2
YXRlU2lnbmFsSGFuZGxlcnNGb3I7CiAKICNlbmRpZiAvLyBVU0UoUFRIUkVBRFMpICYmIEhBVkUo
TUFDSElORV9DT05URVhUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDlhYWIxOWZkMTY3MzBhMTk1OGIwMDU5OGNkNmI0NGNiMGRiYTliNmUuLjFiY2M4NDEzMWVj
NjQ4ZWFiMWZiYjM1MWUzYTg1ODczNTE2Nzc1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKQEAgLTgzLDYgKzgzLDcgQEAKICNpbmNsdWRlICJXZWJzaXRlRGF0YVR5
cGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9NZW1vcnlTdGF0aXN0aWNzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
V2FzbUZhdWx0U2lnbmFsSGFuZGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQVhPYmplY3RDYWNo
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+CkBAIC00NjYsNiArNDY3LDEw
IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgU2VydmljZVdvcmtlclByb3ZpZGVyOjpz
ZXRTaGFyZWRQcm92aWRlcihXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpKTsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgIEpTQzo6V2FzbTo6ZW5hYmxl
RmFzdE1lbW9yeSgpOworI2VuZGlmCisKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBXZWJSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6c2V0U2hvdWxkTG9nVXNlckludGVyYWN0aW9uKHBhcmFtZXRlcnMuc2hvdWxkTG9nVXNlcklu
dGVyYWN0aW9uKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGJhYWQ5YzUzNjU3ZmI2MGJjYWI2NTY1M2E5NjcwZThkYWI1NThkNzEu
Ljg3MTkxOWM5OTgyZmM2ZDY1ZDNiZmRjYTRkYjJmMjM4NjYxZWJkYWEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
MC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBTaWduYWwgaGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2UgaW5zdGFsbGF0aW9uLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMTYwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TaWduYWxzLmNwcDoKKyAgICAgICAgKFRFU1QpOgorCiAyMDIwLTA2
LTEyICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFRl
c3RzIGV4cGVjdGluZyBhIGNyYXNoIHNob3VsZCB1c2UgYSBzaWduYWwgaGFuZGxlciBpbiB0aGUg
SlNDIENMSSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TaWduYWxzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1NpZ25hbHMuY3Bw
CmluZGV4IDY4MGM5ZjU5NTAxNGQ2YmJmODY3MzczZjIzZWViMDFlMmZlOTIwMTAuLjg4MjNiNGU0
ZGZlOGYyNWEyYjA5ODNmYTdhNzRjZDBmZWE2ZjJlOGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1NpZ25hbHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1NpZ25hbHMuY3BwCkBAIC00MCwxMSArNDAsMTIgQEAgcHVibGljOgogVEVTVChT
aWduYWxzLCBTaWduYWxzV29ya09uRXhpdCkKIHsKICAgICBzdGF0aWMgYm9vbCBoYW5kbGVyUmFu
ID0gZmFsc2U7Ci0gICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpVc3IsIFtdIChTaWdu
YWwsIFNpZ0luZm8mLCBQbGF0Zm9ybVJlZ2lzdGVycyYpIC0+IFNpZ25hbEFjdGlvbiB7CisgICAg
YWRkU2lnbmFsSGFuZGxlcihTaWduYWw6OlVzciwgW10gKFNpZ25hbCwgU2lnSW5mbyYsIFBsYXRm
b3JtUmVnaXN0ZXJzJikgLT4gU2lnbmFsQWN0aW9uIHsKICAgICAgICAgZGF0YUxvZ0xuKCJoZXJl
Iik7CiAgICAgICAgIGhhbmRsZXJSYW4gPSB0cnVlOwogICAgICAgICByZXR1cm4gU2lnbmFsQWN0
aW9uOjpIYW5kbGVkOwogICAgIH0pOworICAgIGFjdGl2YXRlU2lnbmFsSGFuZGxlcnNGb3IoU2ln
bmFsOjpVc3IpOwogCiAgICAgQXRvbWljPGJvb2w+IHJlY2VpdmVyU2hvdWxkS2VlcFJ1bm5pbmco
dHJ1ZSk7CiAgICAgUmVmPFRocmVhZD4gcmVjZWl2ZXJUaHJlYWQgPSAoVGhyZWFkOjpjcmVhdGUo
IlRocmVhZE1lc3NhZ2UgcmVjZWl2ZXIiLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401821</attachid>
            <date>2020-06-12 19:43:27 -0700</date>
            <delta_ts>2020-06-12 19:45:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213160-20200612194326.patch</filename>
            <type>text/plain</type>
            <size>17476</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyOTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
N2M1YTM5MmY1ZjIyZmQ0YTI4MDdhNWYzMzZiZDQ4NzU4ZTAyMWQyLi42MWRhZDM4ZjFhMGNhMjM2
MTRmZWVkODFmMjEyNDdiZTFmYzkwODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTaWduYWwgaGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2Ug
aW5zdGFsbGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjEzMTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoQ29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKToK
KyAgICAgICAgKGpzY21haW4pOgorICAgICAgICAqIHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5jcHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHJ1
bnRpbWUvVk1UcmFwcy5jcHA6CisgICAgICAgICogdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5j
cHA6CisgICAgICAgIChKU0M6Omluc3RhbGxDcmFzaEhhbmRsZXIpOgorICAgICAgICAqIHdhc20v
V2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OmVuYWJsZUZh
c3RNZW1vcnkpOgorICAgICAgICAoSlNDOjpXYXNtOjpwcmVwYXJlRmFzdE1lbW9yeSk6CisgICAg
ICAgICogd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmg6CisKIDIwMjAtMDYtMTIgIEtlaXRo
IE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgVGVzdHMgZXhwZWN0
aW5nIGEgY3Jhc2ggc2hvdWxkIHVzZSBhIHNpZ25hbCBoYW5kbGVyIGluIHRoZSBKU0MgQ0xJIHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYzAxMjY3NjgyZWZlZDNmZGRhY2E1ZWJiNTEzNGQxNTVjNDFhM2M3NC4uNzU3
OTY1N2Y3Y2VjOTk1ODJmNzM3MDBmMGVmMmFiZDNlZDdiNDNjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBA
QAorMjAyMC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBTaWduYWwgaGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2UgaW5zdGFsbGF0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEz
MTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTExE
QiBkb2VzIG5vdCBsaWtlIGl0IHdoZW4gd2Ugc2luZ2xlIHN0ZXAgd2hpbGUgdGhlcmUgYXJlIG1h
Y2ggZXhjZXB0aW9uCisgICAgICAgIGhhbmRsZXJzIGluc3RhbGxlZCBiZWNhdXNlIExMREIgc3Vz
cGVuZHMgYWxsIHRoZSBub24tYWN0aXZlIHRocmVhZHMuCisgICAgICAgIFdpdGggTWFjaCBleGNl
cHRpb24gaGFuZGxlcnMgaW5zdGFsbGVkIHRoZSBPUyB3aWxsIHNlbmQgYSBtYWNoIG1lc3NhZ2UK
KyAgICAgICAgdG8gb3VyIGV4Y2VwdGlvbiBoYW5kbGVyIHBvcnQsIHdoaWNoIGlzIGRpZmZlcmVu
dCB0aGFuIHRoZSBhY3RpdmUgdGhyZWFkLgorICAgICAgICBXaGVuIHRoaXMgaGFwcGVucyB0aGUg
Y29tYmluYXRpb24gb2YgTExEQiBhbmQgdGhlIHByb2Nlc3MgSlNDIGlzIGluIGVmZmVjdGl2ZWx5
CisgICAgICAgIGRlYWRsb2NrLgorCisgICAgICAgIFVuZGVyIG91ciBuZXcgYXBwcm9hY2ggd2Ug
Z28gYmFjayB0byBvbmx5IHRlbGxpbmcgdGhlIE9TIHdlIGNhcmUgYWJvdXQKKyAgICAgICAgdGhl
c2UgZXhjZXB0aW9ucyBsYXRlIGJ1dCBsb2NrIGRvd24gdGhlIGZ1bmN0aW9uIHBvaW50ZXJzIGVh
cmx5LiBUaGlzIHdheQorICAgICAgICBwcm9jZXNzZXMgdGhhdCBiZW5lZml0IGZyb20gb3VyIGV4
Y2VwdGlvbiBoYW5kbGVyIGNvZGUgYXJlIGVhc2llciB0byBkZWJ1Zy4KKworICAgICAgICAqIHd0
Zi90aHJlYWRzL1NpZ25hbHMuY3BwOgorICAgICAgICAoV1RGOjphZGRTaWduYWxIYW5kbGVyKToK
KyAgICAgICAgKFdURjo6YWN0aXZhdGVTaWduYWxIYW5kbGVyc0Zvcik6CisgICAgICAgIChXVEY6
Omluc3RhbGxTaWduYWxIYW5kbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvdGhyZWFkcy9T
aWduYWxzLmg6CisKIDIwMjAtMDYtMTIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgVGVzdHMgZXhwZWN0aW5nIGEgY3Jhc2ggc2hvdWxkIHVzZSBhIHNp
Z25hbCBoYW5kbGVyIGluIHRoZSBKU0MgQ0xJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzgyMzVjYjMz
NjMwMzkxMGViOWY0YjM3Nzc4ODNhMWRiMTliMzU5ZC4uMWNiZTgxZjY2OGE0NGRlZDBmMDQ5ZTVj
MGRmODk2YWQ4ODliOGFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNi0xMiAg
S2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBTaWduYWwg
aGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2UgaW5zdGFsbGF0aW9uLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMTYwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHV0IGJhY2sgb2xkIFdBU00g
ZmFzdCBtZW1vcnkgaW5zdGFsbGF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nl
c3MpOgorCiAyMDIwLTA2LTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgTWFrZSBBUEkgdGVzdHMgdG9sZXJhbnQgb2Ygb3VyIHJlbGF0aXZl
bHkgbmV3IHVzZSBvZiBXZWJQYWdlUHJveHk6OnByZWNvbm5lY3RUbwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cAppbmRleCA2ZmM1ZDRkMWY5Nzk4YWZhNmJkYWIyN2MyMjhmMGU4M2FjZWY1MjA2Li5iN2IwMjEz
MGI3OTYyYzRlOGUwNzQ5MjA4ZDIzYzg2MTRjY2FlYmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApA
QCAtNjYsNiArNjYsNyBAQAogI2luY2x1ZGUgIlR5cGVkQXJyYXlJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiVk1JbnNwZWN0b3IuaCIKICNpbmNsdWRlICJXYXNtQ2FwYWJpbGl0aWVzLmgiCisjaW5jbHVk
ZSAiV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5oIgogI2luY2x1ZGUgIldhc21NZW1vcnkuaCIKICNp
bmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtMjk4NiwxMSArMjk4Nywx
NiBAQCB2b2lkIENvbW1hbmRMaW5lOjpwYXJzZUFyZ3VtZW50cyhpbnQgYXJnYywgY2hhcioqIGFy
Z3YpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFNpZ25hbEFjdGlvbjo6Rm9yY2VEZWZhdWx0Owog
ICAgICAgICAgICAgfTsKIAotICAgICAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFs
OjpJbGxlZ2FsSW5zdHJ1Y3Rpb24sIFNpZ25hbEhhbmRsZXIoZXhpdCkpOwotICAgICAgICAgICAg
aW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpBY2Nlc3NGYXVsdCwgU2lnbmFsSGFuZGxlcihl
eGl0KSk7Ci0gICAgICAgICAgICBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OkZsb2F0aW5n
UG9pbnQsIFNpZ25hbEhhbmRsZXIoZXhpdCkpOworICAgICAgICAgICAgYWRkU2lnbmFsSGFuZGxl
cihTaWduYWw6OklsbGVnYWxJbnN0cnVjdGlvbiwgU2lnbmFsSGFuZGxlcihleGl0KSk7CisgICAg
ICAgICAgICBhZGRTaWduYWxIYW5kbGVyKFNpZ25hbDo6QWNjZXNzRmF1bHQsIFNpZ25hbEhhbmRs
ZXIoZXhpdCkpOworICAgICAgICAgICAgYWRkU2lnbmFsSGFuZGxlcihTaWduYWw6OkZsb2F0aW5n
UG9pbnQsIFNpZ25hbEhhbmRsZXIoZXhpdCkpOwogICAgICAgICAgICAgLy8gb25jZSB3ZSBkbyB0
aGlzIGxsZGIgd29uJ3Qgd29yayBhbnltb3JlIGJlY2F1c2Ugd2Ugd2lsbCBleGl0IG9uIGFueSBi
cmVha3BvaW50cyBpdCBzZXRzLgotICAgICAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2ln
bmFsOjpCcmVha3BvaW50LCBTaWduYWxIYW5kbGVyKGV4aXQpKTsKKyAgICAgICAgICAgIGFkZFNp
Z25hbEhhbmRsZXIoU2lnbmFsOjpCcmVha3BvaW50LCBTaWduYWxIYW5kbGVyKGV4aXQpKTsKKwor
ICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWduYWw6OklsbGVnYWxJbnN0
cnVjdGlvbik7CisgICAgICAgICAgICBhY3RpdmF0ZVNpZ25hbEhhbmRsZXJzRm9yKFNpZ25hbDo6
QWNjZXNzRmF1bHQpOworICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWdu
YWw6OkZsb2F0aW5nUG9pbnQpOworICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0Zv
cihTaWduYWw6OkJyZWFrcG9pbnQpOwogI2VuZGlmCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQpAQCAtMzEyMiw2ICszMTI4LDEwIEBAIGludCBydW5KU0MoY29uc3QgQ29tbWFuZExp
bmUmIG9wdGlvbnMsIGJvb2wgaXNXb3JrZXIsIGNvbnN0IEZ1bmMmIGZ1bmMpCiAgICAgV29ya2Vy
IHdvcmtlcihXb3JrZXJzOjpzaW5nbGV0b24oKSk7CiAgICAgCiAgICAgVk0mIHZtID0gVk06OmNy
ZWF0ZShMYXJnZUhlYXApLmxlYWtSZWYoKTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAg
V2FzbTo6ZW5hYmxlRmFzdE1lbW9yeSgpOworI2VuZGlmCisKICAgICBpbnQgcmVzdWx0OwogICAg
IGJvb2wgc3VjY2VzcyA9IHRydWU7CiAgICAgR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBu
dWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5pdGlh
bGl6ZVRocmVhZGluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFs
aXplVGhyZWFkaW5nLmNwcAppbmRleCBkYjJlZDJmYWU0MzBmZjJkN2I4MmNiMGNkMWI5YWE4OTc0
ZWNmODMzLi45ZmM3YjFmMzNlMjM0ZTk5ZDAxNjRkMGI1OTU2NjgxMGY1ZTNmOGEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5n
LmNwcApAQCAtOTUsNyArOTUsNyBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogI2VuZGlm
CiAgICAgICAgIFZNVHJhcHM6OmluaXRpYWxpemVTaWduYWxzKCk7CiAjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKQotICAgICAgICBXYXNtOjplbmFibGVGYXN0TWVtb3J5KCk7CisgICAgICAgIFdhc206
OnByZXBhcmVGYXN0TWVtb3J5KCk7CiAjZW5kaWYKIAogICAgICAgICBXVEY6OmNvbXBpbGVyRmVu
Y2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKaW5kZXggYjMx
OWQzMTRlYTk4MjBkODBjYWY0OTlhM2UwZDkyMTFiMDIzN2E3ZS4uNDBhYTc5N2MyYWVhZGQwMmE4
NDY3MjRjMTAyZDEwY2E3ZWZlMTc3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk1UcmFwcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk1UcmFwcy5jcHAKQEAgLTE5MywxMyArMTkzLDE1IEBAIHB1YmxpYzoKICAgICBTaWduYWxTZW5k
ZXIoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgVk0mIHZtKQogICAgICAgICA6IEJhc2Uo
bG9ja2VyLCB2bS50cmFwcygpLm1fbG9jaywgdm0udHJhcHMoKS5tX2NvbmRpdGlvbi5jb3B5UmVm
KCkpCiAgICAgICAgICwgbV92bSh2bSkKLSAgICB7IH0KKyAgICB7CisgICAgICAgIGFjdGl2YXRl
U2lnbmFsSGFuZGxlcnNGb3IoU2lnbmFsOjpBY2Nlc3NGYXVsdCk7CisgICAgfQogCiAgICAgc3Rh
dGljIHZvaWQgaW5pdGlhbGl6ZVNpZ25hbHMoKQogICAgIHsKICAgICAgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIG9uY2U7CiAgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKLSAgICAg
ICAgICAgIGluc3RhbGxTaWduYWxIYW5kbGVyKFNpZ25hbDo6QWNjZXNzRmF1bHQsIFtdIChTaWdu
YWwsIFNpZ0luZm8mLCBQbGF0Zm9ybVJlZ2lzdGVycyYgcmVnaXN0ZXJzKSAtPiBTaWduYWxBY3Rp
b24geworICAgICAgICAgICAgYWRkU2lnbmFsSGFuZGxlcihTaWduYWw6OkFjY2Vzc0ZhdWx0LCBb
XSAoU2lnbmFsLCBTaWdJbmZvJiwgUGxhdGZvcm1SZWdpc3RlcnMmIHJlZ2lzdGVycykgLT4gU2ln
bmFsQWN0aW9uIHsKICAgICAgICAgICAgICAgICBhdXRvIHNpZ25hbENvbnRleHQgPSBTaWduYWxD
b250ZXh0Ojp0cnlDcmVhdGUocmVnaXN0ZXJzKTsKICAgICAgICAgICAgICAgICBpZiAoIXNpZ25h
bENvbnRleHQpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTaWduYWxBY3Rpb246Ok5vdEhh
bmRsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jh
c2hBbmFseXplci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jhc2hB
bmFseXplci5jcHAKaW5kZXggY2MyZmRjMDZmYTk3MTZlNjdhNTA3OGRiYzI1ZWQyNmQwMzZhZTdm
YS4uMDY0NmJmMjkyY2U3YjUzZWFmZDU1ODhhOWY4OGVmOGQwZTI4OWJjNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9TaWdpbGxDcmFzaEFuYWx5emVyLmNwcApAQCAt
MTU2LDcgKzE1Niw3IEBAIHB1YmxpYzoKIHN0YXRpYyB2b2lkIGluc3RhbGxDcmFzaEhhbmRsZXIo
KQogewogI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02NCkKLSAgICBpbnN0YWxsU2lnbmFsSGFu
ZGxlcihTaWduYWw6OklsbGVnYWxJbnN0cnVjdGlvbiwgW10gKFNpZ25hbCwgU2lnSW5mbyYsIFBs
YXRmb3JtUmVnaXN0ZXJzJiByZWdpc3RlcnMpIHsKKyAgICBhZGRTaWduYWxIYW5kbGVyKFNpZ25h
bDo6SWxsZWdhbEluc3RydWN0aW9uLCBbXSAoU2lnbmFsLCBTaWdJbmZvJiwgUGxhdGZvcm1SZWdp
c3RlcnMmIHJlZ2lzdGVycykgewogICAgICAgICBhdXRvIHNpZ25hbENvbnRleHQgPSBTaWduYWxD
b250ZXh0Ojp0cnlDcmVhdGUocmVnaXN0ZXJzKTsKICAgICAgICAgaWYgKCFzaWduYWxDb250ZXh0
KQogICAgICAgICAgICAgcmV0dXJuIFNpZ25hbEFjdGlvbjo6Tm90SGFuZGxlZDsKQEAgLTE2OSw2
ICsxNjksNyBAQCBzdGF0aWMgdm9pZCBpbnN0YWxsQ3Jhc2hIYW5kbGVyKCkKICAgICAgICAgYW5h
bHl6ZXIuYW5hbHl6ZSgqc2lnbmFsQ29udGV4dCk7CiAgICAgICAgIHJldHVybiBTaWduYWxBY3Rp
b246Ok5vdEhhbmRsZWQ7CiAgICAgfSk7CisgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihT
aWduYWw6OklsbGVnYWxJbnN0cnVjdGlvbik7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcAppbmRleCBk
N2M0NDBiMTM4YjY0NGFjZWU5ODc0NWI1NDY3M2M4MDI1NWQ5NDJiLi5iZTg2NGNhNjU4OGY0OTY1
MWFmYWQxY2Q3MjZkNDIwNWQyZjBmMjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcApAQCAtMTEzLDEyICsxMTMsMjgg
QEAgdm9pZCBlbmFibGVGYXN0TWVtb3J5KCkKICAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VXZWJB
c3NlbWJseUZhc3RNZW1vcnkoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpbnN0
YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OkFjY2Vzc0ZhdWx0LCBbXSAoU2lnbmFsIHNpZ25hbCwg
U2lnSW5mbyYgc2lnSW5mbywgUGxhdGZvcm1SZWdpc3RlcnMmIHVjb250ZXh0KSB7Ci0gICAgICAg
ICAgICByZXR1cm4gdHJhcEhhbmRsZXIoc2lnbmFsLCBzaWdJbmZvLCB1Y29udGV4dCk7Ci0gICAg
ICAgIH0pOworICAgICAgICBhY3RpdmF0ZVNpZ25hbEhhbmRsZXJzRm9yKFNpZ25hbDo6QWNjZXNz
RmF1bHQpOwogCiAgICAgICAgIGZhc3RIYW5kbGVySW5zdGFsbGVkID0gdHJ1ZTsKICAgICB9KTsK
KyNlbmRpZgorfQorCit2b2lkIHByZXBhcmVGYXN0TWVtb3J5KCkKK3sKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFlfRkFTVF9NRU1PUlkpCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7Cisg
ICAgc3RkOjpjYWxsX29uY2Uob25jZSwgW10geworICAgICAgICBpZiAoIVdhc206OmlzU3VwcG9y
dGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VX
ZWJBc3NlbWJseUZhc3RNZW1vcnkoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBh
ZGRTaWduYWxIYW5kbGVyKFNpZ25hbDo6QWNjZXNzRmF1bHQsIFtdIChTaWduYWwgc2lnbmFsLCBT
aWdJbmZvJiBzaWdJbmZvLCBQbGF0Zm9ybVJlZ2lzdGVycyYgdWNvbnRleHQpIHsKKyAgICAgICAg
ICAgIHJldHVybiB0cmFwSGFuZGxlcihzaWduYWwsIHNpZ0luZm8sIHVjb250ZXh0KTsKKyAgICAg
ICAgfSk7CisgICAgfSk7CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZX0ZBU1RfTUVNT1JZ
KQogfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZh
dWx0U2lnbmFsSGFuZGxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0
U2lnbmFsSGFuZGxlci5oCmluZGV4IDc4M2I2YTZhNTJiMTExZWIwYTZkZWEyNTE3MzA4ZTZhYTMy
ZTlkOGQuLjE3MzUxYmM4NzhlOWU2OTIxYTg3ZGUyMmFjYTA1M2RjYTY3OWUwNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmgK
QEAgLTMyLDYgKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgV2FzbSB7CiAKIGJv
b2wgZmFzdE1lbW9yeUVuYWJsZWQoKTsKK0pTX0VYUE9SVF9QUklWQVRFIHZvaWQgcHJlcGFyZUZh
c3RNZW1vcnkoKTsKIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZW5hYmxlRmFzdE1lbW9yeSgpOwog
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGhyZWFkcy9TaWduYWxzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5jcHAK
aW5kZXggOGUxMTUwYjdhZGZhZDBmYzhmMjc3NWYyNDUwZTViNjEyOGYxYzIwZS4uZTE4ZTUzMWU0
YTE3Y2E4ZTNhYTA2ODkyNTgxZDJhZmUzMDU2NTQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvdGhyZWFkcy9TaWduYWxzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL1NpZ25h
bHMuY3BwCkBAIC0yMzUsMTEgKzIzNSwxMiBAQCB2b2lkIGhhbmRsZVNpZ25hbHNXaXRoTWFjaCgp
CiAgICAgZ193dGZDb25maWcuc2lnbmFsSGFuZGxlcnMudXNlTWFjaCA9IHRydWU7CiB9CiAKK3N0
YXRpYyBleGNlcHRpb25fbWFza190IGFjdGl2ZUV4Y2VwdGlvbnM7CiBpbmxpbmUgdm9pZCBzZXRF
eGNlcHRpb25Qb3J0cyhjb25zdCBBYnN0cmFjdExvY2tlciYgdGhyZWFkR3JvdXBMb2NrZXIsIFRo
cmVhZCYgdGhyZWFkKQogewogICAgIFVOVVNFRF9QQVJBTSh0aHJlYWRHcm91cExvY2tlcik7CiAg
ICAgU2lnbmFsSGFuZGxlcnMmIGhhbmRsZXJzID0gZ193dGZDb25maWcuc2lnbmFsSGFuZGxlcnM7
Ci0gICAga2Vybl9yZXR1cm5fdCByZXN1bHQgPSB0aHJlYWRfc2V0X2V4Y2VwdGlvbl9wb3J0cyh0
aHJlYWQubWFjaFRocmVhZCgpLCBoYW5kbGVycy5hY3RpdmVFeGNlcHRpb25zLCBoYW5kbGVycy5l
eGNlcHRpb25Qb3J0LCBFWENFUFRJT05fU1RBVEUgfCBNQUNIX0VYQ0VQVElPTl9DT0RFUywgTUFD
SElORV9USFJFQURfU1RBVEUpOworICAgIGtlcm5fcmV0dXJuX3QgcmVzdWx0ID0gdGhyZWFkX3Nl
dF9leGNlcHRpb25fcG9ydHModGhyZWFkLm1hY2hUaHJlYWQoKSwgYWN0aXZlRXhjZXB0aW9ucywg
aGFuZGxlcnMuZXhjZXB0aW9uUG9ydCwgRVhDRVBUSU9OX1NUQVRFIHwgTUFDSF9FWENFUFRJT05f
Q09ERVMsIE1BQ0hJTkVfVEhSRUFEX1NUQVRFKTsKICAgICBpZiAocmVzdWx0ICE9IEtFUk5fU1VD
Q0VTUykgewogICAgICAgICBkYXRhTG9nTG4oInRocmVhZCBzZXQgcG9ydCBmYWlsZWQgZHVlIHRv
ICIsIG1hY2hfZXJyb3Jfc3RyaW5nKHJlc3VsdCkpOwogICAgICAgICBDUkFTSCgpOwpAQCAtMjY1
LDExICsyNjYsOCBAQCB2b2lkIHJlZ2lzdGVyVGhyZWFkRm9yTWFjaEV4Y2VwdGlvbkhhbmRsaW5n
KFRocmVhZCYgdGhyZWFkKQogICAgICAgICBzZXRFeGNlcHRpb25Qb3J0cyhsb2NrZXIsIHRocmVh
ZCk7CiB9CiAKLSNlbHNlCi1zdGF0aWMgY29uc3RleHByIGJvb2wgdXNlTWFjaCA9IGZhbHNlOwog
I2VuZGlmIC8vIEhBVkUoTUFDSF9FWENFUFRJT05TKQogCi0KIGlubGluZSBzaXplX3Qgb2Zmc2V0
Rm9yU3lzdGVtU2lnbmFsKGludCBzaWcpCiB7CiAgICAgU2lnbmFsIHNpZ25hbCA9IGZyb21TeXN0
ZW1TaWduYWwoc2lnKTsKQEAgLTI3OCwyNSArMjc2LDIxIEBAIGlubGluZSBzaXplX3Qgb2Zmc2V0
Rm9yU3lzdGVtU2lnbmFsKGludCBzaWcpCiAKIHN0YXRpYyB2b2lkIGpzY1NpZ25hbEhhbmRsZXIo
aW50LCBzaWdpbmZvX3QqLCB2b2lkKik7CiAKLXZvaWQgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2ln
bmFsIHNpZ25hbCwgU2lnbmFsSGFuZGxlciYmIGhhbmRsZXIpCitzdGF0aWMgc3RkOjpvbmNlX2Zs
YWcgaW5pdGlhbGl6ZU9uY2VGbGFnc1tzdGF0aWNfY2FzdDxzaXplX3Q+KFNpZ25hbDo6TnVtYmVy
T2ZTaWduYWxzKV07Cit2b2lkIGFkZFNpZ25hbEhhbmRsZXIoU2lnbmFsIHNpZ25hbCwgU2lnbmFs
SGFuZGxlciYmIGhhbmRsZXIpCiB7CiAgICAgQ29uZmlnOjpBc3NlcnROb3RGcm96ZW5TY29wZSBh
c3NlcnRTY29wZTsKICAgICBTaWduYWxIYW5kbGVycyYgaGFuZGxlcnMgPSBnX3d0ZkNvbmZpZy5z
aWduYWxIYW5kbGVyczsKICAgICBBU1NFUlQoc2lnbmFsIDwgU2lnbmFsOjpVbmtub3duKTsKLSNp
ZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKICAgICBBU1NFUlQoIWhhbmRsZXJzLnVzZU1hY2ggfHwg
c2lnbmFsICE9IFNpZ25hbDo6VXNyKTsKIAorI2lmIEhBVkUoTUFDSF9FWENFUFRJT05TKQogICAg
IGlmIChoYW5kbGVycy51c2VNYWNoKQogICAgICAgICBzdGFydE1hY2hFeGNlcHRpb25IYW5kbGVy
VGhyZWFkKCk7CiAjZW5kaWYKIAotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXpl
T25jZUZsYWdzW3N0YXRpY19jYXN0PHNpemVfdD4oU2lnbmFsOjpOdW1iZXJPZlNpZ25hbHMpXTsK
ICAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplT25jZUZsYWdzW3N0YXRpY19jYXN0PHNpemVf
dD4oc2lnbmFsKV0sIFsmXSB7Ci0gICAgICAgIENvbmZpZzo6QXNzZXJ0Tm90RnJvemVuU2NvcGUg
YXNzZXJ0U2NvcGU7Ci0jaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCi0gICAgICAgIGJvb2wgdXNl
TWFjaCA9IGhhbmRsZXJzLnVzZU1hY2g7Ci0jZW5kaWYKLSAgICAgICAgaWYgKCF1c2VNYWNoKSB7
CisgICAgICAgIGlmICghaGFuZGxlcnMudXNlTWFjaCkgewogICAgICAgICAgICAgc3RydWN0IHNp
Z2FjdGlvbiBhY3Rpb247CiAgICAgICAgICAgICBhY3Rpb24uc2Ffc2lnYWN0aW9uID0ganNjU2ln
bmFsSGFuZGxlcjsKICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gc2lnZmlsbHNldCgmYWN0aW9u
LnNhX21hc2spOwpAQCAtMzE0LDExICszMDgsMjAgQEAgdm9pZCBpbnN0YWxsU2lnbmFsSGFuZGxl
cihTaWduYWwgc2lnbmFsLCBTaWduYWxIYW5kbGVyJiYgaGFuZGxlcikKICAgICB9KTsKIAogICAg
IGhhbmRsZXJzLmFkZChzaWduYWwsIFdURk1vdmUoaGFuZGxlcikpOworfQorCit2b2lkIGFjdGl2
YXRlU2lnbmFsSGFuZGxlcnNGb3IoU2lnbmFsIHNpZ25hbCkKK3sKKyAgICBjb25zdCBTaWduYWxI
YW5kbGVycyYgaGFuZGxlcnMgPSBnX3d0ZkNvbmZpZy5zaWduYWxIYW5kbGVyczsKKyAgICBBU1NF
UlQoc2lnbmFsIDwgU2lnbmFsOjpVbmtub3duKTsKKyAgICBBU1NFUlQoIWhhbmRsZXJzLnVzZU1h
Y2ggfHwgc2lnbmFsICE9IFNpZ25hbDo6VXNyKTsKKworCiAKICNpZiBIQVZFKE1BQ0hfRVhDRVBU
SU9OUykKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGFjdGl2ZVRocmVhZHMoKS5nZXRMb2Nr
KCkpOwogICAgIGlmIChoYW5kbGVycy51c2VNYWNoKSB7Ci0gICAgICAgIGhhbmRsZXJzLmFjdGl2
ZUV4Y2VwdGlvbnMgfD0gdG9NYWNoTWFzayhzaWduYWwpOworICAgICAgICBhY3RpdmVFeGNlcHRp
b25zIHw9IHRvTWFjaE1hc2soc2lnbmFsKTsKIAogICAgICAgICBmb3IgKGF1dG8mIHRocmVhZCA6
IGFjdGl2ZVRocmVhZHMoKS50aHJlYWRzKGxvY2tlcikpCiAgICAgICAgICAgICBzZXRFeGNlcHRp
b25Qb3J0cyhsb2NrZXIsIHRocmVhZC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90aHJlYWRzL1NpZ25hbHMuaCBiL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5oCmlu
ZGV4IDE2ZWFlOTdiZjg1ZGI5NTQ1Yjg1YTllYTI0ZmQyMGQ3MGJhYWUwZDAuLjhlM2U2YzFhZDgz
OGE5MzFjZTU3Yjc5ZmM0N2ZmMTBhZGEyNTNkYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RocmVhZHMvU2lnbmFscy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5o
CkBAIC0xMTEsMTkgKzExMSwyMyBAQCBzdHJ1Y3QgU2lnbmFsSGFuZGxlcnMgewogICAgIG1hY2hf
cG9ydF90IGV4Y2VwdGlvblBvcnQ7CiAgICAgZXhjZXB0aW9uX21hc2tfdCBhY3RpdmVFeGNlcHRp
b25zOwogICAgIGJvb2wgdXNlTWFjaDsKKyNlbHNlCisgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IHVzZU1hY2ggPSBmYWxzZTsKICNlbmRpZgogICAgIHVpbnQ4X3QgbnVtYmVyT2ZIYW5kbGVyc1tu
dW1iZXJPZlNpZ25hbHNdOwogICAgIFNpZ25hbEhhbmRsZXJNZW1vcnkgaGFuZGxlcnNbbnVtYmVy
T2ZTaWduYWxzXVttYXhOdW1iZXJPZkhhbmRsZXJzXTsKICAgICBzdHJ1Y3Qgc2lnYWN0aW9uIG9s
ZEFjdGlvbnNbbnVtYmVyT2ZTaWduYWxzXTsKIH07CiAKLS8vIENhbGwgdGhpcyBtZXRob2Qgd2hl
bmV2ZXIgeW91IHdhbnQgdG8gaW5zdGFsbCBhIHNpZ25hbCBoYW5kbGVyLiBUaGlzIGZ1bmN0aW9u
IG5lZWRzIHRvIGJlIGNhbGxlZAorLy8gQ2FsbCB0aGlzIG1ldGhvZCB3aGVuZXZlciB5b3Ugd2Fu
dCB0byBhZGQgYSBzaWduYWwgaGFuZGxlci4gVGhpcyBmdW5jdGlvbiBuZWVkcyB0byBiZSBjYWxs
ZWQKIC8vIGJlZm9yZSBnX3d0ZkNvbmZpZyBpcyBmcm96ZW4uIEFmdGVyIHRoZSBnX3d0ZkNvbmZp
ZyBpcyBmcm96ZW4sIG5vIGFkZGl0aW9uYWwgc2lnbmFsIGhhbmRsZXJzIG1heQogLy8gYmUgaW5z
dGFsbGVkLiBBbnkgYXR0ZW1wdCB0byBkbyBzbyB3aWxsIHRyaWdnZXIgYSBjcmFzaC4KIC8vIE5v
dGU6IFlvdXIgc2lnbmFsIGhhbmRsZXIgd2lsbCBiZSBjYWxsZWQgZXZlcnkgdGltZSB0aGUgaGFu
ZGxlciBmb3IgdGhlIGRlc2lyZWQgc2lnbmFsIGlzIGNhbGxlZC4KIC8vIFRodXMgaXQgaXMgeW91
ciByZXNwb25zaWJpbGl0eSB0byBkaXNjZXJuIGlmIHRoZSBzaWduYWwgZmlyZWQgd2FzIHlvdXJz
LgotLy8gVGhpcyBmdW5jdGlvbiBpcyBhIG9uZSB3YXkgc3RyZWV0IGkuZS4gb25jZSBpbnN0YWxs
ZWQsIGEgc2lnbmFsIGhhbmRsZXIgY2Fubm90IGJlIHVuaW5zdGFsbGVkLgotV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsLCBTaWduYWxIYW5kbGVyJiYp
OworLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBhIG9uZSB3YXkgc3RyZWV0IGkuZS4gb25jZSBpbnN0
YWxsZWQsIGEgc2lnbmFsIGhhbmRsZXIgY2Fubm90IGJlIHVuaW5zdGFsbGVkCisvLyBhbmQgb25j
ZSBjb21taXRlZCB0aGV5IGNhbid0IGJlIHR1cm5lZCBvZmYuCitXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBhZGRTaWduYWxIYW5kbGVyKFNpZ25hbCwgU2lnbmFsSGFuZGxlciYmKTsKK1dURl9FWFBP
UlRfUFJJVkFURSB2b2lkIGFjdGl2YXRlU2lnbmFsSGFuZGxlcnNGb3IoU2lnbmFsKTsKIAogCiAj
aWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCkBAIC0xNDcsNiArMTUxLDcgQEAgdXNpbmcgV1RGOjp0
b1N5c3RlbVNpZ25hbDsKIHVzaW5nIFdURjo6ZnJvbVN5c3RlbVNpZ25hbDsKIHVzaW5nIFdURjo6
U2lnbmFsQWN0aW9uOwogdXNpbmcgV1RGOjpTaWduYWxIYW5kbGVyOwotdXNpbmcgV1RGOjppbnN0
YWxsU2lnbmFsSGFuZGxlcjsKK3VzaW5nIFdURjo6YWRkU2lnbmFsSGFuZGxlcjsKK3VzaW5nIFdU
Rjo6YWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcjsKIAogI2VuZGlmIC8vIFVTRShQVEhSRUFEUykg
JiYgSEFWRShNQUNISU5FX0NPTlRFWFQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKaW5kZXggOWFhYjE5ZmQxNjczMGExOTU4YjAwNTk4Y2Q2YjQ0Y2IwZGJhOWI2ZS4uMWJj
Yzg0MTMxZWM2NDhlYWIxZmJiMzUxZTNhODU4NzM1MTY3NzU2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtODMsNiArODMsNyBAQAogI2luY2x1ZGUgIldlYnNp
dGVEYXRhVHlwZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL01lbW9yeVN0YXRpc3RpY3MuaD4KKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BWE9i
amVjdENhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KQEAgLTQ2Niw2
ICs0NjcsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBTZXJ2aWNlV29ya2VyUHJv
dmlkZXI6OnNldFNoYXJlZFByb3ZpZGVyKFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xl
dG9uKCkpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgSlNDOjpXYXNt
OjplbmFibGVGYXN0TWVtb3J5KCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIFdlYlJlc291cmNlTG9h
ZE9ic2VydmVyOjpzZXRTaG91bGRMb2dVc2VySW50ZXJhY3Rpb24ocGFyYW1ldGVycy5zaG91bGRM
b2dVc2VySW50ZXJhY3Rpb24pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmFhZDljNTM2NTdmYjYwYmNhYjY1NjUzYTk2NzBlOGRh
YjU1OGQ3MS4uODcxOTE5Yzk5ODJmYzZkNjVkM2JmZGNhNGRiMmYyMzg2NjFlYmRhYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDIwLTA2LTEyICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFNpZ25hbCBoYW5kbGVycyBzaG91bGQgaGF2ZSBhIHR3byBwaGFzZSBpbnN0YWxs
YXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTMxNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1NpZ25hbHMuY3BwOgorICAgICAgICAoVEVTVCk6CisK
IDIwMjAtMDYtMTIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgVGVzdHMgZXhwZWN0aW5nIGEgY3Jhc2ggc2hvdWxkIHVzZSBhIHNpZ25hbCBoYW5kbGVy
IGluIHRoZSBKU0MgQ0xJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1NpZ25hbHMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU2ln
bmFscy5jcHAKaW5kZXggNjgwYzlmNTk1MDE0ZDZiYmY4NjczNzNmMjNlZWIwMWUyZmU5MjAxMC4u
ODgyM2I0ZTRkZmU4ZjI1YTJiMDk4M2ZhN2E3NGNkMGZlYTZmMmU4YiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU2lnbmFscy5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU2lnbmFscy5jcHAKQEAgLTQwLDExICs0MCwxMiBAQCBwdWJsaWM6
CiBURVNUKFNpZ25hbHMsIFNpZ25hbHNXb3JrT25FeGl0KQogewogICAgIHN0YXRpYyBib29sIGhh
bmRsZXJSYW4gPSBmYWxzZTsKLSAgICBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OlVzciwg
W10gKFNpZ25hbCwgU2lnSW5mbyYsIFBsYXRmb3JtUmVnaXN0ZXJzJikgLT4gU2lnbmFsQWN0aW9u
IHsKKyAgICBhZGRTaWduYWxIYW5kbGVyKFNpZ25hbDo6VXNyLCBbXSAoU2lnbmFsLCBTaWdJbmZv
JiwgUGxhdGZvcm1SZWdpc3RlcnMmKSAtPiBTaWduYWxBY3Rpb24gewogICAgICAgICBkYXRhTG9n
TG4oImhlcmUiKTsKICAgICAgICAgaGFuZGxlclJhbiA9IHRydWU7CiAgICAgICAgIHJldHVybiBT
aWduYWxBY3Rpb246OkhhbmRsZWQ7CiAgICAgfSk7CisgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVy
c0ZvcihTaWduYWw6OlVzcik7CiAKICAgICBBdG9taWM8Ym9vbD4gcmVjZWl2ZXJTaG91bGRLZWVw
UnVubmluZyh0cnVlKTsKICAgICBSZWY8VGhyZWFkPiByZWNlaXZlclRocmVhZCA9IChUaHJlYWQ6
OmNyZWF0ZSgiVGhyZWFkTWVzc2FnZSByZWNlaXZlciIsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401822</attachid>
            <date>2020-06-12 19:45:56 -0700</date>
            <delta_ts>2020-06-13 11:17:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213160-20200612194555.patch</filename>
            <type>text/plain</type>
            <size>17479</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyOTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
N2M1YTM5MmY1ZjIyZmQ0YTI4MDdhNWYzMzZiZDQ4NzU4ZTAyMWQyLi42MWRhZDM4ZjFhMGNhMjM2
MTRmZWVkODFmMjEyNDdiZTFmYzkwODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTaWduYWwgaGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2Ug
aW5zdGFsbGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjEzMTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoQ29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKToK
KyAgICAgICAgKGpzY21haW4pOgorICAgICAgICAqIHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5jcHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHJ1
bnRpbWUvVk1UcmFwcy5jcHA6CisgICAgICAgICogdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5j
cHA6CisgICAgICAgIChKU0M6Omluc3RhbGxDcmFzaEhhbmRsZXIpOgorICAgICAgICAqIHdhc20v
V2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OmVuYWJsZUZh
c3RNZW1vcnkpOgorICAgICAgICAoSlNDOjpXYXNtOjpwcmVwYXJlRmFzdE1lbW9yeSk6CisgICAg
ICAgICogd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmg6CisKIDIwMjAtMDYtMTIgIEtlaXRo
IE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgVGVzdHMgZXhwZWN0
aW5nIGEgY3Jhc2ggc2hvdWxkIHVzZSBhIHNpZ25hbCBoYW5kbGVyIGluIHRoZSBKU0MgQ0xJIHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYzAxMjY3NjgyZWZlZDNmZGRhY2E1ZWJiNTEzNGQxNTVjNDFhM2M3NC4uNTIz
MGI1OGM3YWY1ZDZjMTM1MzU2ZjUwY2FmODcxYjUzODcyNzhiZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBA
QAorMjAyMC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBTaWduYWwgaGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2UgaW5zdGFsbGF0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEz
MTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTExE
QiBkb2VzIG5vdCBsaWtlIGl0IHdoZW4gd2Ugc2luZ2xlIHN0ZXAgd2hpbGUgdGhlcmUgYXJlIG1h
Y2ggZXhjZXB0aW9uCisgICAgICAgIGhhbmRsZXJzIGluc3RhbGxlZCBiZWNhdXNlIExMREIgc3Vz
cGVuZHMgYWxsIHRoZSBub24tYWN0aXZlIHRocmVhZHMuCisgICAgICAgIFdpdGggTWFjaCBleGNl
cHRpb24gaGFuZGxlcnMgaW5zdGFsbGVkLCB0aGUgT1Mgd2lsbCBzZW5kIGEgbWFjaCBtZXNzYWdl
CisgICAgICAgIHRvIG91ciBleGNlcHRpb24gaGFuZGxlciBwb3J0LCB3aGljaCBpcyBkaWZmZXJl
bnQgdGhhbiB0aGUgYWN0aXZlIHRocmVhZC4KKyAgICAgICAgV2hlbiB0aGlzIGhhcHBlbnMsIHRo
ZSBjb21iaW5hdGlvbiBvZiBMTERCIGFuZCB0aGUgcHJvY2VzcyBKU0MgaXMgaW4gZWZmZWN0aXZl
bHkKKyAgICAgICAgZGVhZGxvY2suCisKKyAgICAgICAgVW5kZXIgb3VyIG5ldyBhcHByb2FjaCwg
d2UgZ28gYmFjayB0byBvbmx5IHRlbGxpbmcgdGhlIE9TIHdlIGNhcmUgYWJvdXQKKyAgICAgICAg
dGhlc2UgZXhjZXB0aW9ucyBsYXRlIGJ1dCBsb2NrIGRvd24gdGhlIGZ1bmN0aW9uIHBvaW50ZXJz
IGVhcmx5LiBUaGlzIHdheQorICAgICAgICBwcm9jZXNzZXMgdGhhdCBiZW5lZml0IGZyb20gb3Vy
IGV4Y2VwdGlvbiBoYW5kbGVyIGNvZGUgYXJlIGVhc2llciB0byBkZWJ1Zy4KKworICAgICAgICAq
IHd0Zi90aHJlYWRzL1NpZ25hbHMuY3BwOgorICAgICAgICAoV1RGOjphZGRTaWduYWxIYW5kbGVy
KToKKyAgICAgICAgKFdURjo6YWN0aXZhdGVTaWduYWxIYW5kbGVyc0Zvcik6CisgICAgICAgIChX
VEY6Omluc3RhbGxTaWduYWxIYW5kbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvdGhyZWFk
cy9TaWduYWxzLmg6CisKIDIwMjAtMDYtMTIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBh
cHBsZS5jb20+CiAKICAgICAgICAgVGVzdHMgZXhwZWN0aW5nIGEgY3Jhc2ggc2hvdWxkIHVzZSBh
IHNpZ25hbCBoYW5kbGVyIGluIHRoZSBKU0MgQ0xJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzgyMzVj
YjMzNjMwMzkxMGViOWY0YjM3Nzc4ODNhMWRiMTliMzU5ZC4uMWNiZTgxZjY2OGE0NGRlZDBmMDQ5
ZTVjMGRmODk2YWQ4ODliOGFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNi0x
MiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBTaWdu
YWwgaGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2UgaW5zdGFsbGF0aW9uLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMTYwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHV0IGJhY2sgb2xkIFdB
U00gZmFzdCBtZW1vcnkgaW5zdGFsbGF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlBy
b2Nlc3MpOgorCiAyMDIwLTA2LTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBBUEkgdGVzdHMgdG9sZXJhbnQgb2Ygb3VyIHJlbGF0
aXZlbHkgbmV3IHVzZSBvZiBXZWJQYWdlUHJveHk6OnByZWNvbm5lY3RUbwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcAppbmRleCA2ZmM1ZDRkMWY5Nzk4YWZhNmJkYWIyN2MyMjhmMGU4M2FjZWY1MjA2Li5iN2Iw
MjEzMGI3OTYyYzRlOGUwNzQ5MjA4ZDIzYzg2MTRjY2FlYmE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cApAQCAtNjYsNiArNjYsNyBAQAogI2luY2x1ZGUgIlR5cGVkQXJyYXlJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiVk1JbnNwZWN0b3IuaCIKICNpbmNsdWRlICJXYXNtQ2FwYWJpbGl0aWVzLmgiCisjaW5j
bHVkZSAiV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5oIgogI2luY2x1ZGUgIldhc21NZW1vcnkuaCIK
ICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtMjk4NiwxMSArMjk4
NywxNiBAQCB2b2lkIENvbW1hbmRMaW5lOjpwYXJzZUFyZ3VtZW50cyhpbnQgYXJnYywgY2hhcioq
IGFyZ3YpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFNpZ25hbEFjdGlvbjo6Rm9yY2VEZWZhdWx0
OwogICAgICAgICAgICAgfTsKIAotICAgICAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2ln
bmFsOjpJbGxlZ2FsSW5zdHJ1Y3Rpb24sIFNpZ25hbEhhbmRsZXIoZXhpdCkpOwotICAgICAgICAg
ICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpBY2Nlc3NGYXVsdCwgU2lnbmFsSGFuZGxl
cihleGl0KSk7Ci0gICAgICAgICAgICBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OkZsb2F0
aW5nUG9pbnQsIFNpZ25hbEhhbmRsZXIoZXhpdCkpOworICAgICAgICAgICAgYWRkU2lnbmFsSGFu
ZGxlcihTaWduYWw6OklsbGVnYWxJbnN0cnVjdGlvbiwgU2lnbmFsSGFuZGxlcihleGl0KSk7Cisg
ICAgICAgICAgICBhZGRTaWduYWxIYW5kbGVyKFNpZ25hbDo6QWNjZXNzRmF1bHQsIFNpZ25hbEhh
bmRsZXIoZXhpdCkpOworICAgICAgICAgICAgYWRkU2lnbmFsSGFuZGxlcihTaWduYWw6OkZsb2F0
aW5nUG9pbnQsIFNpZ25hbEhhbmRsZXIoZXhpdCkpOwogICAgICAgICAgICAgLy8gb25jZSB3ZSBk
byB0aGlzIGxsZGIgd29uJ3Qgd29yayBhbnltb3JlIGJlY2F1c2Ugd2Ugd2lsbCBleGl0IG9uIGFu
eSBicmVha3BvaW50cyBpdCBzZXRzLgotICAgICAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIo
U2lnbmFsOjpCcmVha3BvaW50LCBTaWduYWxIYW5kbGVyKGV4aXQpKTsKKyAgICAgICAgICAgIGFk
ZFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpCcmVha3BvaW50LCBTaWduYWxIYW5kbGVyKGV4aXQpKTsK
KworICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWduYWw6OklsbGVnYWxJ
bnN0cnVjdGlvbik7CisgICAgICAgICAgICBhY3RpdmF0ZVNpZ25hbEhhbmRsZXJzRm9yKFNpZ25h
bDo6QWNjZXNzRmF1bHQpOworICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihT
aWduYWw6OkZsb2F0aW5nUG9pbnQpOworICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVy
c0ZvcihTaWduYWw6OkJyZWFrcG9pbnQpOwogI2VuZGlmCiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgfQpAQCAtMzEyMiw2ICszMTI4LDEwIEBAIGludCBydW5KU0MoY29uc3QgQ29tbWFu
ZExpbmUmIG9wdGlvbnMsIGJvb2wgaXNXb3JrZXIsIGNvbnN0IEZ1bmMmIGZ1bmMpCiAgICAgV29y
a2VyIHdvcmtlcihXb3JrZXJzOjpzaW5nbGV0b24oKSk7CiAgICAgCiAgICAgVk0mIHZtID0gVk06
OmNyZWF0ZShMYXJnZUhlYXApLmxlYWtSZWYoKTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisg
ICAgV2FzbTo6ZW5hYmxlRmFzdE1lbW9yeSgpOworI2VuZGlmCisKICAgICBpbnQgcmVzdWx0Owog
ICAgIGJvb2wgc3VjY2VzcyA9IHRydWU7CiAgICAgR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5p
dGlhbGl6ZVRocmVhZGluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0
aWFsaXplVGhyZWFkaW5nLmNwcAppbmRleCBkYjJlZDJmYWU0MzBmZjJkN2I4MmNiMGNkMWI5YWE4
OTc0ZWNmODMzLi45ZmM3YjFmMzNlMjM0ZTk5ZDAxNjRkMGI1OTU2NjgxMGY1ZTNmOGEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5n
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhyZWFk
aW5nLmNwcApAQCAtOTUsNyArOTUsNyBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogI2Vu
ZGlmCiAgICAgICAgIFZNVHJhcHM6OmluaXRpYWxpemVTaWduYWxzKCk7CiAjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQotICAgICAgICBXYXNtOjplbmFibGVGYXN0TWVtb3J5KCk7CisgICAgICAgIFdh
c206OnByZXBhcmVGYXN0TWVtb3J5KCk7CiAjZW5kaWYKIAogICAgICAgICBXVEY6OmNvbXBpbGVy
RmVuY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJh
cHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKaW5kZXgg
YjMxOWQzMTRlYTk4MjBkODBjYWY0OTlhM2UwZDkyMTFiMDIzN2E3ZS4uNDBhYTc5N2MyYWVhZGQw
MmE4NDY3MjRjMTAyZDEwY2E3ZWZlMTc3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk1UcmFwcy5jcHAKQEAgLTE5MywxMyArMTkzLDE1IEBAIHB1YmxpYzoKICAgICBTaWduYWxT
ZW5kZXIoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgVk0mIHZtKQogICAgICAgICA6IEJh
c2UobG9ja2VyLCB2bS50cmFwcygpLm1fbG9jaywgdm0udHJhcHMoKS5tX2NvbmRpdGlvbi5jb3B5
UmVmKCkpCiAgICAgICAgICwgbV92bSh2bSkKLSAgICB7IH0KKyAgICB7CisgICAgICAgIGFjdGl2
YXRlU2lnbmFsSGFuZGxlcnNGb3IoU2lnbmFsOjpBY2Nlc3NGYXVsdCk7CisgICAgfQogCiAgICAg
c3RhdGljIHZvaWQgaW5pdGlhbGl6ZVNpZ25hbHMoKQogICAgIHsKICAgICAgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIG9uY2U7CiAgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKLSAg
ICAgICAgICAgIGluc3RhbGxTaWduYWxIYW5kbGVyKFNpZ25hbDo6QWNjZXNzRmF1bHQsIFtdIChT
aWduYWwsIFNpZ0luZm8mLCBQbGF0Zm9ybVJlZ2lzdGVycyYgcmVnaXN0ZXJzKSAtPiBTaWduYWxB
Y3Rpb24geworICAgICAgICAgICAgYWRkU2lnbmFsSGFuZGxlcihTaWduYWw6OkFjY2Vzc0ZhdWx0
LCBbXSAoU2lnbmFsLCBTaWdJbmZvJiwgUGxhdGZvcm1SZWdpc3RlcnMmIHJlZ2lzdGVycykgLT4g
U2lnbmFsQWN0aW9uIHsKICAgICAgICAgICAgICAgICBhdXRvIHNpZ25hbENvbnRleHQgPSBTaWdu
YWxDb250ZXh0Ojp0cnlDcmVhdGUocmVnaXN0ZXJzKTsKICAgICAgICAgICAgICAgICBpZiAoIXNp
Z25hbENvbnRleHQpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTaWduYWxBY3Rpb246Ok5v
dEhhbmRsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxs
Q3Jhc2hBbmFseXplci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jh
c2hBbmFseXplci5jcHAKaW5kZXggY2MyZmRjMDZmYTk3MTZlNjdhNTA3OGRiYzI1ZWQyNmQwMzZh
ZTdmYS4uMDY0NmJmMjkyY2U3YjUzZWFmZDU1ODhhOWY4OGVmOGQwZTI4OWJjNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9TaWdpbGxDcmFzaEFuYWx5emVyLmNwcApA
QCAtMTU2LDcgKzE1Niw3IEBAIHB1YmxpYzoKIHN0YXRpYyB2b2lkIGluc3RhbGxDcmFzaEhhbmRs
ZXIoKQogewogI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02NCkKLSAgICBpbnN0YWxsU2lnbmFs
SGFuZGxlcihTaWduYWw6OklsbGVnYWxJbnN0cnVjdGlvbiwgW10gKFNpZ25hbCwgU2lnSW5mbyYs
IFBsYXRmb3JtUmVnaXN0ZXJzJiByZWdpc3RlcnMpIHsKKyAgICBhZGRTaWduYWxIYW5kbGVyKFNp
Z25hbDo6SWxsZWdhbEluc3RydWN0aW9uLCBbXSAoU2lnbmFsLCBTaWdJbmZvJiwgUGxhdGZvcm1S
ZWdpc3RlcnMmIHJlZ2lzdGVycykgewogICAgICAgICBhdXRvIHNpZ25hbENvbnRleHQgPSBTaWdu
YWxDb250ZXh0Ojp0cnlDcmVhdGUocmVnaXN0ZXJzKTsKICAgICAgICAgaWYgKCFzaWduYWxDb250
ZXh0KQogICAgICAgICAgICAgcmV0dXJuIFNpZ25hbEFjdGlvbjo6Tm90SGFuZGxlZDsKQEAgLTE2
OSw2ICsxNjksNyBAQCBzdGF0aWMgdm9pZCBpbnN0YWxsQ3Jhc2hIYW5kbGVyKCkKICAgICAgICAg
YW5hbHl6ZXIuYW5hbHl6ZSgqc2lnbmFsQ29udGV4dCk7CiAgICAgICAgIHJldHVybiBTaWduYWxB
Y3Rpb246Ok5vdEhhbmRsZWQ7CiAgICAgfSk7CisgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0Zv
cihTaWduYWw6OklsbGVnYWxJbnN0cnVjdGlvbik7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcAppbmRl
eCBkN2M0NDBiMTM4YjY0NGFjZWU5ODc0NWI1NDY3M2M4MDI1NWQ5NDJiLi5iZTg2NGNhNjU4OGY0
OTY1MWFmYWQxY2Q3MjZkNDIwNWQyZjBmMjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcApAQCAtMTEzLDEyICsxMTMs
MjggQEAgdm9pZCBlbmFibGVGYXN0TWVtb3J5KCkKICAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VX
ZWJBc3NlbWJseUZhc3RNZW1vcnkoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBp
bnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OkFjY2Vzc0ZhdWx0LCBbXSAoU2lnbmFsIHNpZ25h
bCwgU2lnSW5mbyYgc2lnSW5mbywgUGxhdGZvcm1SZWdpc3RlcnMmIHVjb250ZXh0KSB7Ci0gICAg
ICAgICAgICByZXR1cm4gdHJhcEhhbmRsZXIoc2lnbmFsLCBzaWdJbmZvLCB1Y29udGV4dCk7Ci0g
ICAgICAgIH0pOworICAgICAgICBhY3RpdmF0ZVNpZ25hbEhhbmRsZXJzRm9yKFNpZ25hbDo6QWNj
ZXNzRmF1bHQpOwogCiAgICAgICAgIGZhc3RIYW5kbGVySW5zdGFsbGVkID0gdHJ1ZTsKICAgICB9
KTsKKyNlbmRpZgorfQorCit2b2lkIHByZXBhcmVGYXN0TWVtb3J5KCkKK3sKKyNpZiBFTkFCTEUo
V0VCQVNTRU1CTFlfRkFTVF9NRU1PUlkpCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7
CisgICAgc3RkOjpjYWxsX29uY2Uob25jZSwgW10geworICAgICAgICBpZiAoIVdhc206OmlzU3Vw
cG9ydGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCFPcHRpb25zOjp1
c2VXZWJBc3NlbWJseUZhc3RNZW1vcnkoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBhZGRTaWduYWxIYW5kbGVyKFNpZ25hbDo6QWNjZXNzRmF1bHQsIFtdIChTaWduYWwgc2lnbmFs
LCBTaWdJbmZvJiBzaWdJbmZvLCBQbGF0Zm9ybVJlZ2lzdGVycyYgdWNvbnRleHQpIHsKKyAgICAg
ICAgICAgIHJldHVybiB0cmFwSGFuZGxlcihzaWduYWwsIHNpZ0luZm8sIHVjb250ZXh0KTsKKyAg
ICAgICAgfSk7CisgICAgfSk7CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZX0ZBU1RfTUVN
T1JZKQogfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUZhdWx0U2lnbmFsSGFuZGxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZh
dWx0U2lnbmFsSGFuZGxlci5oCmluZGV4IDc4M2I2YTZhNTJiMTExZWIwYTZkZWEyNTE3MzA4ZTZh
YTMyZTlkOGQuLjE3MzUxYmM4NzhlOWU2OTIxYTg3ZGUyMmFjYTA1M2RjYTY3OWUwNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVy
LmgKQEAgLTMyLDYgKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgV2FzbSB7CiAK
IGJvb2wgZmFzdE1lbW9yeUVuYWJsZWQoKTsKK0pTX0VYUE9SVF9QUklWQVRFIHZvaWQgcHJlcGFy
ZUZhc3RNZW1vcnkoKTsKIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZW5hYmxlRmFzdE1lbW9yeSgp
OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdGhyZWFkcy9TaWduYWxzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5j
cHAKaW5kZXggOGUxMTUwYjdhZGZhZDBmYzhmMjc3NWYyNDUwZTViNjEyOGYxYzIwZS4uZTE4ZTUz
MWU0YTE3Y2E4ZTNhYTA2ODkyNTgxZDJhZmUzMDU2NTQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdGhyZWFkcy9TaWduYWxzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL1Np
Z25hbHMuY3BwCkBAIC0yMzUsMTEgKzIzNSwxMiBAQCB2b2lkIGhhbmRsZVNpZ25hbHNXaXRoTWFj
aCgpCiAgICAgZ193dGZDb25maWcuc2lnbmFsSGFuZGxlcnMudXNlTWFjaCA9IHRydWU7CiB9CiAK
K3N0YXRpYyBleGNlcHRpb25fbWFza190IGFjdGl2ZUV4Y2VwdGlvbnM7CiBpbmxpbmUgdm9pZCBz
ZXRFeGNlcHRpb25Qb3J0cyhjb25zdCBBYnN0cmFjdExvY2tlciYgdGhyZWFkR3JvdXBMb2NrZXIs
IFRocmVhZCYgdGhyZWFkKQogewogICAgIFVOVVNFRF9QQVJBTSh0aHJlYWRHcm91cExvY2tlcik7
CiAgICAgU2lnbmFsSGFuZGxlcnMmIGhhbmRsZXJzID0gZ193dGZDb25maWcuc2lnbmFsSGFuZGxl
cnM7Ci0gICAga2Vybl9yZXR1cm5fdCByZXN1bHQgPSB0aHJlYWRfc2V0X2V4Y2VwdGlvbl9wb3J0
cyh0aHJlYWQubWFjaFRocmVhZCgpLCBoYW5kbGVycy5hY3RpdmVFeGNlcHRpb25zLCBoYW5kbGVy
cy5leGNlcHRpb25Qb3J0LCBFWENFUFRJT05fU1RBVEUgfCBNQUNIX0VYQ0VQVElPTl9DT0RFUywg
TUFDSElORV9USFJFQURfU1RBVEUpOworICAgIGtlcm5fcmV0dXJuX3QgcmVzdWx0ID0gdGhyZWFk
X3NldF9leGNlcHRpb25fcG9ydHModGhyZWFkLm1hY2hUaHJlYWQoKSwgYWN0aXZlRXhjZXB0aW9u
cywgaGFuZGxlcnMuZXhjZXB0aW9uUG9ydCwgRVhDRVBUSU9OX1NUQVRFIHwgTUFDSF9FWENFUFRJ
T05fQ09ERVMsIE1BQ0hJTkVfVEhSRUFEX1NUQVRFKTsKICAgICBpZiAocmVzdWx0ICE9IEtFUk5f
U1VDQ0VTUykgewogICAgICAgICBkYXRhTG9nTG4oInRocmVhZCBzZXQgcG9ydCBmYWlsZWQgZHVl
IHRvICIsIG1hY2hfZXJyb3Jfc3RyaW5nKHJlc3VsdCkpOwogICAgICAgICBDUkFTSCgpOwpAQCAt
MjY1LDExICsyNjYsOCBAQCB2b2lkIHJlZ2lzdGVyVGhyZWFkRm9yTWFjaEV4Y2VwdGlvbkhhbmRs
aW5nKFRocmVhZCYgdGhyZWFkKQogICAgICAgICBzZXRFeGNlcHRpb25Qb3J0cyhsb2NrZXIsIHRo
cmVhZCk7CiB9CiAKLSNlbHNlCi1zdGF0aWMgY29uc3RleHByIGJvb2wgdXNlTWFjaCA9IGZhbHNl
OwogI2VuZGlmIC8vIEhBVkUoTUFDSF9FWENFUFRJT05TKQogCi0KIGlubGluZSBzaXplX3Qgb2Zm
c2V0Rm9yU3lzdGVtU2lnbmFsKGludCBzaWcpCiB7CiAgICAgU2lnbmFsIHNpZ25hbCA9IGZyb21T
eXN0ZW1TaWduYWwoc2lnKTsKQEAgLTI3OCwyNSArMjc2LDIxIEBAIGlubGluZSBzaXplX3Qgb2Zm
c2V0Rm9yU3lzdGVtU2lnbmFsKGludCBzaWcpCiAKIHN0YXRpYyB2b2lkIGpzY1NpZ25hbEhhbmRs
ZXIoaW50LCBzaWdpbmZvX3QqLCB2b2lkKik7CiAKLXZvaWQgaW5zdGFsbFNpZ25hbEhhbmRsZXIo
U2lnbmFsIHNpZ25hbCwgU2lnbmFsSGFuZGxlciYmIGhhbmRsZXIpCitzdGF0aWMgc3RkOjpvbmNl
X2ZsYWcgaW5pdGlhbGl6ZU9uY2VGbGFnc1tzdGF0aWNfY2FzdDxzaXplX3Q+KFNpZ25hbDo6TnVt
YmVyT2ZTaWduYWxzKV07Cit2b2lkIGFkZFNpZ25hbEhhbmRsZXIoU2lnbmFsIHNpZ25hbCwgU2ln
bmFsSGFuZGxlciYmIGhhbmRsZXIpCiB7CiAgICAgQ29uZmlnOjpBc3NlcnROb3RGcm96ZW5TY29w
ZSBhc3NlcnRTY29wZTsKICAgICBTaWduYWxIYW5kbGVycyYgaGFuZGxlcnMgPSBnX3d0ZkNvbmZp
Zy5zaWduYWxIYW5kbGVyczsKICAgICBBU1NFUlQoc2lnbmFsIDwgU2lnbmFsOjpVbmtub3duKTsK
LSNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKICAgICBBU1NFUlQoIWhhbmRsZXJzLnVzZU1hY2gg
fHwgc2lnbmFsICE9IFNpZ25hbDo6VXNyKTsKIAorI2lmIEhBVkUoTUFDSF9FWENFUFRJT05TKQog
ICAgIGlmIChoYW5kbGVycy51c2VNYWNoKQogICAgICAgICBzdGFydE1hY2hFeGNlcHRpb25IYW5k
bGVyVGhyZWFkKCk7CiAjZW5kaWYKIAotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFs
aXplT25jZUZsYWdzW3N0YXRpY19jYXN0PHNpemVfdD4oU2lnbmFsOjpOdW1iZXJPZlNpZ25hbHMp
XTsKICAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplT25jZUZsYWdzW3N0YXRpY19jYXN0PHNp
emVfdD4oc2lnbmFsKV0sIFsmXSB7Ci0gICAgICAgIENvbmZpZzo6QXNzZXJ0Tm90RnJvemVuU2Nv
cGUgYXNzZXJ0U2NvcGU7Ci0jaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCi0gICAgICAgIGJvb2wg
dXNlTWFjaCA9IGhhbmRsZXJzLnVzZU1hY2g7Ci0jZW5kaWYKLSAgICAgICAgaWYgKCF1c2VNYWNo
KSB7CisgICAgICAgIGlmICghaGFuZGxlcnMudXNlTWFjaCkgewogICAgICAgICAgICAgc3RydWN0
IHNpZ2FjdGlvbiBhY3Rpb247CiAgICAgICAgICAgICBhY3Rpb24uc2Ffc2lnYWN0aW9uID0ganNj
U2lnbmFsSGFuZGxlcjsKICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gc2lnZmlsbHNldCgmYWN0
aW9uLnNhX21hc2spOwpAQCAtMzE0LDExICszMDgsMjAgQEAgdm9pZCBpbnN0YWxsU2lnbmFsSGFu
ZGxlcihTaWduYWwgc2lnbmFsLCBTaWduYWxIYW5kbGVyJiYgaGFuZGxlcikKICAgICB9KTsKIAog
ICAgIGhhbmRsZXJzLmFkZChzaWduYWwsIFdURk1vdmUoaGFuZGxlcikpOworfQorCit2b2lkIGFj
dGl2YXRlU2lnbmFsSGFuZGxlcnNGb3IoU2lnbmFsIHNpZ25hbCkKK3sKKyAgICBjb25zdCBTaWdu
YWxIYW5kbGVycyYgaGFuZGxlcnMgPSBnX3d0ZkNvbmZpZy5zaWduYWxIYW5kbGVyczsKKyAgICBB
U1NFUlQoc2lnbmFsIDwgU2lnbmFsOjpVbmtub3duKTsKKyAgICBBU1NFUlQoIWhhbmRsZXJzLnVz
ZU1hY2ggfHwgc2lnbmFsICE9IFNpZ25hbDo6VXNyKTsKKworCiAKICNpZiBIQVZFKE1BQ0hfRVhD
RVBUSU9OUykKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGFjdGl2ZVRocmVhZHMoKS5nZXRM
b2NrKCkpOwogICAgIGlmIChoYW5kbGVycy51c2VNYWNoKSB7Ci0gICAgICAgIGhhbmRsZXJzLmFj
dGl2ZUV4Y2VwdGlvbnMgfD0gdG9NYWNoTWFzayhzaWduYWwpOworICAgICAgICBhY3RpdmVFeGNl
cHRpb25zIHw9IHRvTWFjaE1hc2soc2lnbmFsKTsKIAogICAgICAgICBmb3IgKGF1dG8mIHRocmVh
ZCA6IGFjdGl2ZVRocmVhZHMoKS50aHJlYWRzKGxvY2tlcikpCiAgICAgICAgICAgICBzZXRFeGNl
cHRpb25Qb3J0cyhsb2NrZXIsIHRocmVhZC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90aHJlYWRzL1NpZ25hbHMuaCBiL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5o
CmluZGV4IDE2ZWFlOTdiZjg1ZGI5NTQ1Yjg1YTllYTI0ZmQyMGQ3MGJhYWUwZDAuLjhlM2U2YzFh
ZDgzOGE5MzFjZTU3Yjc5ZmM0N2ZmMTBhZGEyNTNkYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3RocmVhZHMvU2lnbmFscy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFs
cy5oCkBAIC0xMTEsMTkgKzExMSwyMyBAQCBzdHJ1Y3QgU2lnbmFsSGFuZGxlcnMgewogICAgIG1h
Y2hfcG9ydF90IGV4Y2VwdGlvblBvcnQ7CiAgICAgZXhjZXB0aW9uX21hc2tfdCBhY3RpdmVFeGNl
cHRpb25zOwogICAgIGJvb2wgdXNlTWFjaDsKKyNlbHNlCisgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIHVzZU1hY2ggPSBmYWxzZTsKICNlbmRpZgogICAgIHVpbnQ4X3QgbnVtYmVyT2ZIYW5kbGVy
c1tudW1iZXJPZlNpZ25hbHNdOwogICAgIFNpZ25hbEhhbmRsZXJNZW1vcnkgaGFuZGxlcnNbbnVt
YmVyT2ZTaWduYWxzXVttYXhOdW1iZXJPZkhhbmRsZXJzXTsKICAgICBzdHJ1Y3Qgc2lnYWN0aW9u
IG9sZEFjdGlvbnNbbnVtYmVyT2ZTaWduYWxzXTsKIH07CiAKLS8vIENhbGwgdGhpcyBtZXRob2Qg
d2hlbmV2ZXIgeW91IHdhbnQgdG8gaW5zdGFsbCBhIHNpZ25hbCBoYW5kbGVyLiBUaGlzIGZ1bmN0
aW9uIG5lZWRzIHRvIGJlIGNhbGxlZAorLy8gQ2FsbCB0aGlzIG1ldGhvZCB3aGVuZXZlciB5b3Ug
d2FudCB0byBhZGQgYSBzaWduYWwgaGFuZGxlci4gVGhpcyBmdW5jdGlvbiBuZWVkcyB0byBiZSBj
YWxsZWQKIC8vIGJlZm9yZSBnX3d0ZkNvbmZpZyBpcyBmcm96ZW4uIEFmdGVyIHRoZSBnX3d0ZkNv
bmZpZyBpcyBmcm96ZW4sIG5vIGFkZGl0aW9uYWwgc2lnbmFsIGhhbmRsZXJzIG1heQogLy8gYmUg
aW5zdGFsbGVkLiBBbnkgYXR0ZW1wdCB0byBkbyBzbyB3aWxsIHRyaWdnZXIgYSBjcmFzaC4KIC8v
IE5vdGU6IFlvdXIgc2lnbmFsIGhhbmRsZXIgd2lsbCBiZSBjYWxsZWQgZXZlcnkgdGltZSB0aGUg
aGFuZGxlciBmb3IgdGhlIGRlc2lyZWQgc2lnbmFsIGlzIGNhbGxlZC4KIC8vIFRodXMgaXQgaXMg
eW91ciByZXNwb25zaWJpbGl0eSB0byBkaXNjZXJuIGlmIHRoZSBzaWduYWwgZmlyZWQgd2FzIHlv
dXJzLgotLy8gVGhpcyBmdW5jdGlvbiBpcyBhIG9uZSB3YXkgc3RyZWV0IGkuZS4gb25jZSBpbnN0
YWxsZWQsIGEgc2lnbmFsIGhhbmRsZXIgY2Fubm90IGJlIHVuaW5zdGFsbGVkLgotV1RGX0VYUE9S
VF9QUklWQVRFIHZvaWQgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsLCBTaWduYWxIYW5kbGVy
JiYpOworLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBhIG9uZSB3YXkgc3RyZWV0IGkuZS4gb25jZSBp
bnN0YWxsZWQsIGEgc2lnbmFsIGhhbmRsZXIgY2Fubm90IGJlIHVuaW5zdGFsbGVkCisvLyBhbmQg
b25jZSBjb21taXRlZCB0aGV5IGNhbid0IGJlIHR1cm5lZCBvZmYuCitXVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBhZGRTaWduYWxIYW5kbGVyKFNpZ25hbCwgU2lnbmFsSGFuZGxlciYmKTsKK1dURl9F
WFBPUlRfUFJJVkFURSB2b2lkIGFjdGl2YXRlU2lnbmFsSGFuZGxlcnNGb3IoU2lnbmFsKTsKIAog
CiAjaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCkBAIC0xNDcsNiArMTUxLDcgQEAgdXNpbmcgV1RG
Ojp0b1N5c3RlbVNpZ25hbDsKIHVzaW5nIFdURjo6ZnJvbVN5c3RlbVNpZ25hbDsKIHVzaW5nIFdU
Rjo6U2lnbmFsQWN0aW9uOwogdXNpbmcgV1RGOjpTaWduYWxIYW5kbGVyOwotdXNpbmcgV1RGOjpp
bnN0YWxsU2lnbmFsSGFuZGxlcjsKK3VzaW5nIFdURjo6YWRkU2lnbmFsSGFuZGxlcjsKK3VzaW5n
IFdURjo6YWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcjsKIAogI2VuZGlmIC8vIFVTRShQVEhSRUFE
UykgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggOWFhYjE5ZmQxNjczMGExOTU4YjAwNTk4Y2Q2YjQ0Y2IwZGJhOWI2ZS4u
MWJjYzg0MTMxZWM2NDhlYWIxZmJiMzUxZTNhODU4NzM1MTY3NzU2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtODMsNiArODMsNyBAQAogI2luY2x1ZGUgIldl
YnNpdGVEYXRhVHlwZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL01lbW9yeVN0YXRpc3RpY3MuaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9B
WE9iamVjdENhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KQEAgLTQ2
Niw2ICs0NjcsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBTZXJ2aWNlV29ya2Vy
UHJvdmlkZXI6OnNldFNoYXJlZFByb3ZpZGVyKFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2lu
Z2xldG9uKCkpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgSlNDOjpX
YXNtOjplbmFibGVGYXN0TWVtb3J5KCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIFdlYlJlc291cmNl
TG9hZE9ic2VydmVyOjpzZXRTaG91bGRMb2dVc2VySW50ZXJhY3Rpb24ocGFyYW1ldGVycy5zaG91
bGRMb2dVc2VySW50ZXJhY3Rpb24pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmFhZDljNTM2NTdmYjYwYmNhYjY1NjUzYTk2NzBl
OGRhYjU1OGQ3MS4uODcxOTE5Yzk5ODJmYzZkNjVkM2JmZGNhNGRiMmYyMzg2NjFlYmRhYSAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDIwLTA2LTEyICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFNpZ25hbCBoYW5kbGVycyBzaG91bGQgaGF2ZSBhIHR3byBwaGFzZSBpbnN0
YWxsYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTMxNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1NpZ25hbHMuY3BwOgorICAgICAgICAoVEVTVCk6
CisKIDIwMjAtMDYtMTIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGVzdHMgZXhwZWN0aW5nIGEgY3Jhc2ggc2hvdWxkIHVzZSBhIHNpZ25hbCBoYW5k
bGVyIGluIHRoZSBKU0MgQ0xJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1NpZ25hbHMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U2lnbmFscy5jcHAKaW5kZXggNjgwYzlmNTk1MDE0ZDZiYmY4NjczNzNmMjNlZWIwMWUyZmU5MjAx
MC4uODgyM2I0ZTRkZmU4ZjI1YTJiMDk4M2ZhN2E3NGNkMGZlYTZmMmU4YiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU2lnbmFscy5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU2lnbmFscy5jcHAKQEAgLTQwLDExICs0MCwxMiBAQCBwdWJs
aWM6CiBURVNUKFNpZ25hbHMsIFNpZ25hbHNXb3JrT25FeGl0KQogewogICAgIHN0YXRpYyBib29s
IGhhbmRsZXJSYW4gPSBmYWxzZTsKLSAgICBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OlVz
ciwgW10gKFNpZ25hbCwgU2lnSW5mbyYsIFBsYXRmb3JtUmVnaXN0ZXJzJikgLT4gU2lnbmFsQWN0
aW9uIHsKKyAgICBhZGRTaWduYWxIYW5kbGVyKFNpZ25hbDo6VXNyLCBbXSAoU2lnbmFsLCBTaWdJ
bmZvJiwgUGxhdGZvcm1SZWdpc3RlcnMmKSAtPiBTaWduYWxBY3Rpb24gewogICAgICAgICBkYXRh
TG9nTG4oImhlcmUiKTsKICAgICAgICAgaGFuZGxlclJhbiA9IHRydWU7CiAgICAgICAgIHJldHVy
biBTaWduYWxBY3Rpb246OkhhbmRsZWQ7CiAgICAgfSk7CisgICAgYWN0aXZhdGVTaWduYWxIYW5k
bGVyc0ZvcihTaWduYWw6OlVzcik7CiAKICAgICBBdG9taWM8Ym9vbD4gcmVjZWl2ZXJTaG91bGRL
ZWVwUnVubmluZyh0cnVlKTsKICAgICBSZWY8VGhyZWFkPiByZWNlaXZlclRocmVhZCA9IChUaHJl
YWQ6OmNyZWF0ZSgiVGhyZWFkTWVzc2FnZSByZWNlaXZlciIsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401844</attachid>
            <date>2020-06-13 11:17:48 -0700</date>
            <delta_ts>2020-06-15 10:53:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213160-20200613111747.patch</filename>
            <type>text/plain</type>
            <size>17412</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyOTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
N2M1YTM5MmY1ZjIyZmQ0YTI4MDdhNWYzMzZiZDQ4NzU4ZTAyMWQyLi42MWRhZDM4ZjFhMGNhMjM2
MTRmZWVkODFmMjEyNDdiZTFmYzkwODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTaWduYWwgaGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2Ug
aW5zdGFsbGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjEzMTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoQ29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKToK
KyAgICAgICAgKGpzY21haW4pOgorICAgICAgICAqIHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5jcHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHJ1
bnRpbWUvVk1UcmFwcy5jcHA6CisgICAgICAgICogdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5j
cHA6CisgICAgICAgIChKU0M6Omluc3RhbGxDcmFzaEhhbmRsZXIpOgorICAgICAgICAqIHdhc20v
V2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OmVuYWJsZUZh
c3RNZW1vcnkpOgorICAgICAgICAoSlNDOjpXYXNtOjpwcmVwYXJlRmFzdE1lbW9yeSk6CisgICAg
ICAgICogd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmg6CisKIDIwMjAtMDYtMTIgIEtlaXRo
IE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgVGVzdHMgZXhwZWN0
aW5nIGEgY3Jhc2ggc2hvdWxkIHVzZSBhIHNpZ25hbCBoYW5kbGVyIGluIHRoZSBKU0MgQ0xJIHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYzAxMjY3NjgyZWZlZDNmZGRhY2E1ZWJiNTEzNGQxNTVjNDFhM2M3NC4uNTIz
MGI1OGM3YWY1ZDZjMTM1MzU2ZjUwY2FmODcxYjUzODcyNzhiZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBA
QAorMjAyMC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBTaWduYWwgaGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2UgaW5zdGFsbGF0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEz
MTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTExE
QiBkb2VzIG5vdCBsaWtlIGl0IHdoZW4gd2Ugc2luZ2xlIHN0ZXAgd2hpbGUgdGhlcmUgYXJlIG1h
Y2ggZXhjZXB0aW9uCisgICAgICAgIGhhbmRsZXJzIGluc3RhbGxlZCBiZWNhdXNlIExMREIgc3Vz
cGVuZHMgYWxsIHRoZSBub24tYWN0aXZlIHRocmVhZHMuCisgICAgICAgIFdpdGggTWFjaCBleGNl
cHRpb24gaGFuZGxlcnMgaW5zdGFsbGVkLCB0aGUgT1Mgd2lsbCBzZW5kIGEgbWFjaCBtZXNzYWdl
CisgICAgICAgIHRvIG91ciBleGNlcHRpb24gaGFuZGxlciBwb3J0LCB3aGljaCBpcyBkaWZmZXJl
bnQgdGhhbiB0aGUgYWN0aXZlIHRocmVhZC4KKyAgICAgICAgV2hlbiB0aGlzIGhhcHBlbnMsIHRo
ZSBjb21iaW5hdGlvbiBvZiBMTERCIGFuZCB0aGUgcHJvY2VzcyBKU0MgaXMgaW4gZWZmZWN0aXZl
bHkKKyAgICAgICAgZGVhZGxvY2suCisKKyAgICAgICAgVW5kZXIgb3VyIG5ldyBhcHByb2FjaCwg
d2UgZ28gYmFjayB0byBvbmx5IHRlbGxpbmcgdGhlIE9TIHdlIGNhcmUgYWJvdXQKKyAgICAgICAg
dGhlc2UgZXhjZXB0aW9ucyBsYXRlIGJ1dCBsb2NrIGRvd24gdGhlIGZ1bmN0aW9uIHBvaW50ZXJz
IGVhcmx5LiBUaGlzIHdheQorICAgICAgICBwcm9jZXNzZXMgdGhhdCBiZW5lZml0IGZyb20gb3Vy
IGV4Y2VwdGlvbiBoYW5kbGVyIGNvZGUgYXJlIGVhc2llciB0byBkZWJ1Zy4KKworICAgICAgICAq
IHd0Zi90aHJlYWRzL1NpZ25hbHMuY3BwOgorICAgICAgICAoV1RGOjphZGRTaWduYWxIYW5kbGVy
KToKKyAgICAgICAgKFdURjo6YWN0aXZhdGVTaWduYWxIYW5kbGVyc0Zvcik6CisgICAgICAgIChX
VEY6Omluc3RhbGxTaWduYWxIYW5kbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvdGhyZWFk
cy9TaWduYWxzLmg6CisKIDIwMjAtMDYtMTIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBh
cHBsZS5jb20+CiAKICAgICAgICAgVGVzdHMgZXhwZWN0aW5nIGEgY3Jhc2ggc2hvdWxkIHVzZSBh
IHNpZ25hbCBoYW5kbGVyIGluIHRoZSBKU0MgQ0xJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzgyMzVj
YjMzNjMwMzkxMGViOWY0YjM3Nzc4ODNhMWRiMTliMzU5ZC4uMWNiZTgxZjY2OGE0NGRlZDBmMDQ5
ZTVjMGRmODk2YWQ4ODliOGFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNi0x
MiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBTaWdu
YWwgaGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2UgaW5zdGFsbGF0aW9uLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMTYwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHV0IGJhY2sgb2xkIFdB
U00gZmFzdCBtZW1vcnkgaW5zdGFsbGF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlBy
b2Nlc3MpOgorCiAyMDIwLTA2LTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBBUEkgdGVzdHMgdG9sZXJhbnQgb2Ygb3VyIHJlbGF0
aXZlbHkgbmV3IHVzZSBvZiBXZWJQYWdlUHJveHk6OnByZWNvbm5lY3RUbwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcAppbmRleCA2ZmM1ZDRkMWY5Nzk4YWZhNmJkYWIyN2MyMjhmMGU4M2FjZWY1MjA2Li5iN2Iw
MjEzMGI3OTYyYzRlOGUwNzQ5MjA4ZDIzYzg2MTRjY2FlYmE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cApAQCAtNjYsNiArNjYsNyBAQAogI2luY2x1ZGUgIlR5cGVkQXJyYXlJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiVk1JbnNwZWN0b3IuaCIKICNpbmNsdWRlICJXYXNtQ2FwYWJpbGl0aWVzLmgiCisjaW5j
bHVkZSAiV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5oIgogI2luY2x1ZGUgIldhc21NZW1vcnkuaCIK
ICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtMjk4NiwxMSArMjk4
NywxNiBAQCB2b2lkIENvbW1hbmRMaW5lOjpwYXJzZUFyZ3VtZW50cyhpbnQgYXJnYywgY2hhcioq
IGFyZ3YpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFNpZ25hbEFjdGlvbjo6Rm9yY2VEZWZhdWx0
OwogICAgICAgICAgICAgfTsKIAotICAgICAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2ln
bmFsOjpJbGxlZ2FsSW5zdHJ1Y3Rpb24sIFNpZ25hbEhhbmRsZXIoZXhpdCkpOwotICAgICAgICAg
ICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpBY2Nlc3NGYXVsdCwgU2lnbmFsSGFuZGxl
cihleGl0KSk7Ci0gICAgICAgICAgICBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OkZsb2F0
aW5nUG9pbnQsIFNpZ25hbEhhbmRsZXIoZXhpdCkpOworICAgICAgICAgICAgYWRkU2lnbmFsSGFu
ZGxlcihTaWduYWw6OklsbGVnYWxJbnN0cnVjdGlvbiwgU2lnbmFsSGFuZGxlcihleGl0KSk7Cisg
ICAgICAgICAgICBhZGRTaWduYWxIYW5kbGVyKFNpZ25hbDo6QWNjZXNzRmF1bHQsIFNpZ25hbEhh
bmRsZXIoZXhpdCkpOworICAgICAgICAgICAgYWRkU2lnbmFsSGFuZGxlcihTaWduYWw6OkZsb2F0
aW5nUG9pbnQsIFNpZ25hbEhhbmRsZXIoZXhpdCkpOwogICAgICAgICAgICAgLy8gb25jZSB3ZSBk
byB0aGlzIGxsZGIgd29uJ3Qgd29yayBhbnltb3JlIGJlY2F1c2Ugd2Ugd2lsbCBleGl0IG9uIGFu
eSBicmVha3BvaW50cyBpdCBzZXRzLgotICAgICAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIo
U2lnbmFsOjpCcmVha3BvaW50LCBTaWduYWxIYW5kbGVyKGV4aXQpKTsKKyAgICAgICAgICAgIGFk
ZFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpCcmVha3BvaW50LCBTaWduYWxIYW5kbGVyKGV4aXQpKTsK
KworICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWduYWw6OklsbGVnYWxJ
bnN0cnVjdGlvbik7CisgICAgICAgICAgICBhY3RpdmF0ZVNpZ25hbEhhbmRsZXJzRm9yKFNpZ25h
bDo6QWNjZXNzRmF1bHQpOworICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihT
aWduYWw6OkZsb2F0aW5nUG9pbnQpOworICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVy
c0ZvcihTaWduYWw6OkJyZWFrcG9pbnQpOwogI2VuZGlmCiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgfQpAQCAtMzEyMiw2ICszMTI4LDEwIEBAIGludCBydW5KU0MoY29uc3QgQ29tbWFu
ZExpbmUmIG9wdGlvbnMsIGJvb2wgaXNXb3JrZXIsIGNvbnN0IEZ1bmMmIGZ1bmMpCiAgICAgV29y
a2VyIHdvcmtlcihXb3JrZXJzOjpzaW5nbGV0b24oKSk7CiAgICAgCiAgICAgVk0mIHZtID0gVk06
OmNyZWF0ZShMYXJnZUhlYXApLmxlYWtSZWYoKTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisg
ICAgV2FzbTo6ZW5hYmxlRmFzdE1lbW9yeSgpOworI2VuZGlmCisKICAgICBpbnQgcmVzdWx0Owog
ICAgIGJvb2wgc3VjY2VzcyA9IHRydWU7CiAgICAgR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5p
dGlhbGl6ZVRocmVhZGluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0
aWFsaXplVGhyZWFkaW5nLmNwcAppbmRleCBkYjJlZDJmYWU0MzBmZjJkN2I4MmNiMGNkMWI5YWE4
OTc0ZWNmODMzLi45ZmM3YjFmMzNlMjM0ZTk5ZDAxNjRkMGI1OTU2NjgxMGY1ZTNmOGEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5n
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhyZWFk
aW5nLmNwcApAQCAtOTUsNyArOTUsNyBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogI2Vu
ZGlmCiAgICAgICAgIFZNVHJhcHM6OmluaXRpYWxpemVTaWduYWxzKCk7CiAjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQotICAgICAgICBXYXNtOjplbmFibGVGYXN0TWVtb3J5KCk7CisgICAgICAgIFdh
c206OnByZXBhcmVGYXN0TWVtb3J5KCk7CiAjZW5kaWYKIAogICAgICAgICBXVEY6OmNvbXBpbGVy
RmVuY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJh
cHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKaW5kZXgg
YjMxOWQzMTRlYTk4MjBkODBjYWY0OTlhM2UwZDkyMTFiMDIzN2E3ZS4uNDBhYTc5N2MyYWVhZGQw
MmE4NDY3MjRjMTAyZDEwY2E3ZWZlMTc3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk1UcmFwcy5jcHAKQEAgLTE5MywxMyArMTkzLDE1IEBAIHB1YmxpYzoKICAgICBTaWduYWxT
ZW5kZXIoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgVk0mIHZtKQogICAgICAgICA6IEJh
c2UobG9ja2VyLCB2bS50cmFwcygpLm1fbG9jaywgdm0udHJhcHMoKS5tX2NvbmRpdGlvbi5jb3B5
UmVmKCkpCiAgICAgICAgICwgbV92bSh2bSkKLSAgICB7IH0KKyAgICB7CisgICAgICAgIGFjdGl2
YXRlU2lnbmFsSGFuZGxlcnNGb3IoU2lnbmFsOjpBY2Nlc3NGYXVsdCk7CisgICAgfQogCiAgICAg
c3RhdGljIHZvaWQgaW5pdGlhbGl6ZVNpZ25hbHMoKQogICAgIHsKICAgICAgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIG9uY2U7CiAgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKLSAg
ICAgICAgICAgIGluc3RhbGxTaWduYWxIYW5kbGVyKFNpZ25hbDo6QWNjZXNzRmF1bHQsIFtdIChT
aWduYWwsIFNpZ0luZm8mLCBQbGF0Zm9ybVJlZ2lzdGVycyYgcmVnaXN0ZXJzKSAtPiBTaWduYWxB
Y3Rpb24geworICAgICAgICAgICAgYWRkU2lnbmFsSGFuZGxlcihTaWduYWw6OkFjY2Vzc0ZhdWx0
LCBbXSAoU2lnbmFsLCBTaWdJbmZvJiwgUGxhdGZvcm1SZWdpc3RlcnMmIHJlZ2lzdGVycykgLT4g
U2lnbmFsQWN0aW9uIHsKICAgICAgICAgICAgICAgICBhdXRvIHNpZ25hbENvbnRleHQgPSBTaWdu
YWxDb250ZXh0Ojp0cnlDcmVhdGUocmVnaXN0ZXJzKTsKICAgICAgICAgICAgICAgICBpZiAoIXNp
Z25hbENvbnRleHQpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTaWduYWxBY3Rpb246Ok5v
dEhhbmRsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxs
Q3Jhc2hBbmFseXplci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jh
c2hBbmFseXplci5jcHAKaW5kZXggY2MyZmRjMDZmYTk3MTZlNjdhNTA3OGRiYzI1ZWQyNmQwMzZh
ZTdmYS4uMDY0NmJmMjkyY2U3YjUzZWFmZDU1ODhhOWY4OGVmOGQwZTI4OWJjNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9TaWdpbGxDcmFzaEFuYWx5emVyLmNwcApA
QCAtMTU2LDcgKzE1Niw3IEBAIHB1YmxpYzoKIHN0YXRpYyB2b2lkIGluc3RhbGxDcmFzaEhhbmRs
ZXIoKQogewogI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02NCkKLSAgICBpbnN0YWxsU2lnbmFs
SGFuZGxlcihTaWduYWw6OklsbGVnYWxJbnN0cnVjdGlvbiwgW10gKFNpZ25hbCwgU2lnSW5mbyYs
IFBsYXRmb3JtUmVnaXN0ZXJzJiByZWdpc3RlcnMpIHsKKyAgICBhZGRTaWduYWxIYW5kbGVyKFNp
Z25hbDo6SWxsZWdhbEluc3RydWN0aW9uLCBbXSAoU2lnbmFsLCBTaWdJbmZvJiwgUGxhdGZvcm1S
ZWdpc3RlcnMmIHJlZ2lzdGVycykgewogICAgICAgICBhdXRvIHNpZ25hbENvbnRleHQgPSBTaWdu
YWxDb250ZXh0Ojp0cnlDcmVhdGUocmVnaXN0ZXJzKTsKICAgICAgICAgaWYgKCFzaWduYWxDb250
ZXh0KQogICAgICAgICAgICAgcmV0dXJuIFNpZ25hbEFjdGlvbjo6Tm90SGFuZGxlZDsKQEAgLTE2
OSw2ICsxNjksNyBAQCBzdGF0aWMgdm9pZCBpbnN0YWxsQ3Jhc2hIYW5kbGVyKCkKICAgICAgICAg
YW5hbHl6ZXIuYW5hbHl6ZSgqc2lnbmFsQ29udGV4dCk7CiAgICAgICAgIHJldHVybiBTaWduYWxB
Y3Rpb246Ok5vdEhhbmRsZWQ7CiAgICAgfSk7CisgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0Zv
cihTaWduYWw6OklsbGVnYWxJbnN0cnVjdGlvbik7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcAppbmRl
eCBkN2M0NDBiMTM4YjY0NGFjZWU5ODc0NWI1NDY3M2M4MDI1NWQ5NDJiLi5iZTg2NGNhNjU4OGY0
OTY1MWFmYWQxY2Q3MjZkNDIwNWQyZjBmMjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcApAQCAtMTEzLDEyICsxMTMs
MjggQEAgdm9pZCBlbmFibGVGYXN0TWVtb3J5KCkKICAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VX
ZWJBc3NlbWJseUZhc3RNZW1vcnkoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBp
bnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OkFjY2Vzc0ZhdWx0LCBbXSAoU2lnbmFsIHNpZ25h
bCwgU2lnSW5mbyYgc2lnSW5mbywgUGxhdGZvcm1SZWdpc3RlcnMmIHVjb250ZXh0KSB7Ci0gICAg
ICAgICAgICByZXR1cm4gdHJhcEhhbmRsZXIoc2lnbmFsLCBzaWdJbmZvLCB1Y29udGV4dCk7Ci0g
ICAgICAgIH0pOworICAgICAgICBhY3RpdmF0ZVNpZ25hbEhhbmRsZXJzRm9yKFNpZ25hbDo6QWNj
ZXNzRmF1bHQpOwogCiAgICAgICAgIGZhc3RIYW5kbGVySW5zdGFsbGVkID0gdHJ1ZTsKICAgICB9
KTsKKyNlbmRpZgorfQorCit2b2lkIHByZXBhcmVGYXN0TWVtb3J5KCkKK3sKKyNpZiBFTkFCTEUo
V0VCQVNTRU1CTFlfRkFTVF9NRU1PUlkpCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7
CisgICAgc3RkOjpjYWxsX29uY2Uob25jZSwgW10geworICAgICAgICBpZiAoIVdhc206OmlzU3Vw
cG9ydGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCFPcHRpb25zOjp1
c2VXZWJBc3NlbWJseUZhc3RNZW1vcnkoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBhZGRTaWduYWxIYW5kbGVyKFNpZ25hbDo6QWNjZXNzRmF1bHQsIFtdIChTaWduYWwgc2lnbmFs
LCBTaWdJbmZvJiBzaWdJbmZvLCBQbGF0Zm9ybVJlZ2lzdGVycyYgdWNvbnRleHQpIHsKKyAgICAg
ICAgICAgIHJldHVybiB0cmFwSGFuZGxlcihzaWduYWwsIHNpZ0luZm8sIHVjb250ZXh0KTsKKyAg
ICAgICAgfSk7CisgICAgfSk7CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZX0ZBU1RfTUVN
T1JZKQogfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUZhdWx0U2lnbmFsSGFuZGxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZh
dWx0U2lnbmFsSGFuZGxlci5oCmluZGV4IDc4M2I2YTZhNTJiMTExZWIwYTZkZWEyNTE3MzA4ZTZh
YTMyZTlkOGQuLjE3MzUxYmM4NzhlOWU2OTIxYTg3ZGUyMmFjYTA1M2RjYTY3OWUwNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVy
LmgKQEAgLTMyLDYgKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgV2FzbSB7CiAK
IGJvb2wgZmFzdE1lbW9yeUVuYWJsZWQoKTsKK0pTX0VYUE9SVF9QUklWQVRFIHZvaWQgcHJlcGFy
ZUZhc3RNZW1vcnkoKTsKIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZW5hYmxlRmFzdE1lbW9yeSgp
OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdGhyZWFkcy9TaWduYWxzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5j
cHAKaW5kZXggOGUxMTUwYjdhZGZhZDBmYzhmMjc3NWYyNDUwZTViNjEyOGYxYzIwZS4uMjljNWRh
NzdkODliYzQxNDVhYmIzZTUyMGY0MjgwMjQ4OWZiMGM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdGhyZWFkcy9TaWduYWxzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL1Np
Z25hbHMuY3BwCkBAIC0yMzUsMTEgKzIzNSwxMiBAQCB2b2lkIGhhbmRsZVNpZ25hbHNXaXRoTWFj
aCgpCiAgICAgZ193dGZDb25maWcuc2lnbmFsSGFuZGxlcnMudXNlTWFjaCA9IHRydWU7CiB9CiAK
K3N0YXRpYyBleGNlcHRpb25fbWFza190IGFjdGl2ZUV4Y2VwdGlvbnM7CiBpbmxpbmUgdm9pZCBz
ZXRFeGNlcHRpb25Qb3J0cyhjb25zdCBBYnN0cmFjdExvY2tlciYgdGhyZWFkR3JvdXBMb2NrZXIs
IFRocmVhZCYgdGhyZWFkKQogewogICAgIFVOVVNFRF9QQVJBTSh0aHJlYWRHcm91cExvY2tlcik7
CiAgICAgU2lnbmFsSGFuZGxlcnMmIGhhbmRsZXJzID0gZ193dGZDb25maWcuc2lnbmFsSGFuZGxl
cnM7Ci0gICAga2Vybl9yZXR1cm5fdCByZXN1bHQgPSB0aHJlYWRfc2V0X2V4Y2VwdGlvbl9wb3J0
cyh0aHJlYWQubWFjaFRocmVhZCgpLCBoYW5kbGVycy5hY3RpdmVFeGNlcHRpb25zLCBoYW5kbGVy
cy5leGNlcHRpb25Qb3J0LCBFWENFUFRJT05fU1RBVEUgfCBNQUNIX0VYQ0VQVElPTl9DT0RFUywg
TUFDSElORV9USFJFQURfU1RBVEUpOworICAgIGtlcm5fcmV0dXJuX3QgcmVzdWx0ID0gdGhyZWFk
X3NldF9leGNlcHRpb25fcG9ydHModGhyZWFkLm1hY2hUaHJlYWQoKSwgYWN0aXZlRXhjZXB0aW9u
cywgaGFuZGxlcnMuZXhjZXB0aW9uUG9ydCwgRVhDRVBUSU9OX1NUQVRFIHwgTUFDSF9FWENFUFRJ
T05fQ09ERVMsIE1BQ0hJTkVfVEhSRUFEX1NUQVRFKTsKICAgICBpZiAocmVzdWx0ICE9IEtFUk5f
U1VDQ0VTUykgewogICAgICAgICBkYXRhTG9nTG4oInRocmVhZCBzZXQgcG9ydCBmYWlsZWQgZHVl
IHRvICIsIG1hY2hfZXJyb3Jfc3RyaW5nKHJlc3VsdCkpOwogICAgICAgICBDUkFTSCgpOwpAQCAt
MjY1LDExICsyNjYsOCBAQCB2b2lkIHJlZ2lzdGVyVGhyZWFkRm9yTWFjaEV4Y2VwdGlvbkhhbmRs
aW5nKFRocmVhZCYgdGhyZWFkKQogICAgICAgICBzZXRFeGNlcHRpb25Qb3J0cyhsb2NrZXIsIHRo
cmVhZCk7CiB9CiAKLSNlbHNlCi1zdGF0aWMgY29uc3RleHByIGJvb2wgdXNlTWFjaCA9IGZhbHNl
OwogI2VuZGlmIC8vIEhBVkUoTUFDSF9FWENFUFRJT05TKQogCi0KIGlubGluZSBzaXplX3Qgb2Zm
c2V0Rm9yU3lzdGVtU2lnbmFsKGludCBzaWcpCiB7CiAgICAgU2lnbmFsIHNpZ25hbCA9IGZyb21T
eXN0ZW1TaWduYWwoc2lnKTsKQEAgLTI3OCwyNSArMjc2LDIxIEBAIGlubGluZSBzaXplX3Qgb2Zm
c2V0Rm9yU3lzdGVtU2lnbmFsKGludCBzaWcpCiAKIHN0YXRpYyB2b2lkIGpzY1NpZ25hbEhhbmRs
ZXIoaW50LCBzaWdpbmZvX3QqLCB2b2lkKik7CiAKLXZvaWQgaW5zdGFsbFNpZ25hbEhhbmRsZXIo
U2lnbmFsIHNpZ25hbCwgU2lnbmFsSGFuZGxlciYmIGhhbmRsZXIpCit2b2lkIGFkZFNpZ25hbEhh
bmRsZXIoU2lnbmFsIHNpZ25hbCwgU2lnbmFsSGFuZGxlciYmIGhhbmRsZXIpCiB7CiAgICAgQ29u
ZmlnOjpBc3NlcnROb3RGcm96ZW5TY29wZSBhc3NlcnRTY29wZTsKICAgICBTaWduYWxIYW5kbGVy
cyYgaGFuZGxlcnMgPSBnX3d0ZkNvbmZpZy5zaWduYWxIYW5kbGVyczsKICAgICBBU1NFUlQoc2ln
bmFsIDwgU2lnbmFsOjpVbmtub3duKTsKLSNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKICAgICBB
U1NFUlQoIWhhbmRsZXJzLnVzZU1hY2ggfHwgc2lnbmFsICE9IFNpZ25hbDo6VXNyKTsKIAorI2lm
IEhBVkUoTUFDSF9FWENFUFRJT05TKQogICAgIGlmIChoYW5kbGVycy51c2VNYWNoKQogICAgICAg
ICBzdGFydE1hY2hFeGNlcHRpb25IYW5kbGVyVGhyZWFkKCk7CiAjZW5kaWYKIAogICAgIHN0YXRp
YyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplT25jZUZsYWdzW3N0YXRpY19jYXN0PHNpemVfdD4o
U2lnbmFsOjpOdW1iZXJPZlNpZ25hbHMpXTsKICAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXpl
T25jZUZsYWdzW3N0YXRpY19jYXN0PHNpemVfdD4oc2lnbmFsKV0sIFsmXSB7Ci0gICAgICAgIENv
bmZpZzo6QXNzZXJ0Tm90RnJvemVuU2NvcGUgYXNzZXJ0U2NvcGU7Ci0jaWYgSEFWRShNQUNIX0VY
Q0VQVElPTlMpCi0gICAgICAgIGJvb2wgdXNlTWFjaCA9IGhhbmRsZXJzLnVzZU1hY2g7Ci0jZW5k
aWYKLSAgICAgICAgaWYgKCF1c2VNYWNoKSB7CisgICAgICAgIGlmICghaGFuZGxlcnMudXNlTWFj
aCkgewogICAgICAgICAgICAgc3RydWN0IHNpZ2FjdGlvbiBhY3Rpb247CiAgICAgICAgICAgICBh
Y3Rpb24uc2Ffc2lnYWN0aW9uID0ganNjU2lnbmFsSGFuZGxlcjsKICAgICAgICAgICAgIGF1dG8g
cmVzdWx0ID0gc2lnZmlsbHNldCgmYWN0aW9uLnNhX21hc2spOwpAQCAtMzE0LDExICszMDgsMTkg
QEAgdm9pZCBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWwgc2lnbmFsLCBTaWduYWxIYW5kbGVy
JiYgaGFuZGxlcikKICAgICB9KTsKIAogICAgIGhhbmRsZXJzLmFkZChzaWduYWwsIFdURk1vdmUo
aGFuZGxlcikpOworfQogCit2b2lkIGFjdGl2YXRlU2lnbmFsSGFuZGxlcnNGb3IoU2lnbmFsIHNp
Z25hbCkKK3sKKyAgICBVTlVTRURfUEFSQU0oc2lnbmFsKTsKICNpZiBIQVZFKE1BQ0hfRVhDRVBU
SU9OUykKKyAgICBjb25zdCBTaWduYWxIYW5kbGVycyYgaGFuZGxlcnMgPSBnX3d0ZkNvbmZpZy5z
aWduYWxIYW5kbGVyczsKKyAgICBBU1NFUlQoc2lnbmFsIDwgU2lnbmFsOjpVbmtub3duKTsKKyAg
ICBBU1NFUlQoIWhhbmRsZXJzLnVzZU1hY2ggfHwgc2lnbmFsICE9IFNpZ25hbDo6VXNyKTsKKwog
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soYWN0aXZlVGhyZWFkcygpLmdldExvY2soKSk7CiAg
ICAgaWYgKGhhbmRsZXJzLnVzZU1hY2gpIHsKLSAgICAgICAgaGFuZGxlcnMuYWN0aXZlRXhjZXB0
aW9ucyB8PSB0b01hY2hNYXNrKHNpZ25hbCk7CisgICAgICAgIGFjdGl2ZUV4Y2VwdGlvbnMgfD0g
dG9NYWNoTWFzayhzaWduYWwpOwogCiAgICAgICAgIGZvciAoYXV0byYgdGhyZWFkIDogYWN0aXZl
VGhyZWFkcygpLnRocmVhZHMobG9ja2VyKSkKICAgICAgICAgICAgIHNldEV4Y2VwdGlvblBvcnRz
KGxvY2tlciwgdGhyZWFkLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RocmVh
ZHMvU2lnbmFscy5oIGIvU291cmNlL1dURi93dGYvdGhyZWFkcy9TaWduYWxzLmgKaW5kZXggMTZl
YWU5N2JmODVkYjk1NDViODVhOWVhMjRmZDIwZDcwYmFhZTBkMC4uOGUzZTZjMWFkODM4YTkzMWNl
NTdiNzlmYzQ3ZmYxMGFkYTI1M2RhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGhyZWFk
cy9TaWduYWxzLmgKKysrIGIvU291cmNlL1dURi93dGYvdGhyZWFkcy9TaWduYWxzLmgKQEAgLTEx
MSwxOSArMTExLDIzIEBAIHN0cnVjdCBTaWduYWxIYW5kbGVycyB7CiAgICAgbWFjaF9wb3J0X3Qg
ZXhjZXB0aW9uUG9ydDsKICAgICBleGNlcHRpb25fbWFza190IGFjdGl2ZUV4Y2VwdGlvbnM7CiAg
ICAgYm9vbCB1c2VNYWNoOworI2Vsc2UKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdXNlTWFj
aCA9IGZhbHNlOwogI2VuZGlmCiAgICAgdWludDhfdCBudW1iZXJPZkhhbmRsZXJzW251bWJlck9m
U2lnbmFsc107CiAgICAgU2lnbmFsSGFuZGxlck1lbW9yeSBoYW5kbGVyc1tudW1iZXJPZlNpZ25h
bHNdW21heE51bWJlck9mSGFuZGxlcnNdOwogICAgIHN0cnVjdCBzaWdhY3Rpb24gb2xkQWN0aW9u
c1tudW1iZXJPZlNpZ25hbHNdOwogfTsKIAotLy8gQ2FsbCB0aGlzIG1ldGhvZCB3aGVuZXZlciB5
b3Ugd2FudCB0byBpbnN0YWxsIGEgc2lnbmFsIGhhbmRsZXIuIFRoaXMgZnVuY3Rpb24gbmVlZHMg
dG8gYmUgY2FsbGVkCisvLyBDYWxsIHRoaXMgbWV0aG9kIHdoZW5ldmVyIHlvdSB3YW50IHRvIGFk
ZCBhIHNpZ25hbCBoYW5kbGVyLiBUaGlzIGZ1bmN0aW9uIG5lZWRzIHRvIGJlIGNhbGxlZAogLy8g
YmVmb3JlIGdfd3RmQ29uZmlnIGlzIGZyb3plbi4gQWZ0ZXIgdGhlIGdfd3RmQ29uZmlnIGlzIGZy
b3plbiwgbm8gYWRkaXRpb25hbCBzaWduYWwgaGFuZGxlcnMgbWF5CiAvLyBiZSBpbnN0YWxsZWQu
IEFueSBhdHRlbXB0IHRvIGRvIHNvIHdpbGwgdHJpZ2dlciBhIGNyYXNoLgogLy8gTm90ZTogWW91
ciBzaWduYWwgaGFuZGxlciB3aWxsIGJlIGNhbGxlZCBldmVyeSB0aW1lIHRoZSBoYW5kbGVyIGZv
ciB0aGUgZGVzaXJlZCBzaWduYWwgaXMgY2FsbGVkLgogLy8gVGh1cyBpdCBpcyB5b3VyIHJlc3Bv
bnNpYmlsaXR5IHRvIGRpc2Nlcm4gaWYgdGhlIHNpZ25hbCBmaXJlZCB3YXMgeW91cnMuCi0vLyBU
aGlzIGZ1bmN0aW9uIGlzIGEgb25lIHdheSBzdHJlZXQgaS5lLiBvbmNlIGluc3RhbGxlZCwgYSBz
aWduYWwgaGFuZGxlciBjYW5ub3QgYmUgdW5pbnN0YWxsZWQuCi1XVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWwsIFNpZ25hbEhhbmRsZXImJik7CisvLyBU
aGVzZSBmdW5jdGlvbnMgYXJlIGEgb25lIHdheSBzdHJlZXQgaS5lLiBvbmNlIGluc3RhbGxlZCwg
YSBzaWduYWwgaGFuZGxlciBjYW5ub3QgYmUgdW5pbnN0YWxsZWQKKy8vIGFuZCBvbmNlIGNvbW1p
dGVkIHRoZXkgY2FuJ3QgYmUgdHVybmVkIG9mZi4KK1dURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFk
ZFNpZ25hbEhhbmRsZXIoU2lnbmFsLCBTaWduYWxIYW5kbGVyJiYpOworV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWduYWwpOwogCiAKICNpZiBIQVZF
KE1BQ0hfRVhDRVBUSU9OUykKQEAgLTE0Nyw2ICsxNTEsNyBAQCB1c2luZyBXVEY6OnRvU3lzdGVt
U2lnbmFsOwogdXNpbmcgV1RGOjpmcm9tU3lzdGVtU2lnbmFsOwogdXNpbmcgV1RGOjpTaWduYWxB
Y3Rpb247CiB1c2luZyBXVEY6OlNpZ25hbEhhbmRsZXI7Ci11c2luZyBXVEY6Omluc3RhbGxTaWdu
YWxIYW5kbGVyOwordXNpbmcgV1RGOjphZGRTaWduYWxIYW5kbGVyOwordXNpbmcgV1RGOjphY3Rp
dmF0ZVNpZ25hbEhhbmRsZXJzRm9yOwogCiAjZW5kaWYgLy8gVVNFKFBUSFJFQURTKSAmJiBIQVZF
KE1BQ0hJTkVfQ09OVEVYVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApp
bmRleCA5YWFiMTlmZDE2NzMwYTE5NThiMDA1OThjZDZiNDRjYjBkYmE5YjZlLi4xYmNjODQxMzFl
YzY0OGVhYjFmYmIzNTFlM2E4NTg3MzUxNjc3NTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCkBAIC04Myw2ICs4Myw3IEBACiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFU
eXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvTWVtb3J5U3RhdGlzdGljcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FYT2JqZWN0Q2Fj
aGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oPgpAQCAtNDY2LDYgKzQ2Nywx
MCBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6
c2V0U2hhcmVkUHJvdmlkZXIoV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKSk7
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICBKU0M6Oldhc206OmVuYWJs
ZUZhc3RNZW1vcnkoKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgV2ViUmVzb3VyY2VMb2FkT2JzZXJ2
ZXI6OnNldFNob3VsZExvZ1VzZXJJbnRlcmFjdGlvbihwYXJhbWV0ZXJzLnNob3VsZExvZ1VzZXJJ
bnRlcmFjdGlvbik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBiYWFkOWM1MzY1N2ZiNjBiY2FiNjU2NTNhOTY3MGU4ZGFiNTU4ZDcx
Li44NzE5MTljOTk4MmZjNmQ2NWQzYmZkY2E0ZGIyZjIzODY2MWViZGFhIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjAtMDYtMTIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAgICAg
ICAgU2lnbmFsIGhhbmRsZXJzIHNob3VsZCBoYXZlIGEgdHdvIHBoYXNlIGluc3RhbGxhdGlvbi4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzE2MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU2lnbmFscy5jcHA6CisgICAgICAgIChURVNUKToKKwogMjAyMC0w
Ni0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBU
ZXN0cyBleHBlY3RpbmcgYSBjcmFzaCBzaG91bGQgdXNlIGEgc2lnbmFsIGhhbmRsZXIgaW4gdGhl
IEpTQyBDTEkgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU2lnbmFscy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TaWduYWxzLmNw
cAppbmRleCA2ODBjOWY1OTUwMTRkNmJiZjg2NzM3M2YyM2VlYjAxZTJmZTkyMDEwLi44ODIzYjRl
NGRmZThmMjVhMmIwOTgzZmE3YTc0Y2QwZmVhNmYyZThiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9TaWduYWxzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TaWduYWxzLmNwcApAQCAtNDAsMTEgKzQwLDEyIEBAIHB1YmxpYzoKIFRFU1Qo
U2lnbmFscywgU2lnbmFsc1dvcmtPbkV4aXQpCiB7CiAgICAgc3RhdGljIGJvb2wgaGFuZGxlclJh
biA9IGZhbHNlOwotICAgIGluc3RhbGxTaWduYWxIYW5kbGVyKFNpZ25hbDo6VXNyLCBbXSAoU2ln
bmFsLCBTaWdJbmZvJiwgUGxhdGZvcm1SZWdpc3RlcnMmKSAtPiBTaWduYWxBY3Rpb24geworICAg
IGFkZFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpVc3IsIFtdIChTaWduYWwsIFNpZ0luZm8mLCBQbGF0
Zm9ybVJlZ2lzdGVycyYpIC0+IFNpZ25hbEFjdGlvbiB7CiAgICAgICAgIGRhdGFMb2dMbigiaGVy
ZSIpOwogICAgICAgICBoYW5kbGVyUmFuID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuIFNpZ25hbEFj
dGlvbjo6SGFuZGxlZDsKICAgICB9KTsKKyAgICBhY3RpdmF0ZVNpZ25hbEhhbmRsZXJzRm9yKFNp
Z25hbDo6VXNyKTsKIAogICAgIEF0b21pYzxib29sPiByZWNlaXZlclNob3VsZEtlZXBSdW5uaW5n
KHRydWUpOwogICAgIFJlZjxUaHJlYWQ+IHJlY2VpdmVyVGhyZWFkID0gKFRocmVhZDo6Y3JlYXRl
KCJUaHJlYWRNZXNzYWdlIHJlY2VpdmVyIiwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401910</attachid>
            <date>2020-06-15 10:53:50 -0700</date>
            <delta_ts>2020-06-15 11:30:03 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-213160-20200615105349.patch</filename>
            <type>text/plain</type>
            <size>17626</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyOTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
N2M1YTM5MmY1ZjIyZmQ0YTI4MDdhNWYzMzZiZDQ4NzU4ZTAyMWQyLi5lYzQ4NmRlM2QxMDg1MTM4
OTI1NWZmZGFhYmEzMmNlOTExNjYwMDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTaWduYWwgaGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2Ug
aW5zdGFsbGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjEzMTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAgICAg
KiBqc2MuY3BwOgorICAgICAgICAoQ29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKToKKyAgICAg
ICAgKGpzY21haW4pOgorICAgICAgICAqIHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5jcHA6
CisgICAgICAgIChKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHJ1bnRpbWUv
Vk1UcmFwcy5jcHA6CisgICAgICAgICogdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHA6Cisg
ICAgICAgIChKU0M6Omluc3RhbGxDcmFzaEhhbmRsZXIpOgorICAgICAgICAqIHdhc20vV2FzbUZh
dWx0U2lnbmFsSGFuZGxlci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OmVuYWJsZUZhc3RNZW1v
cnkpOgorICAgICAgICAoSlNDOjpXYXNtOjpwcmVwYXJlRmFzdE1lbW9yeSk6CisgICAgICAgICog
d2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmg6CisKIDIwMjAtMDYtMTIgIEtlaXRoIE1pbGxl
ciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgVGVzdHMgZXhwZWN0aW5nIGEg
Y3Jhc2ggc2hvdWxkIHVzZSBhIHNpZ25hbCBoYW5kbGVyIGluIHRoZSBKU0MgQ0xJIHByb2Nlc3MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggYzAxMjY3NjgyZWZlZDNmZGRhY2E1ZWJiNTEzNGQxNTVjNDFhM2M3NC4uNTI0MTJkMGI2
Yzk4YjA5ODgwYmQ5N2I2NTdlYWI4ZDFhYjkxZmVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAy
MC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBTaWduYWwgaGFuZGxlcnMgc2hvdWxkIGhhdmUgYSB0d28gcGhhc2UgaW5zdGFsbGF0aW9uLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMTYwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAgICAgTExEQiBkb2VzIG5vdCBs
aWtlIGl0IHdoZW4gd2Ugc2luZ2xlIHN0ZXAgd2hpbGUgdGhlcmUgYXJlIG1hY2ggZXhjZXB0aW9u
CisgICAgICAgIGhhbmRsZXJzIGluc3RhbGxlZCBiZWNhdXNlIExMREIgc3VzcGVuZHMgYWxsIHRo
ZSBub24tYWN0aXZlIHRocmVhZHMuCisgICAgICAgIFdpdGggTWFjaCBleGNlcHRpb24gaGFuZGxl
cnMgaW5zdGFsbGVkLCB0aGUgT1Mgd2lsbCBzZW5kIGEgbWFjaCBtZXNzYWdlCisgICAgICAgIHRv
IG91ciBleGNlcHRpb24gaGFuZGxlciBwb3J0LCB3aGljaCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUg
YWN0aXZlIHRocmVhZC4KKyAgICAgICAgV2hlbiB0aGlzIGhhcHBlbnMsIHRoZSBjb21iaW5hdGlv
biBvZiBMTERCIGFuZCB0aGUgcHJvY2VzcyBKU0MgaXMgaW4gZWZmZWN0aXZlbHkKKyAgICAgICAg
ZGVhZGxvY2suCisKKyAgICAgICAgVW5kZXIgb3VyIG5ldyBhcHByb2FjaCwgd2UgZ28gYmFjayB0
byBvbmx5IHRlbGxpbmcgdGhlIE9TIHdlIGNhcmUgYWJvdXQKKyAgICAgICAgdGhlc2UgZXhjZXB0
aW9ucyBsYXRlIGJ1dCBsb2NrIGRvd24gdGhlIGZ1bmN0aW9uIHBvaW50ZXJzIGVhcmx5LiBUaGlz
IHdheQorICAgICAgICBwcm9jZXNzZXMgdGhhdCBiZW5lZml0IGZyb20gb3VyIGV4Y2VwdGlvbiBo
YW5kbGVyIGNvZGUgYXJlIGVhc2llciB0byBkZWJ1Zy4KKworICAgICAgICAqIHd0Zi90aHJlYWRz
L1NpZ25hbHMuY3BwOgorICAgICAgICAoV1RGOjphZGRTaWduYWxIYW5kbGVyKToKKyAgICAgICAg
KFdURjo6YWN0aXZhdGVTaWduYWxIYW5kbGVyc0Zvcik6CisgICAgICAgIChXVEY6Omluc3RhbGxT
aWduYWxIYW5kbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvdGhyZWFkcy9TaWduYWxzLmg6
CisKIDIwMjAtMDYtMTIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGVzdHMgZXhwZWN0aW5nIGEgY3Jhc2ggc2hvdWxkIHVzZSBhIHNpZ25hbCBoYW5k
bGVyIGluIHRoZSBKU0MgQ0xJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzgyMzVjYjMzNjMwMzkxMGVi
OWY0YjM3Nzc4ODNhMWRiMTliMzU5ZC4uNDUzZmExM2M0ZTE2YWFmZjUyNDllMDA0YzA3Y2M5NjAz
YjJhOTMxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNi0xMiAgS2VpdGggTWls
bGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBTaWduYWwgaGFuZGxlcnMg
c2hvdWxkIGhhdmUgYSB0d28gcGhhc2UgaW5zdGFsbGF0aW9uLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMTYwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTWFyayBMYW0uCisKKyAgICAgICAgUHV0IGJhY2sgb2xkIFdBU00gZmFzdCBtZW1vcnkgaW5z
dGFsbGF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTA2
LTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgTWFrZSBBUEkgdGVzdHMgdG9sZXJhbnQgb2Ygb3VyIHJlbGF0aXZlbHkgbmV3IHVzZSBvZiBX
ZWJQYWdlUHJveHk6OnByZWNvbm5lY3RUbwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCA2ZmM1ZDRk
MWY5Nzk4YWZhNmJkYWIyN2MyMjhmMGU4M2FjZWY1MjA2Li5iN2IwMjEzMGI3OTYyYzRlOGUwNzQ5
MjA4ZDIzYzg2MTRjY2FlYmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtNjYsNiArNjYsNyBA
QAogI2luY2x1ZGUgIlR5cGVkQXJyYXlJbmxpbmVzLmgiCiAjaW5jbHVkZSAiVk1JbnNwZWN0b3Iu
aCIKICNpbmNsdWRlICJXYXNtQ2FwYWJpbGl0aWVzLmgiCisjaW5jbHVkZSAiV2FzbUZhdWx0U2ln
bmFsSGFuZGxlci5oIgogI2luY2x1ZGUgIldhc21NZW1vcnkuaCIKICNpbmNsdWRlIDxzdGRpby5o
PgogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtMjk4NiwxMSArMjk4NywxNiBAQCB2b2lkIENvbW1h
bmRMaW5lOjpwYXJzZUFyZ3VtZW50cyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIFNpZ25hbEFjdGlvbjo6Rm9yY2VEZWZhdWx0OwogICAgICAgICAgICAgfTsK
IAotICAgICAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpJbGxlZ2FsSW5zdHJ1
Y3Rpb24sIFNpZ25hbEhhbmRsZXIoZXhpdCkpOwotICAgICAgICAgICAgaW5zdGFsbFNpZ25hbEhh
bmRsZXIoU2lnbmFsOjpBY2Nlc3NGYXVsdCwgU2lnbmFsSGFuZGxlcihleGl0KSk7Ci0gICAgICAg
ICAgICBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OkZsb2F0aW5nUG9pbnQsIFNpZ25hbEhh
bmRsZXIoZXhpdCkpOworICAgICAgICAgICAgYWRkU2lnbmFsSGFuZGxlcihTaWduYWw6OklsbGVn
YWxJbnN0cnVjdGlvbiwgU2lnbmFsSGFuZGxlcihleGl0KSk7CisgICAgICAgICAgICBhZGRTaWdu
YWxIYW5kbGVyKFNpZ25hbDo6QWNjZXNzRmF1bHQsIFNpZ25hbEhhbmRsZXIoZXhpdCkpOworICAg
ICAgICAgICAgYWRkU2lnbmFsSGFuZGxlcihTaWduYWw6OkZsb2F0aW5nUG9pbnQsIFNpZ25hbEhh
bmRsZXIoZXhpdCkpOwogICAgICAgICAgICAgLy8gb25jZSB3ZSBkbyB0aGlzIGxsZGIgd29uJ3Qg
d29yayBhbnltb3JlIGJlY2F1c2Ugd2Ugd2lsbCBleGl0IG9uIGFueSBicmVha3BvaW50cyBpdCBz
ZXRzLgotICAgICAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpCcmVha3BvaW50
LCBTaWduYWxIYW5kbGVyKGV4aXQpKTsKKyAgICAgICAgICAgIGFkZFNpZ25hbEhhbmRsZXIoU2ln
bmFsOjpCcmVha3BvaW50LCBTaWduYWxIYW5kbGVyKGV4aXQpKTsKKworICAgICAgICAgICAgYWN0
aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWduYWw6OklsbGVnYWxJbnN0cnVjdGlvbik7CisgICAg
ICAgICAgICBhY3RpdmF0ZVNpZ25hbEhhbmRsZXJzRm9yKFNpZ25hbDo6QWNjZXNzRmF1bHQpOwor
ICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWduYWw6OkZsb2F0aW5nUG9p
bnQpOworICAgICAgICAgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWduYWw6OkJyZWFr
cG9pbnQpOwogI2VuZGlmCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtMzEy
Miw2ICszMTI4LDEwIEBAIGludCBydW5KU0MoY29uc3QgQ29tbWFuZExpbmUmIG9wdGlvbnMsIGJv
b2wgaXNXb3JrZXIsIGNvbnN0IEZ1bmMmIGZ1bmMpCiAgICAgV29ya2VyIHdvcmtlcihXb3JrZXJz
OjpzaW5nbGV0b24oKSk7CiAgICAgCiAgICAgVk0mIHZtID0gVk06OmNyZWF0ZShMYXJnZUhlYXAp
LmxlYWtSZWYoKTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgV2FzbTo6ZW5hYmxlRmFz
dE1lbW9yeSgpOworI2VuZGlmCisKICAgICBpbnQgcmVzdWx0OwogICAgIGJvb2wgc3VjY2VzcyA9
IHRydWU7CiAgICAgR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBudWxscHRyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmNw
cAppbmRleCBkYjJlZDJmYWU0MzBmZjJkN2I4MmNiMGNkMWI5YWE4OTc0ZWNmODMzLi45ZmM3YjFm
MzNlMjM0ZTk5ZDAxNjRkMGI1OTU2NjgxMGY1ZTNmOGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmNwcApAQCAtOTUsNyAr
OTUsNyBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogI2VuZGlmCiAgICAgICAgIFZNVHJh
cHM6OmluaXRpYWxpemVTaWduYWxzKCk7CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgICAg
ICBXYXNtOjplbmFibGVGYXN0TWVtb3J5KCk7CisgICAgICAgIFdhc206OnByZXBhcmVGYXN0TWVt
b3J5KCk7CiAjZW5kaWYKIAogICAgICAgICBXVEY6OmNvbXBpbGVyRmVuY2UoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKaW5kZXggYjMxOWQzMTRlYTk4MjBkODBj
YWY0OTlhM2UwZDkyMTFiMDIzN2E3ZS4uNDBhYTc5N2MyYWVhZGQwMmE4NDY3MjRjMTAyZDEwY2E3
ZWZlMTc3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFw
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKQEAg
LTE5MywxMyArMTkzLDE1IEBAIHB1YmxpYzoKICAgICBTaWduYWxTZW5kZXIoY29uc3QgQWJzdHJh
Y3RMb2NrZXImIGxvY2tlciwgVk0mIHZtKQogICAgICAgICA6IEJhc2UobG9ja2VyLCB2bS50cmFw
cygpLm1fbG9jaywgdm0udHJhcHMoKS5tX2NvbmRpdGlvbi5jb3B5UmVmKCkpCiAgICAgICAgICwg
bV92bSh2bSkKLSAgICB7IH0KKyAgICB7CisgICAgICAgIGFjdGl2YXRlU2lnbmFsSGFuZGxlcnNG
b3IoU2lnbmFsOjpBY2Nlc3NGYXVsdCk7CisgICAgfQogCiAgICAgc3RhdGljIHZvaWQgaW5pdGlh
bGl6ZVNpZ25hbHMoKQogICAgIHsKICAgICAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7
CiAgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKLSAgICAgICAgICAgIGluc3RhbGxT
aWduYWxIYW5kbGVyKFNpZ25hbDo6QWNjZXNzRmF1bHQsIFtdIChTaWduYWwsIFNpZ0luZm8mLCBQ
bGF0Zm9ybVJlZ2lzdGVycyYgcmVnaXN0ZXJzKSAtPiBTaWduYWxBY3Rpb24geworICAgICAgICAg
ICAgYWRkU2lnbmFsSGFuZGxlcihTaWduYWw6OkFjY2Vzc0ZhdWx0LCBbXSAoU2lnbmFsLCBTaWdJ
bmZvJiwgUGxhdGZvcm1SZWdpc3RlcnMmIHJlZ2lzdGVycykgLT4gU2lnbmFsQWN0aW9uIHsKICAg
ICAgICAgICAgICAgICBhdXRvIHNpZ25hbENvbnRleHQgPSBTaWduYWxDb250ZXh0Ojp0cnlDcmVh
dGUocmVnaXN0ZXJzKTsKICAgICAgICAgICAgICAgICBpZiAoIXNpZ25hbENvbnRleHQpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBTaWduYWxBY3Rpb246Ok5vdEhhbmRsZWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAKaW5k
ZXggY2MyZmRjMDZmYTk3MTZlNjdhNTA3OGRiYzI1ZWQyNmQwMzZhZTdmYS4uMDY0NmJmMjkyY2U3
YjUzZWFmZDU1ODhhOWY4OGVmOGQwZTI4OWJjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90b29scy9TaWdpbGxDcmFzaEFuYWx5emVyLmNwcApAQCAtMTU2LDcgKzE1Niw3IEBA
IHB1YmxpYzoKIHN0YXRpYyB2b2lkIGluc3RhbGxDcmFzaEhhbmRsZXIoKQogewogI2lmIENQVShY
ODZfNjQpIHx8IENQVShBUk02NCkKLSAgICBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6Okls
bGVnYWxJbnN0cnVjdGlvbiwgW10gKFNpZ25hbCwgU2lnSW5mbyYsIFBsYXRmb3JtUmVnaXN0ZXJz
JiByZWdpc3RlcnMpIHsKKyAgICBhZGRTaWduYWxIYW5kbGVyKFNpZ25hbDo6SWxsZWdhbEluc3Ry
dWN0aW9uLCBbXSAoU2lnbmFsLCBTaWdJbmZvJiwgUGxhdGZvcm1SZWdpc3RlcnMmIHJlZ2lzdGVy
cykgewogICAgICAgICBhdXRvIHNpZ25hbENvbnRleHQgPSBTaWduYWxDb250ZXh0Ojp0cnlDcmVh
dGUocmVnaXN0ZXJzKTsKICAgICAgICAgaWYgKCFzaWduYWxDb250ZXh0KQogICAgICAgICAgICAg
cmV0dXJuIFNpZ25hbEFjdGlvbjo6Tm90SGFuZGxlZDsKQEAgLTE2OSw2ICsxNjksNyBAQCBzdGF0
aWMgdm9pZCBpbnN0YWxsQ3Jhc2hIYW5kbGVyKCkKICAgICAgICAgYW5hbHl6ZXIuYW5hbHl6ZSgq
c2lnbmFsQ29udGV4dCk7CiAgICAgICAgIHJldHVybiBTaWduYWxBY3Rpb246Ok5vdEhhbmRsZWQ7
CiAgICAgfSk7CisgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWduYWw6OklsbGVnYWxJ
bnN0cnVjdGlvbik7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcAppbmRleCBkN2M0NDBiMTM4YjY0NGFj
ZWU5ODc0NWI1NDY3M2M4MDI1NWQ5NDJiLi5iZTg2NGNhNjU4OGY0OTY1MWFmYWQxY2Q3MjZkNDIw
NWQyZjBmMjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRmF1
bHRTaWduYWxIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
RmF1bHRTaWduYWxIYW5kbGVyLmNwcApAQCAtMTEzLDEyICsxMTMsMjggQEAgdm9pZCBlbmFibGVG
YXN0TWVtb3J5KCkKICAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VXZWJBc3NlbWJseUZhc3RNZW1v
cnkoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpbnN0YWxsU2lnbmFsSGFuZGxl
cihTaWduYWw6OkFjY2Vzc0ZhdWx0LCBbXSAoU2lnbmFsIHNpZ25hbCwgU2lnSW5mbyYgc2lnSW5m
bywgUGxhdGZvcm1SZWdpc3RlcnMmIHVjb250ZXh0KSB7Ci0gICAgICAgICAgICByZXR1cm4gdHJh
cEhhbmRsZXIoc2lnbmFsLCBzaWdJbmZvLCB1Y29udGV4dCk7Ci0gICAgICAgIH0pOworICAgICAg
ICBhY3RpdmF0ZVNpZ25hbEhhbmRsZXJzRm9yKFNpZ25hbDo6QWNjZXNzRmF1bHQpOwogCiAgICAg
ICAgIGZhc3RIYW5kbGVySW5zdGFsbGVkID0gdHJ1ZTsKICAgICB9KTsKKyNlbmRpZgorfQorCit2
b2lkIHByZXBhcmVGYXN0TWVtb3J5KCkKK3sKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfRkFTVF9N
RU1PUlkpCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CisgICAgc3RkOjpjYWxsX29u
Y2Uob25jZSwgW10geworICAgICAgICBpZiAoIVdhc206OmlzU3VwcG9ydGVkKCkpCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VXZWJBc3NlbWJseUZhc3RN
ZW1vcnkoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhZGRTaWduYWxIYW5kbGVy
KFNpZ25hbDo6QWNjZXNzRmF1bHQsIFtdIChTaWduYWwgc2lnbmFsLCBTaWdJbmZvJiBzaWdJbmZv
LCBQbGF0Zm9ybVJlZ2lzdGVycyYgdWNvbnRleHQpIHsKKyAgICAgICAgICAgIHJldHVybiB0cmFw
SGFuZGxlcihzaWduYWwsIHNpZ0luZm8sIHVjb250ZXh0KTsKKyAgICAgICAgfSk7CisgICAgfSk7
CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZX0ZBU1RfTUVNT1JZKQogfQogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5o
CmluZGV4IDc4M2I2YTZhNTJiMTExZWIwYTZkZWEyNTE3MzA4ZTZhYTMyZTlkOGQuLjE3MzUxYmM4
NzhlOWU2OTIxYTg3ZGUyMmFjYTA1M2RjYTY3OWUwNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmgKQEAgLTMyLDYgKzMyLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgV2FzbSB7CiAKIGJvb2wgZmFzdE1lbW9yeUVu
YWJsZWQoKTsKK0pTX0VYUE9SVF9QUklWQVRFIHZvaWQgcHJlcGFyZUZhc3RNZW1vcnkoKTsKIEpT
X0VYUE9SVF9QUklWQVRFIHZvaWQgZW5hYmxlRmFzdE1lbW9yeSgpOwogCiB9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGhyZWFkcy9TaWduYWxz
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5jcHAKaW5kZXggOGUxMTUwYjdh
ZGZhZDBmYzhmMjc3NWYyNDUwZTViNjEyOGYxYzIwZS4uM2MyYmExZWZlYzkwODljYjcxZDU1MWU4
MjM3OTJhZWIzMDVjZjQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGhyZWFkcy9TaWdu
YWxzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL1NpZ25hbHMuY3BwCkBAIC0yMzUs
MTEgKzIzNSwxMiBAQCB2b2lkIGhhbmRsZVNpZ25hbHNXaXRoTWFjaCgpCiAgICAgZ193dGZDb25m
aWcuc2lnbmFsSGFuZGxlcnMudXNlTWFjaCA9IHRydWU7CiB9CiAKK3N0YXRpYyBleGNlcHRpb25f
bWFza190IGFjdGl2ZUV4Y2VwdGlvbnM7CiBpbmxpbmUgdm9pZCBzZXRFeGNlcHRpb25Qb3J0cyhj
b25zdCBBYnN0cmFjdExvY2tlciYgdGhyZWFkR3JvdXBMb2NrZXIsIFRocmVhZCYgdGhyZWFkKQog
ewogICAgIFVOVVNFRF9QQVJBTSh0aHJlYWRHcm91cExvY2tlcik7CiAgICAgU2lnbmFsSGFuZGxl
cnMmIGhhbmRsZXJzID0gZ193dGZDb25maWcuc2lnbmFsSGFuZGxlcnM7Ci0gICAga2Vybl9yZXR1
cm5fdCByZXN1bHQgPSB0aHJlYWRfc2V0X2V4Y2VwdGlvbl9wb3J0cyh0aHJlYWQubWFjaFRocmVh
ZCgpLCBoYW5kbGVycy5hY3RpdmVFeGNlcHRpb25zLCBoYW5kbGVycy5leGNlcHRpb25Qb3J0LCBF
WENFUFRJT05fU1RBVEUgfCBNQUNIX0VYQ0VQVElPTl9DT0RFUywgTUFDSElORV9USFJFQURfU1RB
VEUpOworICAgIGtlcm5fcmV0dXJuX3QgcmVzdWx0ID0gdGhyZWFkX3NldF9leGNlcHRpb25fcG9y
dHModGhyZWFkLm1hY2hUaHJlYWQoKSwgaGFuZGxlcnMuYWRkZWRFeGNlcHRpb25zICZhY3RpdmVF
eGNlcHRpb25zLCBoYW5kbGVycy5leGNlcHRpb25Qb3J0LCBFWENFUFRJT05fU1RBVEUgfCBNQUNI
X0VYQ0VQVElPTl9DT0RFUywgTUFDSElORV9USFJFQURfU1RBVEUpOwogICAgIGlmIChyZXN1bHQg
IT0gS0VSTl9TVUNDRVNTKSB7CiAgICAgICAgIGRhdGFMb2dMbigidGhyZWFkIHNldCBwb3J0IGZh
aWxlZCBkdWUgdG8gIiwgbWFjaF9lcnJvcl9zdHJpbmcocmVzdWx0KSk7CiAgICAgICAgIENSQVNI
KCk7CkBAIC0yNjUsMTEgKzI2Niw4IEBAIHZvaWQgcmVnaXN0ZXJUaHJlYWRGb3JNYWNoRXhjZXB0
aW9uSGFuZGxpbmcoVGhyZWFkJiB0aHJlYWQpCiAgICAgICAgIHNldEV4Y2VwdGlvblBvcnRzKGxv
Y2tlciwgdGhyZWFkKTsKIH0KIAotI2Vsc2UKLXN0YXRpYyBjb25zdGV4cHIgYm9vbCB1c2VNYWNo
ID0gZmFsc2U7CiAjZW5kaWYgLy8gSEFWRShNQUNIX0VYQ0VQVElPTlMpCiAKLQogaW5saW5lIHNp
emVfdCBvZmZzZXRGb3JTeXN0ZW1TaWduYWwoaW50IHNpZykKIHsKICAgICBTaWduYWwgc2lnbmFs
ID0gZnJvbVN5c3RlbVNpZ25hbChzaWcpOwpAQCAtMjc4LDE0ICsyNzYsMTQgQEAgaW5saW5lIHNp
emVfdCBvZmZzZXRGb3JTeXN0ZW1TaWduYWwoaW50IHNpZykKIAogc3RhdGljIHZvaWQganNjU2ln
bmFsSGFuZGxlcihpbnQsIHNpZ2luZm9fdCosIHZvaWQqKTsKIAotdm9pZCBpbnN0YWxsU2lnbmFs
SGFuZGxlcihTaWduYWwgc2lnbmFsLCBTaWduYWxIYW5kbGVyJiYgaGFuZGxlcikKK3ZvaWQgYWRk
U2lnbmFsSGFuZGxlcihTaWduYWwgc2lnbmFsLCBTaWduYWxIYW5kbGVyJiYgaGFuZGxlcikKIHsK
ICAgICBDb25maWc6OkFzc2VydE5vdEZyb3plblNjb3BlIGFzc2VydFNjb3BlOwogICAgIFNpZ25h
bEhhbmRsZXJzJiBoYW5kbGVycyA9IGdfd3RmQ29uZmlnLnNpZ25hbEhhbmRsZXJzOwogICAgIEFT
U0VSVChzaWduYWwgPCBTaWduYWw6OlVua25vd24pOwotI2lmIEhBVkUoTUFDSF9FWENFUFRJT05T
KQogICAgIEFTU0VSVCghaGFuZGxlcnMudXNlTWFjaCB8fCBzaWduYWwgIT0gU2lnbmFsOjpVc3Ip
OwogCisjaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCiAgICAgaWYgKGhhbmRsZXJzLnVzZU1hY2gp
CiAgICAgICAgIHN0YXJ0TWFjaEV4Y2VwdGlvbkhhbmRsZXJUaHJlYWQoKTsKICNlbmRpZgpAQCAt
MjkzLDEwICsyOTEsOSBAQCB2b2lkIGluc3RhbGxTaWduYWxIYW5kbGVyKFNpZ25hbCBzaWduYWws
IFNpZ25hbEhhbmRsZXImJiBoYW5kbGVyKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0
aWFsaXplT25jZUZsYWdzW3N0YXRpY19jYXN0PHNpemVfdD4oU2lnbmFsOjpOdW1iZXJPZlNpZ25h
bHMpXTsKICAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplT25jZUZsYWdzW3N0YXRpY19jYXN0
PHNpemVfdD4oc2lnbmFsKV0sIFsmXSB7CiAgICAgICAgIENvbmZpZzo6QXNzZXJ0Tm90RnJvemVu
U2NvcGUgYXNzZXJ0U2NvcGU7Ci0jaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCi0gICAgICAgIGJv
b2wgdXNlTWFjaCA9IGhhbmRsZXJzLnVzZU1hY2g7Ci0jZW5kaWYKLSAgICAgICAgaWYgKCF1c2VN
YWNoKSB7CisKKyAgICAgICAgaGFuZGxlcnMuYWRkZWRFeGNlcHRpb25zIHw9IHRvTWFjaE1hc2so
c2lnbmFsKTsKKyAgICAgICAgaWYgKCFoYW5kbGVycy51c2VNYWNoKSB7CiAgICAgICAgICAgICBz
dHJ1Y3Qgc2lnYWN0aW9uIGFjdGlvbjsKICAgICAgICAgICAgIGFjdGlvbi5zYV9zaWdhY3Rpb24g
PSBqc2NTaWduYWxIYW5kbGVyOwogICAgICAgICAgICAgYXV0byByZXN1bHQgPSBzaWdmaWxsc2V0
KCZhY3Rpb24uc2FfbWFzayk7CkBAIC0zMTQsMTEgKzMxMSwxOSBAQCB2b2lkIGluc3RhbGxTaWdu
YWxIYW5kbGVyKFNpZ25hbCBzaWduYWwsIFNpZ25hbEhhbmRsZXImJiBoYW5kbGVyKQogICAgIH0p
OwogCiAgICAgaGFuZGxlcnMuYWRkKHNpZ25hbCwgV1RGTW92ZShoYW5kbGVyKSk7Cit9CiAKK3Zv
aWQgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWduYWwgc2lnbmFsKQoreworICAgIFVOVVNF
RF9QQVJBTShzaWduYWwpOwogI2lmIEhBVkUoTUFDSF9FWENFUFRJT05TKQorICAgIGNvbnN0IFNp
Z25hbEhhbmRsZXJzJiBoYW5kbGVycyA9IGdfd3RmQ29uZmlnLnNpZ25hbEhhbmRsZXJzOworICAg
IEFTU0VSVChzaWduYWwgPCBTaWduYWw6OlVua25vd24pOworICAgIEFTU0VSVCghaGFuZGxlcnMu
dXNlTWFjaCB8fCBzaWduYWwgIT0gU2lnbmFsOjpVc3IpOworCiAgICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhhY3RpdmVUaHJlYWRzKCkuZ2V0TG9jaygpKTsKICAgICBpZiAoaGFuZGxlcnMudXNl
TWFjaCkgewotICAgICAgICBoYW5kbGVycy5hY3RpdmVFeGNlcHRpb25zIHw9IHRvTWFjaE1hc2so
c2lnbmFsKTsKKyAgICAgICAgYWN0aXZlRXhjZXB0aW9ucyB8PSB0b01hY2hNYXNrKHNpZ25hbCk7
CiAKICAgICAgICAgZm9yIChhdXRvJiB0aHJlYWQgOiBhY3RpdmVUaHJlYWRzKCkudGhyZWFkcyhs
b2NrZXIpKQogICAgICAgICAgICAgc2V0RXhjZXB0aW9uUG9ydHMobG9ja2VyLCB0aHJlYWQuZ2V0
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGhyZWFkcy9TaWduYWxzLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi90aHJlYWRzL1NpZ25hbHMuaAppbmRleCAxNmVhZTk3YmY4NWRiOTU0NWI4NWE5
ZWEyNGZkMjBkNzBiYWFlMGQwLi5hNjAyYWQzMzUwZWZjZTlhZWFhNGU1ZmVlNWFjMTE0M2FhMjdm
MmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL1NpZ25hbHMuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90aHJlYWRzL1NpZ25hbHMuaApAQCAtMTA5LDIxICsxMDksMjUgQEAgc3Ry
dWN0IFNpZ25hbEhhbmRsZXJzIHsKIAogI2lmIEhBVkUoTUFDSF9FWENFUFRJT05TKQogICAgIG1h
Y2hfcG9ydF90IGV4Y2VwdGlvblBvcnQ7Ci0gICAgZXhjZXB0aW9uX21hc2tfdCBhY3RpdmVFeGNl
cHRpb25zOworICAgIGV4Y2VwdGlvbl9tYXNrX3QgYWRkZWRFeGNlcHRpb25zOwogICAgIGJvb2wg
dXNlTWFjaDsKKyNlbHNlCisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHVzZU1hY2ggPSBmYWxz
ZTsKICNlbmRpZgogICAgIHVpbnQ4X3QgbnVtYmVyT2ZIYW5kbGVyc1tudW1iZXJPZlNpZ25hbHNd
OwogICAgIFNpZ25hbEhhbmRsZXJNZW1vcnkgaGFuZGxlcnNbbnVtYmVyT2ZTaWduYWxzXVttYXhO
dW1iZXJPZkhhbmRsZXJzXTsKICAgICBzdHJ1Y3Qgc2lnYWN0aW9uIG9sZEFjdGlvbnNbbnVtYmVy
T2ZTaWduYWxzXTsKIH07CiAKLS8vIENhbGwgdGhpcyBtZXRob2Qgd2hlbmV2ZXIgeW91IHdhbnQg
dG8gaW5zdGFsbCBhIHNpZ25hbCBoYW5kbGVyLiBUaGlzIGZ1bmN0aW9uIG5lZWRzIHRvIGJlIGNh
bGxlZAorLy8gQ2FsbCB0aGlzIG1ldGhvZCB3aGVuZXZlciB5b3Ugd2FudCB0byBhZGQgYSBzaWdu
YWwgaGFuZGxlci4gVGhpcyBmdW5jdGlvbiBuZWVkcyB0byBiZSBjYWxsZWQKIC8vIGJlZm9yZSBn
X3d0ZkNvbmZpZyBpcyBmcm96ZW4uIEFmdGVyIHRoZSBnX3d0ZkNvbmZpZyBpcyBmcm96ZW4sIG5v
IGFkZGl0aW9uYWwgc2lnbmFsIGhhbmRsZXJzIG1heQogLy8gYmUgaW5zdGFsbGVkLiBBbnkgYXR0
ZW1wdCB0byBkbyBzbyB3aWxsIHRyaWdnZXIgYSBjcmFzaC4KIC8vIE5vdGU6IFlvdXIgc2lnbmFs
IGhhbmRsZXIgd2lsbCBiZSBjYWxsZWQgZXZlcnkgdGltZSB0aGUgaGFuZGxlciBmb3IgdGhlIGRl
c2lyZWQgc2lnbmFsIGlzIGNhbGxlZC4KIC8vIFRodXMgaXQgaXMgeW91ciByZXNwb25zaWJpbGl0
eSB0byBkaXNjZXJuIGlmIHRoZSBzaWduYWwgZmlyZWQgd2FzIHlvdXJzLgotLy8gVGhpcyBmdW5j
dGlvbiBpcyBhIG9uZSB3YXkgc3RyZWV0IGkuZS4gb25jZSBpbnN0YWxsZWQsIGEgc2lnbmFsIGhh
bmRsZXIgY2Fubm90IGJlIHVuaW5zdGFsbGVkLgotV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgaW5z
dGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsLCBTaWduYWxIYW5kbGVyJiYpOworLy8gVGhlc2UgZnVu
Y3Rpb25zIGFyZSBhIG9uZSB3YXkgc3RyZWV0IGkuZS4gb25jZSBpbnN0YWxsZWQsIGEgc2lnbmFs
IGhhbmRsZXIgY2Fubm90IGJlIHVuaW5zdGFsbGVkCisvLyBhbmQgb25jZSBjb21taXRlZCB0aGV5
IGNhbid0IGJlIHR1cm5lZCBvZmYuCitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhZGRTaWduYWxI
YW5kbGVyKFNpZ25hbCwgU2lnbmFsSGFuZGxlciYmKTsKK1dURl9FWFBPUlRfUFJJVkFURSB2b2lk
IGFjdGl2YXRlU2lnbmFsSGFuZGxlcnNGb3IoU2lnbmFsKTsKIAogCiAjaWYgSEFWRShNQUNIX0VY
Q0VQVElPTlMpCkBAIC0xNDcsNiArMTUxLDcgQEAgdXNpbmcgV1RGOjp0b1N5c3RlbVNpZ25hbDsK
IHVzaW5nIFdURjo6ZnJvbVN5c3RlbVNpZ25hbDsKIHVzaW5nIFdURjo6U2lnbmFsQWN0aW9uOwog
dXNpbmcgV1RGOjpTaWduYWxIYW5kbGVyOwotdXNpbmcgV1RGOjppbnN0YWxsU2lnbmFsSGFuZGxl
cjsKK3VzaW5nIFdURjo6YWRkU2lnbmFsSGFuZGxlcjsKK3VzaW5nIFdURjo6YWN0aXZhdGVTaWdu
YWxIYW5kbGVyc0ZvcjsKIAogI2VuZGlmIC8vIFVTRShQVEhSRUFEUykgJiYgSEFWRShNQUNISU5F
X0NPTlRFWFQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggOWFh
YjE5ZmQxNjczMGExOTU4YjAwNTk4Y2Q2YjQ0Y2IwZGJhOWI2ZS4uMWJjYzg0MTMxZWM2NDhlYWIx
ZmJiMzUxZTNhODU4NzM1MTY3NzU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcApAQCAtODMsNiArODMsNyBAQAogI2luY2x1ZGUgIldlYnNpdGVEYXRhVHlwZS5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL01lbW9yeVN0YXRpc3RpY3MuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9XYXNtRmF1
bHRTaWduYWxIYW5kbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KQEAgLTQ2Niw2ICs0NjcsMTAgQEAgdm9p
ZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNldFNoYXJl
ZFByb3ZpZGVyKFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkpOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgSlNDOjpXYXNtOjplbmFibGVGYXN0TWVt
b3J5KCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICYm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjpzZXRT
aG91bGRMb2dVc2VySW50ZXJhY3Rpb24ocGFyYW1ldGVycy5zaG91bGRMb2dVc2VySW50ZXJhY3Rp
b24pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggYmFhZDljNTM2NTdmYjYwYmNhYjY1NjUzYTk2NzBlOGRhYjU1OGQ3MS4uMzczODlj
YmUyN2FjZGIyMzU0OTJhNzYyMTIxZmYwMmM4YTI0NGU2YyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA2LTEy
ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpZ25h
bCBoYW5kbGVycyBzaG91bGQgaGF2ZSBhIHR3byBwaGFzZSBpbnN0YWxsYXRpb24uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMxNjAKKworICAgICAg
ICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1NpZ25hbHMuY3BwOgorICAgICAgICAoVEVTVCk6CisKIDIwMjAtMDYtMTIgIEtlaXRoIE1p
bGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgVGVzdHMgZXhwZWN0aW5n
IGEgY3Jhc2ggc2hvdWxkIHVzZSBhIHNpZ25hbCBoYW5kbGVyIGluIHRoZSBKU0MgQ0xJIHByb2Nl
c3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1NpZ25hbHMuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU2lnbmFscy5jcHAKaW5kZXggNjgwYzlm
NTk1MDE0ZDZiYmY4NjczNzNmMjNlZWIwMWUyZmU5MjAxMC4uODgyM2I0ZTRkZmU4ZjI1YTJiMDk4
M2ZhN2E3NGNkMGZlYTZmMmU4YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU2lnbmFscy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU2ln
bmFscy5jcHAKQEAgLTQwLDExICs0MCwxMiBAQCBwdWJsaWM6CiBURVNUKFNpZ25hbHMsIFNpZ25h
bHNXb3JrT25FeGl0KQogewogICAgIHN0YXRpYyBib29sIGhhbmRsZXJSYW4gPSBmYWxzZTsKLSAg
ICBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OlVzciwgW10gKFNpZ25hbCwgU2lnSW5mbyYs
IFBsYXRmb3JtUmVnaXN0ZXJzJikgLT4gU2lnbmFsQWN0aW9uIHsKKyAgICBhZGRTaWduYWxIYW5k
bGVyKFNpZ25hbDo6VXNyLCBbXSAoU2lnbmFsLCBTaWdJbmZvJiwgUGxhdGZvcm1SZWdpc3RlcnMm
KSAtPiBTaWduYWxBY3Rpb24gewogICAgICAgICBkYXRhTG9nTG4oImhlcmUiKTsKICAgICAgICAg
aGFuZGxlclJhbiA9IHRydWU7CiAgICAgICAgIHJldHVybiBTaWduYWxBY3Rpb246OkhhbmRsZWQ7
CiAgICAgfSk7CisgICAgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWduYWw6OlVzcik7CiAK
ICAgICBBdG9taWM8Ym9vbD4gcmVjZWl2ZXJTaG91bGRLZWVwUnVubmluZyh0cnVlKTsKICAgICBS
ZWY8VGhyZWFkPiByZWNlaXZlclRocmVhZCA9IChUaHJlYWQ6OmNyZWF0ZSgiVGhyZWFkTWVzc2Fn
ZSByZWNlaXZlciIsCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>