<?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>161942</bug_id>
          
          <creation_ts>2016-09-13 19:29:54 -0700</creation_ts>
          <short_desc>Shouldn&apos;t drain the micro task queue when calling out to ObjC</short_desc>
          <delta_ts>2022-05-23 15:33:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>Other</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=240243</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>226973</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>chyizheng</cc>
    
    <cc>commit-queue</cc>
    
    <cc>davidah3</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>qh438406812</cc>
    
    <cc>saam</cc>
    
    <cc>thorton</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1229421</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-09-13 19:29:54 -0700</bug_when>
    <thetext>This is from https://bugs.webkit.org/show_bug.cgi?id=161929#c3

    It occurs to me that it is also a bug that we drain the micro task queue at all when calling out to ObjC. That should only happen when we exit the VM.

Currently we drain micro tasks in willReleaseLock():

void JSLock::willReleaseLock()
{
    RefPtr&lt;VM&gt; vm = m_vm;
    if (vm) {
        vm-&gt;drainMicrotasks();

        vm-&gt;heap.releaseDelayedReleasedObjects();
        vm-&gt;setStackPointerAtVMEntry(nullptr);
    }

    if (m_entryAtomicStringTable) {
        wtfThreadData().setCurrentAtomicStringTable(m_entryAtomicStringTable);
        m_entryAtomicStringTable = nullptr;
    }
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536725</commentid>
    <comment_count>1</comment_count>
    <who name="chen">qh438406812</who>
    <bug_when>2019-05-15 23:01:21 -0700</bug_when>
    <thetext>after 3 years，this bug haven&apos;t fix ....


same issue https://bugs.webkit.org/show_bug.cgi?id=197828

@Michael Saboff  did you have solution?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752156</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-20 00:15:42 -0700</bug_when>
    <thetext>*** Bug 197828 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752157</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-20 00:16:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/76884264&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752171</commentid>
    <comment_count>4</comment_count>
    <who name="chyizheng">chyizheng</who>
    <bug_when>2021-04-20 01:13:41 -0700</bug_when>
    <thetext>any solution?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752663</commentid>
    <comment_count>5</comment_count>
    <who name="chen">qh438406812</who>
    <bug_when>2021-04-21 00:55:16 -0700</bug_when>
    <thetext>use V8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752665</commentid>
    <comment_count>6</comment_count>
    <who name="chen">qh438406812</who>
    <bug_when>2021-04-21 00:55:36 -0700</bug_when>
    <thetext>(In reply to chyizheng from comment #4)
&gt; any solution?

use V8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767641</commentid>
    <comment_count>7</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-06-07 19:35:04 -0700</bug_when>
    <thetext>*** Bug 197828 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767642</commentid>
    <comment_count>8</comment_count>
      <attachid>430801</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-06-07 19:36:39 -0700</bug_when>
    <thetext>Created attachment 430801
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767884</commentid>
    <comment_count>9</comment_count>
      <attachid>430884</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-06-08 13:29:44 -0700</bug_when>
    <thetext>Created attachment 430884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768402</commentid>
    <comment_count>10</comment_count>
      <attachid>430884</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-06-09 17:24:48 -0700</bug_when>
    <thetext>Comment on attachment 430884
Patch

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

&gt; Source/JavaScriptCore/runtime/JSLock.cpp:205
&gt; +#if USE(APPLE_INTERNAL_SDK)

why only APPLE_INTERNAL_SDK?

&gt; Source/JavaScriptCore/runtime/VM.cpp:1363
&gt;  void VM::didExhaustMicrotaskQueue()

Why this change?

Also why is this function named like it&apos;s gonna return a bool?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768404</commentid>
    <comment_count>11</comment_count>
      <attachid>430884</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-06-09 17:26:24 -0700</bug_when>
    <thetext>Comment on attachment 430884
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:17
&gt; +        a linked on or after check to protect existing APPs.

&quot;APPs&quot; =&gt; &quot;Apps&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768405</commentid>
    <comment_count>12</comment_count>
      <attachid>430884</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-06-09 17:31:12 -0700</bug_when>
    <thetext>Comment on attachment 430884
Patch

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

&gt; Source/JavaScriptCore/runtime/JSLock.cpp:218
&gt; +        if (!vm-&gt;topCallFrame || useLegacyDrain)

why this &quot;!vm-&gt;topCallFrame&quot; check? Is that your &quot;I&apos;m leaving the VM&quot; check? If so, let&apos;s just move this to ~VMEntryScope, and keep the legacy stuff here under &quot;useLegacyDrain&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768417</commentid>
    <comment_count>13</comment_count>
      <attachid>430884</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-06-09 18:11:18 -0700</bug_when>
    <thetext>Comment on attachment 430884
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/JSLock.cpp:205
&gt;&gt; +#if USE(APPLE_INTERNAL_SDK)
&gt; 
&gt; why only APPLE_INTERNAL_SDK?

Also likely should be using applicationSDKVersion() like the rest of WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768583</commentid>
    <comment_count>14</comment_count>
      <attachid>430884</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-06-10 09:52:36 -0700</bug_when>
    <thetext>Comment on attachment 430884
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:17
&gt;&gt; +        a linked on or after check to protect existing APPs.
&gt; 
&gt; &quot;APPs&quot; =&gt; &quot;Apps&quot;

Fixed.

&gt;&gt;&gt; Source/JavaScriptCore/runtime/JSLock.cpp:205
&gt;&gt;&gt; +#if USE(APPLE_INTERNAL_SDK)
&gt;&gt; 
&gt;&gt; why only APPLE_INTERNAL_SDK?
&gt; 
&gt; Also likely should be using applicationSDKVersion() like the rest of WebKit.

dyld_get_program_sdk_version() is SPI. Per offline discussion, it sounds like the current code is fine?

&gt;&gt; Source/JavaScriptCore/runtime/JSLock.cpp:218
&gt;&gt; +        if (!vm-&gt;topCallFrame || useLegacyDrain)
&gt; 
&gt; why this &quot;!vm-&gt;topCallFrame&quot; check? Is that your &quot;I&apos;m leaving the VM&quot; check? If so, let&apos;s just move this to ~VMEntryScope, and keep the legacy stuff here under &quot;useLegacyDrain&quot;

Yeah, that&apos;s the I&apos;m leaving the VM check. We can&apos;t do it in ~VMEntryScope since the API can only collect the exception right before releasing the JSLock. If we moved it to ~VMEntryScope, the exception could get overriden by an exception in a microtask. We&apos;d have to restructure a ton of code to make it work in ~VMEntryScope.

&gt;&gt; Source/JavaScriptCore/runtime/VM.cpp:1363
&gt;&gt;  void VM::didExhaustMicrotaskQueue()
&gt; 
&gt; Why this change?
&gt; 
&gt; Also why is this function named like it&apos;s gonna return a bool?

It makes it so we handle unhandled rejections that were created while handling other unhandled rejections. See promiseUnhandledRejectionFromUnhandledRejectionCallback() in testapi.cpp

I think it&apos;s meant as you call this when you&apos;ve exhausted the microtask queue. I agree the name&apos;s weird.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768606</commentid>
    <comment_count>15</comment_count>
      <attachid>430884</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-06-10 10:39:34 -0700</bug_when>
    <thetext>Comment on attachment 430884
Patch

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

&gt;&gt;&gt;&gt; Source/JavaScriptCore/runtime/JSLock.cpp:205
&gt;&gt;&gt;&gt; +#if USE(APPLE_INTERNAL_SDK)
&gt;&gt;&gt; 
&gt;&gt;&gt; why only APPLE_INTERNAL_SDK?
&gt;&gt; 
&gt;&gt; Also likely should be using applicationSDKVersion() like the rest of WebKit.
&gt; 
&gt; dyld_get_program_sdk_version() is SPI. Per offline discussion, it sounds like the current code is fine?

Just because it&apos;s SPI doesn&apos;t mean it shouldn&apos;t be compiled into open source builds. That&apos;s why we have forwarding headers.

Not sure what the difference is between dyld_get_program_sdk_version and applicationSDKVersion. I&apos;d ask Tim.

&gt;&gt;&gt; Source/JavaScriptCore/runtime/JSLock.cpp:218
&gt;&gt;&gt; +        if (!vm-&gt;topCallFrame || useLegacyDrain)
&gt;&gt; 
&gt;&gt; why this &quot;!vm-&gt;topCallFrame&quot; check? Is that your &quot;I&apos;m leaving the VM&quot; check? If so, let&apos;s just move this to ~VMEntryScope, and keep the legacy stuff here under &quot;useLegacyDrain&quot;
&gt; 
&gt; Yeah, that&apos;s the I&apos;m leaving the VM check. We can&apos;t do it in ~VMEntryScope since the API can only collect the exception right before releasing the JSLock. If we moved it to ~VMEntryScope, the exception could get overriden by an exception in a microtask. We&apos;d have to restructure a ton of code to make it work in ~VMEntryScope.

I feel like &quot;!vm-&gt;topCallFrame&quot; is hacky. Why not check if we&apos;re fully releasing the lock?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768609</commentid>
    <comment_count>16</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-06-10 10:56:16 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #15)
&gt; Comment on attachment 430884 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=430884&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt; Source/JavaScriptCore/runtime/JSLock.cpp:205
&gt; &gt;&gt;&gt;&gt; +#if USE(APPLE_INTERNAL_SDK)
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; why only APPLE_INTERNAL_SDK?
&gt; &gt;&gt; 
&gt; &gt;&gt; Also likely should be using applicationSDKVersion() like the rest of WebKit.
&gt; &gt; 
&gt; &gt; dyld_get_program_sdk_version() is SPI. Per offline discussion, it sounds like the current code is fine?
&gt; 
&gt; Just because it&apos;s SPI doesn&apos;t mean it shouldn&apos;t be compiled into open source
&gt; builds. That&apos;s why we have forwarding headers.
&gt; 
&gt; Not sure what the difference is between dyld_get_program_sdk_version and
&gt; applicationSDKVersion. I&apos;d ask Tim.

I guess I&apos;ll switch to applicationSDKVersion since it seems more robust.

&gt; 
&gt; &gt;&gt;&gt; Source/JavaScriptCore/runtime/JSLock.cpp:218
&gt; &gt;&gt;&gt; +        if (!vm-&gt;topCallFrame || useLegacyDrain)
&gt; &gt;&gt; 
&gt; &gt;&gt; why this &quot;!vm-&gt;topCallFrame&quot; check? Is that your &quot;I&apos;m leaving the VM&quot; check? If so, let&apos;s just move this to ~VMEntryScope, and keep the legacy stuff here under &quot;useLegacyDrain&quot;
&gt; &gt; 
&gt; &gt; Yeah, that&apos;s the I&apos;m leaving the VM check. We can&apos;t do it in ~VMEntryScope since the API can only collect the exception right before releasing the JSLock. If we moved it to ~VMEntryScope, the exception could get overriden by an exception in a microtask. We&apos;d have to restructure a ton of code to make it work in ~VMEntryScope.
&gt; 
&gt; I feel like &quot;!vm-&gt;topCallFrame&quot; is hacky. Why not check if we&apos;re fully
&gt; releasing the lock?

Sure, I can switch back to that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768613</commentid>
    <comment_count>17</comment_count>
      <attachid>431093</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-06-10 11:05:38 -0700</bug_when>
    <thetext>Created attachment 431093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768615</commentid>
    <comment_count>18</comment_count>
      <attachid>431093</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-06-10 11:09:08 -0700</bug_when>
    <thetext>Comment on attachment 431093
Patch

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

&gt; Source/JavaScriptCore/runtime/JSLock.cpp:218
&gt; +        if (!m_lockDropDepth || useLegacyDrain)

!m_lockDropDepth is not the right check here, since it doesn&apos;t account for recursively grabbing the lock.

Can you add a test for the new behavior that would catch this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768616</commentid>
    <comment_count>19</comment_count>
      <attachid>431093</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-06-10 11:09:26 -0700</bug_when>
    <thetext>Comment on attachment 431093
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/JSLock.cpp:218
&gt;&gt; +        if (!m_lockDropDepth || useLegacyDrain)
&gt; 
&gt; !m_lockDropDepth is not the right check here, since it doesn&apos;t account for recursively grabbing the lock.
&gt; 
&gt; Can you add a test for the new behavior that would catch this?

Oh wait, ignore me! I misunderstood. Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768673</commentid>
    <comment_count>20</comment_count>
      <attachid>431093</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-06-10 12:44:31 -0700</bug_when>
    <thetext>Comment on attachment 431093
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768704</commentid>
    <comment_count>21</comment_count>
      <attachid>431120</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-06-10 13:43:08 -0700</bug_when>
    <thetext>Created attachment 431120
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768752</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-10 14:54:43 -0700</bug_when>
    <thetext>Committed r278734 (238697@main): &lt;https://commits.webkit.org/238697@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431120.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769392</commentid>
    <comment_count>23</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-06-14 07:44:57 -0700</bug_when>
    <thetext>(In reply to EWS from comment #22)
&gt; Committed r278734 (238697@main): &lt;https://commits.webkit.org/238697@main&gt;
Seems like it broke testapi

History: https://results.webkit.org/?suite=javascriptcore-tests&amp;test=testapi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769394</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-06-14 07:56:18 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 226973</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769449</commentid>
    <comment_count>25</comment_count>
      <attachid>431342</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-06-14 10:26:16 -0700</bug_when>
    <thetext>Created attachment 431342
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769834</commentid>
    <comment_count>26</comment_count>
      <attachid>431449</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-06-15 09:38:47 -0700</bug_when>
    <thetext>Created attachment 431449
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769845</commentid>
    <comment_count>27</comment_count>
      <attachid>431451</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-06-15 09:53:29 -0700</bug_when>
    <thetext>Created attachment 431451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769854</commentid>
    <comment_count>28</comment_count>
      <attachid>431451</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-06-15 10:16:18 -0700</bug_when>
    <thetext>Comment on attachment 431451
Patch

Ugh, the testapi issue was that I forgot to put the linked on or after checks on one of my tests...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769887</commentid>
    <comment_count>29</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-15 11:39:35 -0700</bug_when>
    <thetext>Committed r278888 (238830@main): &lt;https://commits.webkit.org/238830@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431451.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430801</attachid>
            <date>2021-06-07 19:36:39 -0700</date>
            <delta_ts>2021-06-08 13:29:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161942-20210607223638.patch</filename>
            <type>text/plain</type>
            <size>5783</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OGNlMDUyMTg1ZTlhMjM4ZTdiYWU5YTM3MjkzYTUyNzUzNDRhMTNjLi40MzYzZWNkNDhmNmI0NmYz
MTkwNTA0YTQ1OWViMGNjMzIxZWMyZjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMS0wNi0wNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBTaG91bGRuJ3QgZHJhaW4gdGhlIG1pY3JvdGFzayBxdWV1
ZSBiZWZvcmUgY2FsbCBuYXRpdmUgZXh0ZW5kIG9iaiByZWdpc3RlcmQgYnkgdXNlIGFwaSAoY2F1
c2UgZXJyb3IgaW4gUHJvbWlzZSBkZWZpbmUpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJdCBsb29rcyBsaWtlIHRoZSBpc3N1ZSBpcyB0aGF0IHdlIGFy
ZW4ndCBjaGVja2luZyBmb3IgdGhlCisgICAgICAgIHByZXNlbmNlIG9mIGRyb3BwZWQgbG9ja3Mg
d2hlbiBkZWNpZGluZyB0byBkcmFpbiBtaWNyb3Rhc2tzIGR1cmluZworICAgICAgICBKU0xvY2s6
OnVubG9jay4gVGhpcyBtZWFudCB0aGF0IHdoZW4gd2UgZHJvcCBhbGwgbG9ja3Mgd2hlbgorICAg
ICAgICBjYWxsaW5nIG91dCB0byBBUEkgY2xpZW50cyB3ZSB3b3VsZCBkcmFpbiBvdXIgbWljcm90
YXNrcyBhdCB0aGF0CisgICAgICAgIHBvaW50LiBBbiBhbHRlcm5hdGl2ZSB3b3VsZCBiZSB0byBw
YXNzIGFuIGV4dHJhIHBhcmFtZXRlciB0byB0aGUKKyAgICAgICAgdW5sb2NrIGZ1bmN0aW9uIHRo
YXQgc2F5cyBub3QgdG8gZHJhaW4gbWljcm90YXNrcy4gSSBjaG9zZSBub3QgdG8KKyAgICAgICAg
ZG8gdGhhdCBzaW5jZSBpdCBzZWVtZWQgYSBiaXQgbGVzcyByb2J1c3QuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBpcyB2ZXJ5IGxpa2VseSB0byBicmVhayBleGlzdGluZyBBUEkgdXNlcnMuIFNvIGl0
J3MgcG9zc2libGUKKyAgICAgICAgdGhpcyBwYXRjaCB3aWxsIGVpdGhlciBuZWVkIGEgbGlua2Vk
IG9uIG9yIGFmdGVyIGNoZWNrLiBPciwgbW9yZSBsaWtlbHksCisgICAgICAgIGFuIG9wdCBpbiBt
ZWNoYW5pc20uCisKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5jcHA6CisgICAgICAgICh0
ZXN0Q0FQSVZpYUNwcCk6CisgICAgICAgICogQVBJL3Rlc3RzL3Rlc3RhcGkubW06CisgICAgICAg
ICh0ZXN0TWljcm90YXNrV2l0aEZ1bmN0aW9uKToKKyAgICAgICAgKHRlc3RPYmplY3RpdmVDQVBJ
KToKKyAgICAgICAgKiBydW50aW1lL0pTTG9jay5jcHA6CisgICAgICAgIChKU0M6OkpTTG9jazo6
d2lsbFJlbGVhc2VMb2NrKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpT
Qzo6Vk06OmRpZEV4aGF1c3RNaWNyb3Rhc2tRdWV1ZSk6CisKIDIwMjEtMDYtMDcgIEFsZXhleSBT
aHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFdpbmRvdyBzaG91bGQg
YmVoYXZlIGxpa2UgYSBsZWdhY3kgcGxhdGZvcm0gb2JqZWN0IHdpdGhvdXQgaW5kZXhlZCBzZXR0
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwCmluZGV4IDlh
NTEyYWM1NDFjMGZhMWM0Y2RiZjZiOTI1YjRlZTFlODk2ZTg5OTAuLjQ3ZTJmZTlhMDBkZmFhZWYw
NGMzZjc1MjkwZDY5MTlmMDY0OTZlNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvdGVzdGFwaS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy90ZXN0YXBpLmNwcApAQCAtNzY2LDEwICs3NjYsOCBAQCBpbnQgdGVzdENBUElWaWFDcHAo
Y29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTihwcm94eVJldHVybmVkV2l0aEpTU3ViY2xhc3Np
bmcoKSk7CiAgICAgUlVOKHRlc3RKU09iamVjdFNldE9uR2xvYmFsT2JqZWN0U3ViY2xhc3NEZWZp
bml0aW9uKCkpOwogCi0gICAgaWYgKHRhc2tzLmlzRW1wdHkoKSkgewotICAgICAgICBkYXRhTG9n
TG4oIkZpbHRlcmVkIGFsbCB0ZXN0czogRVJST1IiKTsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAg
fQorICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAwOwogCiAgICAgTG9j
ayBsb2NrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rl
c3RhcGkubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KaW5k
ZXggNTlhMzQ5YzY2MTcyNDA1ZWI5N2MxMDM4OWJhOTEzZWRjNTkyMGFlNC4uMTc2ZTRmNjI1YTdi
MDAyYTYxYTRlOWY2NzU4Y2RlNTQ0NzBiMjJmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvdGVzdHMvdGVzdGFwaS5tbQpAQCAtMjczMCw2ICsyNzMwLDI1IEBAIHN0YXRpYyB2b2lkIHRl
c3REZXBlbmRlbmNpZXNNaXNzaW5nSW1wb3J0KCkKICAgICB9CiB9CiAKK3N0YXRpYyB2b2lkIHRl
c3RNaWNyb3Rhc2tXaXRoRnVuY3Rpb24oKQoreworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAg
ICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07CisKKyAg
ICAgICAgSlNWYWx1ZSAqZ2xvYmFsT2JqZWN0ID0gY29udGV4dC5nbG9iYWxPYmplY3Q7CisKKyAg
ICAgICAgYXV0byBibG9jayA9IF4oKSB7CisgICAgICAgICAgICByZXR1cm4gMSsxOworICAgICAg
ICB9OworCisgICAgICAgIFtnbG9iYWxPYmplY3Qgc2V0VmFsdWU6YmxvY2sgZm9yUHJvcGVydHk6
QCJzZXRUaW1lb3V0Il07CisgICAgICAgIEpTVmFsdWUgKmFyciA9IFtjb250ZXh0IGV2YWx1YXRl
U2NyaXB0OkAidmFyIGFyciA9IFtdOyAoYXN5bmMgKCkgPT4geyBhd2FpdCAxOyBhcnIucHVzaCgz
KTsgfSkoKTsgYXJyLnB1c2goMSk7IHNldFRpbWVvdXQoKTsgYXJyLnB1c2goMik7IGFycjsiXTsK
KyAgICAgICAgY2hlY2tSZXN1bHQoQCJhcnJbMF0gc2hvdWxkIGJlIDEiLCBbYXJyW0AwXSB0b0lu
dDMyXSA9PSAxKTsKKyAgICAgICAgY2hlY2tSZXN1bHQoQCJhcnJbMV0gc2hvdWxkIGJlIDIiLCBb
YXJyW0AxXSB0b0ludDMyXSA9PSAyKTsKKyAgICAgICAgY2hlY2tSZXN1bHQoQCJhcnJbMl0gc2hv
dWxkIGJlIDMiLCBbYXJyW0AyXSB0b0ludDMyXSA9PSAzKTsKKyAgICB9Cit9CisKIEBwcm90b2Nv
bCBUb1N0cmluZyA8SlNFeHBvcnQ+CiAtIChOU1N0cmluZyAqKXRvU3RyaW5nOwogQGVuZApAQCAt
Mjg0OCw2ICsyODY3LDggQEAgdm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSShjb25zdCBjaGFyKiBmaWx0
ZXIpCiAgICAgUlVOKHByb21pc2VDcmVhdGVSZWplY3RlZCgpKTsKICAgICBSVU4ocGFyYWxsZWxQ
cm9taXNlUmVzb2x2ZVRlc3QoKSk7CiAKKyAgICBSVU4odGVzdE1pY3JvdGFza1dpdGhGdW5jdGlv
bigpKTsKKwogICAgIGlmICghZmlsdGVyKQogICAgICAgICB0ZXN0T2JqZWN0aXZlQ0FQSU1haW4o
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCmluZGV4IGFlZjNi
NGM5N2U0NDg3ZDdhN2Y5NDZhZTMyMGFiMDE4NzE4Nzk3ZDkuLmY4YTljMDA4YmRlOGNjZGE1OTc3
YTg4OTI0OGM0MDZmNWM5M2NhNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNM
b2NrLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTE5NywxMCArMTk3LDEyIEBAIHZvaWQgSlNMb2NrOjp3aWxsUmVsZWFzZUxvY2soKQogeyAgIAog
ICAgIFJlZlB0cjxWTT4gdm0gPSBtX3ZtOwogICAgIGlmICh2bSkgewotICAgICAgICB2bS0+ZHJh
aW5NaWNyb3Rhc2tzKCk7CisgICAgICAgIGlmICghbV9sb2NrRHJvcERlcHRoKSB7CisgICAgICAg
ICAgICB2bS0+ZHJhaW5NaWNyb3Rhc2tzKCk7CiAKLSAgICAgICAgaWYgKCF2bS0+dG9wQ2FsbEZy
YW1lKQotICAgICAgICAgICAgdm0tPmNsZWFyTGFzdEV4Y2VwdGlvbigpOworICAgICAgICAgICAg
aWYgKCF2bS0+dG9wQ2FsbEZyYW1lKQorICAgICAgICAgICAgICAgIHZtLT5jbGVhckxhc3RFeGNl
cHRpb24oKTsKKyAgICAgICAgfQogCiAgICAgICAgIHZtLT5oZWFwLnJlbGVhc2VEZWxheWVkUmVs
ZWFzZWRPYmplY3RzKCk7CiAgICAgICAgIHZtLT5zZXRTdGFja1BvaW50ZXJBdFZNRW50cnkobnVs
bHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggYmVhYzg2ZWIwZWI4
Y2Y1MTM4ZWZiZmRjMzgyMzQ3NDJiOGNiZGUxMS4uNzhjNzZlZDg1NmQ2NWMyYTE3MmZmNmRjODMy
NjQwYjk1NzFkNmU0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMTM2
MiwxMyArMTM2MiwxNiBAQCB2b2lkIFZNOjpjYWxsUHJvbWlzZVJlamVjdGlvbkNhbGxiYWNrKFN0
cm9uZzxKU1Byb21pc2U+JiBwcm9taXNlKQogCiB2b2lkIFZNOjpkaWRFeGhhdXN0TWljcm90YXNr
UXVldWUoKQogewotICAgIGF1dG8gdW5oYW5kbGVkUmVqZWN0aW9ucyA9IFdURk1vdmUobV9hYm91
dFRvQmVOb3RpZmllZFJlamVjdGVkUHJvbWlzZXMpOwotICAgIGZvciAoYXV0byYgcHJvbWlzZSA6
IHVuaGFuZGxlZFJlamVjdGlvbnMpIHsKLSAgICAgICAgaWYgKHByb21pc2UtPmlzSGFuZGxlZCgq
dGhpcykpCi0gICAgICAgICAgICBjb250aW51ZTsKKyAgICBkbyB7CisgICAgICAgIGF1dG8gdW5o
YW5kbGVkUmVqZWN0aW9ucyA9IFdURk1vdmUobV9hYm91dFRvQmVOb3RpZmllZFJlamVjdGVkUHJv
bWlzZXMpOworICAgICAgICBmb3IgKGF1dG8mIHByb21pc2UgOiB1bmhhbmRsZWRSZWplY3Rpb25z
KSB7CisgICAgICAgICAgICBpZiAocHJvbWlzZS0+aXNIYW5kbGVkKCp0aGlzKSkKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgY2FsbFByb21pc2VSZWplY3Rpb25DYWxs
YmFjayhwcm9taXNlKTsKKyAgICAgICAgfQorICAgIH0gd2hpbGUgKCFtX2Fib3V0VG9CZU5vdGlm
aWVkUmVqZWN0ZWRQcm9taXNlcy5pc0VtcHR5KCkpOwogCi0gICAgICAgIGNhbGxQcm9taXNlUmVq
ZWN0aW9uQ2FsbGJhY2socHJvbWlzZSk7Ci0gICAgfQogfQogCiB2b2lkIFZNOjpwcm9taXNlUmVq
ZWN0ZWQoSlNQcm9taXNlKiBwcm9taXNlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430884</attachid>
            <date>2021-06-08 13:29:44 -0700</date>
            <delta_ts>2021-06-10 11:05:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161942-20210608162943.patch</filename>
            <type>text/plain</type>
            <size>7466</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OGNlMDUyMTg1ZTlhMjM4ZTdiYWU5YTM3MjkzYTUyNzUzNDRhMTNjLi45YTIwMzMzNzNjYmExMWJk
YzZiMzhlNDVjYzUzMzk0ODM5OWQxYjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAyMS0wNi0wNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBTaG91bGRuJ3QgZHJhaW4gdGhlIG1pY3JvdGFzayBxdWV1
ZSBiZWZvcmUgY2FsbCBuYXRpdmUgZXh0ZW5kIG9iaiByZWdpc3RlcmQgYnkgdXNlIGFwaSAoY2F1
c2UgZXJyb3IgaW4gUHJvbWlzZSBkZWZpbmUpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJdCBsb29rcyBsaWtlIHRoZSBpc3N1ZSBpcyB0aGF0IHdlIGFy
ZW4ndCBjaGVja2luZyBmb3IgdGhlCisgICAgICAgIHByZXNlbmNlIG9mIGRyb3BwZWQgbG9ja3Mg
d2hlbiBkZWNpZGluZyB0byBkcmFpbiBtaWNyb3Rhc2tzIGR1cmluZworICAgICAgICBKU0xvY2s6
OnVubG9jay4gVGhpcyBtZWFudCB0aGF0IHdoZW4gd2UgZHJvcCBhbGwgbG9ja3Mgd2hlbgorICAg
ICAgICBjYWxsaW5nIG91dCB0byBBUEkgY2xpZW50cyB3ZSB3b3VsZCBkcmFpbiBvdXIgbWljcm90
YXNrcyBhdCB0aGF0CisgICAgICAgIHBvaW50LiBBbiBhbHRlcm5hdGl2ZSB3b3VsZCBiZSB0byBw
YXNzIGFuIGV4dHJhIHBhcmFtZXRlciB0byB0aGUKKyAgICAgICAgdW5sb2NrIGZ1bmN0aW9uIHRo
YXQgc2F5cyBub3QgdG8gZHJhaW4gbWljcm90YXNrcy4gSSBjaG9zZSBub3QgdG8KKyAgICAgICAg
ZG8gdGhhdCBzaW5jZSBpdCBzZWVtZWQgYSBiaXQgbGVzcyByb2J1c3QuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBpcyB2ZXJ5IGxpa2VseSB0byBicmVhayBleGlzdGluZyBBUEkgdXNlcnMuIFNvIEkn
bSBhZGRpbmcKKyAgICAgICAgYSBsaW5rZWQgb24gb3IgYWZ0ZXIgY2hlY2sgdG8gcHJvdGVjdCBl
eGlzdGluZyBBUFBzLgorCisgICAgICAgICogQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwOgorICAgICAg
ICAodGVzdENBUElWaWFDcHApOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLm1tOgorICAg
ICAgICAodGVzdE1pY3JvdGFza1dpdGhGdW5jdGlvbik6CisgICAgICAgICh0ZXN0T2JqZWN0aXZl
Q0FQSSk6CisgICAgICAgICogcnVudGltZS9KU0xvY2suY3BwOgorICAgICAgICAoSlNDOjpKU0xv
Y2s6OndpbGxSZWxlYXNlTG9jayk6CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAg
IChKU0M6OlZNOjpkaWRFeGhhdXN0TWljcm90YXNrUXVldWUpOgorCiAyMDIxLTA2LTA3ICBBbGV4
ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBXaW5kb3cgc2hv
dWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5IHBsYXRmb3JtIG9iamVjdCB3aXRob3V0IGluZGV4ZWQg
c2V0dGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3Rh
cGkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmNwcAppbmRl
eCA5YTUxMmFjNTQxYzBmYTFjNGNkYmY2YjkyNWI0ZWUxZTg5NmU4OTkwLi4wMmQwN2NlODFjMDll
Y2YwMGEwNTk1MGEwNDRmMmI5YWU3NmExYTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvdGVzdHMvdGVzdGFwaS5jcHAKQEAgLTE0Nyw2ICsxNDcsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBwcm9taXNlVW5oYW5kbGVkUmVqZWN0aW9uKCk7CiAgICAgdm9pZCBwcm9taXNlVW5oYW5kbGVk
UmVqZWN0aW9uRnJvbVVuaGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrKCk7CiAgICAgdm9pZCBwcm9t
aXNlRWFybHlIYW5kbGVkUmVqZWN0aW9ucygpOworICAgIHZvaWQgcHJvbWlzZURyYWluRG9lc05v
dEVhdEV4Y2VwdGlvbnMoKTsKICAgICB2b2lkIHRvcENhbGxGcmFtZUFjY2VzcygpOwogICAgIHZv
aWQgbWFya2VkSlNWYWx1ZUFycmF5QW5kR0MoKTsKICAgICB2b2lkIGNsYXNzRGVmaW5pdGlvbldp
dGhKU1N1YmNsYXNzKCk7CkBAIC02MDksNiArNjEwLDEzIEBAIHZvaWQgVGVzdEFQSTo6cHJvbWlz
ZUVhcmx5SGFuZGxlZFJlamVjdGlvbnMoKQogICAgIGNoZWNrKCFjYWxsYmFja0NhbGxlZCwgInVu
aGFuZGxlZCByZWplY3Rpb24gY2FsbGJhY2sgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9yIGFzeW5j
aHJvbm91cyBlYXJseS1oYW5kbGVkIHJlamVjdGlvbiIpOwogfQogCit2b2lkIFRlc3RBUEk6OnBy
b21pc2VEcmFpbkRvZXNOb3RFYXRFeGNlcHRpb25zKCkKK3sKKyAgICBTY3JpcHRSZXN1bHQgcmVz
dWx0ID0gY2FsbEZ1bmN0aW9uKCIoZnVuY3Rpb24oKSB7IFByb21pc2UucmVzb2x2ZSgpLnRoZW4o
KCkgPT4geyB0aHJvdyAyOyB9KTsgdGhyb3cgMTsgfSkiKTsKKyAgICBjaGVjayghcmVzdWx0LCAi
ZnVuY3Rpb24gc2hvdWxkIHRocm93IGFuIGVycm9yIik7CisgICAgY2hlY2soSlNWYWx1ZUlzTnVt
YmVyKGNvbnRleHQsIHJlc3VsdC5lcnJvcigpKSAmJiBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwg
cmVzdWx0LmVycm9yKCksIG51bGxwdHIpID09IDEsICJleGNlcHRpb24gcGF5bG9hZCBzaG91bGQg
aGF2ZSBiZWVuIDEiKTsKK30KKwogdm9pZCBUZXN0QVBJOjp0b3BDYWxsRnJhbWVBY2Nlc3MoKQog
ewogICAgIHsKQEAgLTc2MCwxNiArNzY4LDE1IEBAIGludCB0ZXN0Q0FQSVZpYUNwcChjb25zdCBj
aGFyKiBmaWx0ZXIpCiAgICAgUlVOKHByb21pc2VSZWplY3RUcnVlKCkpOwogICAgIFJVTihwcm9t
aXNlVW5oYW5kbGVkUmVqZWN0aW9uKCkpOwogICAgIFJVTihwcm9taXNlVW5oYW5kbGVkUmVqZWN0
aW9uRnJvbVVuaGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrKCkpOworICAgIFJVTihwcm9taXNlRHJh
aW5Eb2VzTm90RWF0RXhjZXB0aW9ucygpKTsKICAgICBSVU4ocHJvbWlzZUVhcmx5SGFuZGxlZFJl
amVjdGlvbnMoKSk7CiAgICAgUlVOKG1hcmtlZEpTVmFsdWVBcnJheUFuZEdDKCkpOwogICAgIFJV
TihjbGFzc0RlZmluaXRpb25XaXRoSlNTdWJjbGFzcygpKTsKICAgICBSVU4ocHJveHlSZXR1cm5l
ZFdpdGhKU1N1YmNsYXNzaW5nKCkpOwogICAgIFJVTih0ZXN0SlNPYmplY3RTZXRPbkdsb2JhbE9i
amVjdFN1YmNsYXNzRGVmaW5pdGlvbigpKTsKIAotICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpIHsK
LSAgICAgICAgZGF0YUxvZ0xuKCJGaWx0ZXJlZCBhbGwgdGVzdHM6IEVSUk9SIik7Ci0gICAgICAg
IHJldHVybiAxOwotICAgIH0KKyAgICBpZiAodGFza3MuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gMDsKIAogICAgIExvY2sgbG9jazsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy90ZXN0YXBpLm1tCmluZGV4IDU5YTM0OWM2NjE3MjQwNWViOTdjMTAzODliYTkxM2VkYzU5MjBh
ZTQuLjE3NmU0ZjYyNWE3YjAwMmE2MWE0ZTlmNjc1OGNkZTU0NDcwYjIyZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KQEAgLTI3MzAsNiArMjczMCwyNSBA
QCBzdGF0aWMgdm9pZCB0ZXN0RGVwZW5kZW5jaWVzTWlzc2luZ0ltcG9ydCgpCiAgICAgfQogfQog
CitzdGF0aWMgdm9pZCB0ZXN0TWljcm90YXNrV2l0aEZ1bmN0aW9uKCkKK3sKKyAgICBAYXV0b3Jl
bGVhc2Vwb29sIHsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxs
b2NdIGluaXRdOworCisgICAgICAgIEpTVmFsdWUgKmdsb2JhbE9iamVjdCA9IGNvbnRleHQuZ2xv
YmFsT2JqZWN0OworCisgICAgICAgIGF1dG8gYmxvY2sgPSBeKCkgeworICAgICAgICAgICAgcmV0
dXJuIDErMTsKKyAgICAgICAgfTsKKworICAgICAgICBbZ2xvYmFsT2JqZWN0IHNldFZhbHVlOmJs
b2NrIGZvclByb3BlcnR5OkAic2V0VGltZW91dCJdOworICAgICAgICBKU1ZhbHVlICphcnIgPSBb
Y29udGV4dCBldmFsdWF0ZVNjcmlwdDpAInZhciBhcnIgPSBbXTsgKGFzeW5jICgpID0+IHsgYXdh
aXQgMTsgYXJyLnB1c2goMyk7IH0pKCk7IGFyci5wdXNoKDEpOyBzZXRUaW1lb3V0KCk7IGFyci5w
dXNoKDIpOyBhcnI7Il07CisgICAgICAgIGNoZWNrUmVzdWx0KEAiYXJyWzBdIHNob3VsZCBiZSAx
IiwgW2FycltAMF0gdG9JbnQzMl0gPT0gMSk7CisgICAgICAgIGNoZWNrUmVzdWx0KEAiYXJyWzFd
IHNob3VsZCBiZSAyIiwgW2FycltAMV0gdG9JbnQzMl0gPT0gMik7CisgICAgICAgIGNoZWNrUmVz
dWx0KEAiYXJyWzJdIHNob3VsZCBiZSAzIiwgW2FycltAMl0gdG9JbnQzMl0gPT0gMyk7CisgICAg
fQorfQorCiBAcHJvdG9jb2wgVG9TdHJpbmcgPEpTRXhwb3J0PgogLSAoTlNTdHJpbmcgKil0b1N0
cmluZzsKIEBlbmQKQEAgLTI4NDgsNiArMjg2Nyw4IEBAIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEko
Y29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTihwcm9taXNlQ3JlYXRlUmVqZWN0ZWQoKSk7CiAg
ICAgUlVOKHBhcmFsbGVsUHJvbWlzZVJlc29sdmVUZXN0KCkpOwogCisgICAgUlVOKHRlc3RNaWNy
b3Rhc2tXaXRoRnVuY3Rpb24oKSk7CisKICAgICBpZiAoIWZpbHRlcikKICAgICAgICAgdGVzdE9i
amVjdGl2ZUNBUElNYWluKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0xvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2Nr
LmNwcAppbmRleCBhZWYzYjRjOTdlNDQ4N2Q3YTdmOTQ2YWUzMjBhYjAxODcxODc5N2Q5Li4zNTUy
ZjVjOTA5NmQ4M2VjMTJkYWQxODYzYmUxMDI4YWMzMDlmN2ExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA1LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgPHd0Zi9pb3MvV2ViQ29y
ZVRocmVhZC5oPgogI2VuZGlmCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1
ZGUgPHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgSlNDIHsK
IAogTG9jayBHbG9iYWxKU0xvY2s6OnNfc2hhcmVkSW5zdGFuY2VNdXRleDsKQEAgLTE5Nyw3ICsy
MDEsMjIgQEAgdm9pZCBKU0xvY2s6OndpbGxSZWxlYXNlTG9jaygpCiB7ICAgCiAgICAgUmVmUHRy
PFZNPiB2bSA9IG1fdm07CiAgICAgaWYgKHZtKSB7Ci0gICAgICAgIHZtLT5kcmFpbk1pY3JvdGFz
a3MoKTsKKyAgICAgICAgc3RhdGljIGJvb2wgdXNlTGVnYWN5RHJhaW4gPSBmYWxzZTsKKyNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25j
ZTsKKyAgICAgICAgc3RkOjpjYWxsX29uY2Uob25jZSwgW10geworI2lmIFBMQVRGT1JNKE1BQykK
KyAgICAgICAgICAgIHVzZUxlZ2FjeURyYWluID0gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lv
bigpIDwgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMDsKKyNlbGlmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgICAgICAgICB1c2VMZWdhY3lEcmFpbiA9IGR5bGRfZ2V0X3Byb2dyYW1fc2RrX3Zl
cnNpb24oKSA8IERZTERfSU9TX1ZFUlNJT05fMTVfMDsKKyNlbHNlCisjZXJyb3IgIlVuc3VwcG9y
dGVkIEFwcGxlIHBsYXRmb3JtIgorI2VuZGlmCisgICAgICAgIH0pOworI2VuZGlmCisKKyAgICAg
ICAgaWYgKCF2bS0+dG9wQ2FsbEZyYW1lIHx8IHVzZUxlZ2FjeURyYWluKQorICAgICAgICAgICAg
dm0tPmRyYWluTWljcm90YXNrcygpOwogCiAgICAgICAgIGlmICghdm0tPnRvcENhbGxGcmFtZSkK
ICAgICAgICAgICAgIHZtLT5jbGVhckxhc3RFeGNlcHRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmNwcAppbmRleCBiZWFjODZlYjBlYjhjZjUxMzhlZmJmZGMzODIzNDc0MmI4Y2Jk
ZTExLi4wZjIxZjIyN2UzOWJiY2Y2MjgyZWM5NGE5ODhiNzAzMDdhNzVlY2U1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC0xMzYyLDEzICsxMzYyLDE1IEBAIHZvaWQgVk06
OmNhbGxQcm9taXNlUmVqZWN0aW9uQ2FsbGJhY2soU3Ryb25nPEpTUHJvbWlzZT4mIHByb21pc2Up
CiAKIHZvaWQgVk06OmRpZEV4aGF1c3RNaWNyb3Rhc2tRdWV1ZSgpCiB7Ci0gICAgYXV0byB1bmhh
bmRsZWRSZWplY3Rpb25zID0gV1RGTW92ZShtX2Fib3V0VG9CZU5vdGlmaWVkUmVqZWN0ZWRQcm9t
aXNlcyk7Ci0gICAgZm9yIChhdXRvJiBwcm9taXNlIDogdW5oYW5kbGVkUmVqZWN0aW9ucykgewot
ICAgICAgICBpZiAocHJvbWlzZS0+aXNIYW5kbGVkKCp0aGlzKSkKLSAgICAgICAgICAgIGNvbnRp
bnVlOworICAgIGRvIHsKKyAgICAgICAgYXV0byB1bmhhbmRsZWRSZWplY3Rpb25zID0gV1RGTW92
ZShtX2Fib3V0VG9CZU5vdGlmaWVkUmVqZWN0ZWRQcm9taXNlcyk7CisgICAgICAgIGZvciAoYXV0
byYgcHJvbWlzZSA6IHVuaGFuZGxlZFJlamVjdGlvbnMpIHsKKyAgICAgICAgICAgIGlmIChwcm9t
aXNlLT5pc0hhbmRsZWQoKnRoaXMpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAg
ICAgIGNhbGxQcm9taXNlUmVqZWN0aW9uQ2FsbGJhY2socHJvbWlzZSk7Ci0gICAgfQorICAgICAg
ICAgICAgY2FsbFByb21pc2VSZWplY3Rpb25DYWxsYmFjayhwcm9taXNlKTsKKyAgICAgICAgfQor
ICAgIH0gd2hpbGUgKCFtX2Fib3V0VG9CZU5vdGlmaWVkUmVqZWN0ZWRQcm9taXNlcy5pc0VtcHR5
KCkpOwogfQogCiB2b2lkIFZNOjpwcm9taXNlUmVqZWN0ZWQoSlNQcm9taXNlKiBwcm9taXNlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431093</attachid>
            <date>2021-06-10 11:05:38 -0700</date>
            <delta_ts>2021-06-10 13:43:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161942-20210610140537.patch</filename>
            <type>text/plain</type>
            <size>8556</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OGNlMDUyMTg1ZTlhMjM4ZTdiYWU5YTM3MjkzYTUyNzUzNDRhMTNjLi5mOGUyYzllMGQ3YzUyZTI0
NzE5MWYzM2IyYWE0OTBkYzZhMGJhMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAyMS0wNi0xMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTaG91bGRuJ3QgZHJhaW4gdGhlIG1pY3JvIHRhc2sgcXVldWUgd2hl
biBjYWxsaW5nIG91dCB0byBPYmpDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjE5NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJdCBsb29rcyBsaWtlIHRoZSBpc3N1ZSBpcyB0aGF0IHdlIGFyZW4ndCBj
aGVja2luZyBmb3IgdGhlCisgICAgICAgIHByZXNlbmNlIG9mIGRyb3BwZWQgbG9ja3Mgd2hlbiBk
ZWNpZGluZyB0byBkcmFpbiBtaWNyb3Rhc2tzIGR1cmluZworICAgICAgICBKU0xvY2s6OnVubG9j
ay4gVGhpcyBtZWFudCB0aGF0IHdoZW4gd2UgZHJvcCBhbGwgbG9ja3Mgd2hlbgorICAgICAgICBj
YWxsaW5nIG91dCB0byBBUEkgY2xpZW50cyB3ZSB3b3VsZCBkcmFpbiBvdXIgbWljcm90YXNrcyBh
dCB0aGF0CisgICAgICAgIHBvaW50LiBBbiBhbHRlcm5hdGl2ZSB3b3VsZCBiZSB0byBwYXNzIGFu
IGV4dHJhIHBhcmFtZXRlciB0byB0aGUKKyAgICAgICAgdW5sb2NrIGZ1bmN0aW9uIHRoYXQgc2F5
cyBub3QgdG8gZHJhaW4gbWljcm90YXNrcy4gSSBjaG9zZSBub3QgdG8KKyAgICAgICAgZG8gdGhh
dCBzaW5jZSBpdCBzZWVtZWQgYSBiaXQgbGVzcyByb2J1c3QuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpcyB2ZXJ5IGxpa2VseSB0byBicmVhayBleGlzdGluZyBBUEkgdXNlcnMuIFNvIEknbSBhZGRp
bmcKKyAgICAgICAgYSBsaW5rZWQgb24gb3IgYWZ0ZXIgY2hlY2sgdG8gcHJvdGVjdCBleGlzdGlu
ZyBBcHBzLgorCisgICAgICAgIExhc3RseSwgY2hhbmdlIG91ciBQb2tlciBCcm9zIGNoZWNrIHRv
IHVzZSBhcHBsaWNhdGlvblNES1ZlcnNpb24gdG9vCisgICAgICAgIHNvIG90aGVycyB0cnlpbmcg
dG8gYWRkIGEgbGlua2VkIG9uIG9yIGFmdGVyIGNoZWNrIGRvbid0IHVzZQorICAgICAgICB0aGUg
ZHlsZCBmdW5jdGlvbiBkaXJlY3RseSB0b28uCisKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFw
aS5jcHA6CisgICAgICAgIChUZXN0QVBJOjpwcm9taXNlRHJhaW5Eb2VzTm90RWF0RXhjZXB0aW9u
cyk6CisgICAgICAgICh0ZXN0Q0FQSVZpYUNwcCk6CisgICAgICAgICogQVBJL3Rlc3RzL3Rlc3Rh
cGkubW06CisgICAgICAgICh0ZXN0TWljcm90YXNrV2l0aEZ1bmN0aW9uKToKKyAgICAgICAgKHRl
c3RPYmplY3RpdmVDQVBJKToKKyAgICAgICAgKiBydW50aW1lL0pTTG9jay5jcHA6CisgICAgICAg
IChKU0M6OkpTTG9jazo6d2lsbFJlbGVhc2VMb2NrKToKKyAgICAgICAgKiBydW50aW1lL09iamVj
dFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmlzUG9rZXJCcm9zKToKKyAgICAgICAgKiBy
dW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OmRpZEV4aGF1c3RNaWNyb3Rhc2tRdWV1
ZSk6CisKIDIwMjEtMDYtMDcgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29t
PgogCiAgICAgICAgIFdpbmRvdyBzaG91bGQgYmVoYXZlIGxpa2UgYSBsZWdhY3kgcGxhdGZvcm0g
b2JqZWN0IHdpdGhvdXQgaW5kZXhlZCBzZXR0ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL3Rlc3RhcGkuY3BwCmluZGV4IDlhNTEyYWM1NDFjMGZhMWM0Y2RiZjZiOTI1YjRlZTFl
ODk2ZTg5OTAuLjAyZDA3Y2U4MWMwOWVjZjAwYTA1OTUwYTA0NGYyYjlhZTc2YTFhMjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmNwcApAQCAtMTQ3LDYgKzE0
Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHByb21pc2VVbmhhbmRsZWRSZWplY3Rpb24oKTsKICAg
ICB2b2lkIHByb21pc2VVbmhhbmRsZWRSZWplY3Rpb25Gcm9tVW5oYW5kbGVkUmVqZWN0aW9uQ2Fs
bGJhY2soKTsKICAgICB2b2lkIHByb21pc2VFYXJseUhhbmRsZWRSZWplY3Rpb25zKCk7CisgICAg
dm9pZCBwcm9taXNlRHJhaW5Eb2VzTm90RWF0RXhjZXB0aW9ucygpOwogICAgIHZvaWQgdG9wQ2Fs
bEZyYW1lQWNjZXNzKCk7CiAgICAgdm9pZCBtYXJrZWRKU1ZhbHVlQXJyYXlBbmRHQygpOwogICAg
IHZvaWQgY2xhc3NEZWZpbml0aW9uV2l0aEpTU3ViY2xhc3MoKTsKQEAgLTYwOSw2ICs2MTAsMTMg
QEAgdm9pZCBUZXN0QVBJOjpwcm9taXNlRWFybHlIYW5kbGVkUmVqZWN0aW9ucygpCiAgICAgY2hl
Y2soIWNhbGxiYWNrQ2FsbGVkLCAidW5oYW5kbGVkIHJlamVjdGlvbiBjYWxsYmFjayBzaG91bGQg
bm90IGJlIGNhbGxlZCBmb3IgYXN5bmNocm9ub3VzIGVhcmx5LWhhbmRsZWQgcmVqZWN0aW9uIik7
CiB9CiAKK3ZvaWQgVGVzdEFQSTo6cHJvbWlzZURyYWluRG9lc05vdEVhdEV4Y2VwdGlvbnMoKQor
eworICAgIFNjcmlwdFJlc3VsdCByZXN1bHQgPSBjYWxsRnVuY3Rpb24oIihmdW5jdGlvbigpIHsg
UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7IHRocm93IDI7IH0pOyB0aHJvdyAxOyB9KSIp
OworICAgIGNoZWNrKCFyZXN1bHQsICJmdW5jdGlvbiBzaG91bGQgdGhyb3cgYW4gZXJyb3IiKTsK
KyAgICBjaGVjayhKU1ZhbHVlSXNOdW1iZXIoY29udGV4dCwgcmVzdWx0LmVycm9yKCkpICYmIEpT
VmFsdWVUb051bWJlcihjb250ZXh0LCByZXN1bHQuZXJyb3IoKSwgbnVsbHB0cikgPT0gMSwgImV4
Y2VwdGlvbiBwYXlsb2FkIHNob3VsZCBoYXZlIGJlZW4gMSIpOworfQorCiB2b2lkIFRlc3RBUEk6
OnRvcENhbGxGcmFtZUFjY2VzcygpCiB7CiAgICAgewpAQCAtNzYwLDE2ICs3NjgsMTUgQEAgaW50
IHRlc3RDQVBJVmlhQ3BwKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU4ocHJvbWlzZVJlamVj
dFRydWUoKSk7CiAgICAgUlVOKHByb21pc2VVbmhhbmRsZWRSZWplY3Rpb24oKSk7CiAgICAgUlVO
KHByb21pc2VVbmhhbmRsZWRSZWplY3Rpb25Gcm9tVW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2so
KSk7CisgICAgUlVOKHByb21pc2VEcmFpbkRvZXNOb3RFYXRFeGNlcHRpb25zKCkpOwogICAgIFJV
Tihwcm9taXNlRWFybHlIYW5kbGVkUmVqZWN0aW9ucygpKTsKICAgICBSVU4obWFya2VkSlNWYWx1
ZUFycmF5QW5kR0MoKSk7CiAgICAgUlVOKGNsYXNzRGVmaW5pdGlvbldpdGhKU1N1YmNsYXNzKCkp
OwogICAgIFJVTihwcm94eVJldHVybmVkV2l0aEpTU3ViY2xhc3NpbmcoKSk7CiAgICAgUlVOKHRl
c3RKU09iamVjdFNldE9uR2xvYmFsT2JqZWN0U3ViY2xhc3NEZWZpbml0aW9uKCkpOwogCi0gICAg
aWYgKHRhc2tzLmlzRW1wdHkoKSkgewotICAgICAgICBkYXRhTG9nTG4oIkZpbHRlcmVkIGFsbCB0
ZXN0czogRVJST1IiKTsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQorICAgIGlmICh0YXNrcy5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiAwOwogCiAgICAgTG9jayBsb2NrOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KaW5kZXggNTlhMzQ5YzY2MTcyNDA1
ZWI5N2MxMDM4OWJhOTEzZWRjNTkyMGFlNC4uMTc2ZTRmNjI1YTdiMDAyYTYxYTRlOWY2NzU4Y2Rl
NTQ0NzBiMjJmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90
ZXN0YXBpLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5t
bQpAQCAtMjczMCw2ICsyNzMwLDI1IEBAIHN0YXRpYyB2b2lkIHRlc3REZXBlbmRlbmNpZXNNaXNz
aW5nSW1wb3J0KCkKICAgICB9CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3RNaWNyb3Rhc2tXaXRoRnVu
Y3Rpb24oKQoreworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBKU0NvbnRleHQgKmNv
bnRleHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07CisKKyAgICAgICAgSlNWYWx1ZSAqZ2xv
YmFsT2JqZWN0ID0gY29udGV4dC5nbG9iYWxPYmplY3Q7CisKKyAgICAgICAgYXV0byBibG9jayA9
IF4oKSB7CisgICAgICAgICAgICByZXR1cm4gMSsxOworICAgICAgICB9OworCisgICAgICAgIFtn
bG9iYWxPYmplY3Qgc2V0VmFsdWU6YmxvY2sgZm9yUHJvcGVydHk6QCJzZXRUaW1lb3V0Il07Cisg
ICAgICAgIEpTVmFsdWUgKmFyciA9IFtjb250ZXh0IGV2YWx1YXRlU2NyaXB0OkAidmFyIGFyciA9
IFtdOyAoYXN5bmMgKCkgPT4geyBhd2FpdCAxOyBhcnIucHVzaCgzKTsgfSkoKTsgYXJyLnB1c2go
MSk7IHNldFRpbWVvdXQoKTsgYXJyLnB1c2goMik7IGFycjsiXTsKKyAgICAgICAgY2hlY2tSZXN1
bHQoQCJhcnJbMF0gc2hvdWxkIGJlIDEiLCBbYXJyW0AwXSB0b0ludDMyXSA9PSAxKTsKKyAgICAg
ICAgY2hlY2tSZXN1bHQoQCJhcnJbMV0gc2hvdWxkIGJlIDIiLCBbYXJyW0AxXSB0b0ludDMyXSA9
PSAyKTsKKyAgICAgICAgY2hlY2tSZXN1bHQoQCJhcnJbMl0gc2hvdWxkIGJlIDMiLCBbYXJyW0Ay
XSB0b0ludDMyXSA9PSAzKTsKKyAgICB9Cit9CisKIEBwcm90b2NvbCBUb1N0cmluZyA8SlNFeHBv
cnQ+CiAtIChOU1N0cmluZyAqKXRvU3RyaW5nOwogQGVuZApAQCAtMjg0OCw2ICsyODY3LDggQEAg
dm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSShjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOKHByb21p
c2VDcmVhdGVSZWplY3RlZCgpKTsKICAgICBSVU4ocGFyYWxsZWxQcm9taXNlUmVzb2x2ZVRlc3Qo
KSk7CiAKKyAgICBSVU4odGVzdE1pY3JvdGFza1dpdGhGdW5jdGlvbigpKTsKKwogICAgIGlmICgh
ZmlsdGVyKQogICAgICAgICB0ZXN0T2JqZWN0aXZlQ0FQSU1haW4oKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCmluZGV4IGFlZjNiNGM5N2U0NDg3ZDdhN2Y5NDZh
ZTMyMGFiMDE4NzE4Nzk3ZDkuLmQzNmYxYjU0NDk5MzVlZjdmNDUxODI1OTUzZmQ1MDc4MTk3NDAx
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMzLDYgKzMzLDEwIEBACiAj
aW5jbHVkZSA8d3RmL2lvcy9XZWJDb3JlVGhyZWFkLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JN
KENPQ09BKQorI2luY2x1ZGUgPHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2Nv
YS5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBKU0MgewogCiBMb2NrIEdsb2JhbEpTTG9jazo6c19z
aGFyZWRJbnN0YW5jZU11dGV4OwpAQCAtMTk3LDcgKzIwMSwyMiBAQCB2b2lkIEpTTG9jazo6d2ls
bFJlbGVhc2VMb2NrKCkKIHsgICAKICAgICBSZWZQdHI8Vk0+IHZtID0gbV92bTsKICAgICBpZiAo
dm0pIHsKLSAgICAgICAgdm0tPmRyYWluTWljcm90YXNrcygpOworICAgICAgICBzdGF0aWMgYm9v
bCB1c2VMZWdhY3lEcmFpbiA9IGZhbHNlOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKKyAgICAgICAgc3RkOjpjYWxsX29uY2Uob25jZSwg
W10geworI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgICAgIHVzZUxlZ2FjeURyYWluID0gYXBw
bGljYXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX01BQ09TWF9WRVJTSU9OXzEyXzAwOworI2VsaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgICAgIHVzZUxlZ2FjeURyYWluID0gYXBwbGlj
YXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX0lPU19WRVJTSU9OXzE1XzA7CisjZWxzZQorI2Vycm9y
ICJVbnN1cHBvcnRlZCBDb2NvYSBQbGF0Zm9ybSIKKyNlbmRpZgorICAgICAgICB9KTsKKyNlbmRp
ZgorCisgICAgICAgIGlmICghbV9sb2NrRHJvcERlcHRoIHx8IHVzZUxlZ2FjeURyYWluKQorICAg
ICAgICAgICAgdm0tPmRyYWluTWljcm90YXNrcygpOwogCiAgICAgICAgIGlmICghdm0tPnRvcENh
bGxGcmFtZSkKICAgICAgICAgICAgIHZtLT5jbGVhckxhc3RFeGNlcHRpb24oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4IGQ2
MTZkYWNhNjBiYjc0NWRkNjliNjNjMDc0NjA0YjNjZWI0MzBhODguLmVlMzEzNjhlNTk3NjVkZmJh
YzNiMzA4ODczZGE4MDY0NzEzNTAzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUg
IlByb3BlcnR5U2xvdC5oIgogCiAjaWYgUExBVEZPUk0oSU9TKQotI2luY2x1ZGUgPHd0Zi9zcGkv
ZGFyd2luL2R5bGRTUEkuaD4KKyNpbmNsdWRlIDx3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzQ29jb2EuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTMyMiw3ICszMjIs
NyBAQCBpbmxpbmUgc3RhdGljIGJvb2wgaXNQb2tlckJyb3MoKQogICAgIGF1dG8gYnVuZGxlSUQg
PSBDRkJ1bmRsZUdldElkZW50aWZpZXIoQ0ZCdW5kbGVHZXRNYWluQnVuZGxlKCkpOwogICAgIHJl
dHVybiBidW5kbGVJRAogICAgICAgICAmJiBDRkVxdWFsKGJ1bmRsZUlELCBDRlNUUigiY29tLmtw
Z2FtZS5Qb2tlckJyb3MiKSkKLSAgICAgICAgJiYgZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lv
bigpIDwgRFlMRF9JT1NfVkVSU0lPTl8xNF8wOworICAgICAgICAmJiBhcHBsaWNhdGlvblNES1Zl
cnNpb24oKSA8IERZTERfSU9TX1ZFUlNJT05fMTRfMDsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggYmVhYzg2ZWIwZWI4Y2Y1MTM4ZWZiZmRjMzgyMzQ3
NDJiOGNiZGUxMS4uMGYyMWYyMjdlMzliYmNmNjI4MmVjOTRhOTg4YjcwMzA3YTc1ZWNlNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMTM2MiwxMyArMTM2MiwxNSBAQCB2
b2lkIFZNOjpjYWxsUHJvbWlzZVJlamVjdGlvbkNhbGxiYWNrKFN0cm9uZzxKU1Byb21pc2U+JiBw
cm9taXNlKQogCiB2b2lkIFZNOjpkaWRFeGhhdXN0TWljcm90YXNrUXVldWUoKQogewotICAgIGF1
dG8gdW5oYW5kbGVkUmVqZWN0aW9ucyA9IFdURk1vdmUobV9hYm91dFRvQmVOb3RpZmllZFJlamVj
dGVkUHJvbWlzZXMpOwotICAgIGZvciAoYXV0byYgcHJvbWlzZSA6IHVuaGFuZGxlZFJlamVjdGlv
bnMpIHsKLSAgICAgICAgaWYgKHByb21pc2UtPmlzSGFuZGxlZCgqdGhpcykpCi0gICAgICAgICAg
ICBjb250aW51ZTsKKyAgICBkbyB7CisgICAgICAgIGF1dG8gdW5oYW5kbGVkUmVqZWN0aW9ucyA9
IFdURk1vdmUobV9hYm91dFRvQmVOb3RpZmllZFJlamVjdGVkUHJvbWlzZXMpOworICAgICAgICBm
b3IgKGF1dG8mIHByb21pc2UgOiB1bmhhbmRsZWRSZWplY3Rpb25zKSB7CisgICAgICAgICAgICBp
ZiAocHJvbWlzZS0+aXNIYW5kbGVkKCp0aGlzKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICBjYWxsUHJvbWlzZVJlamVjdGlvbkNhbGxiYWNrKHByb21pc2UpOwotICAgIH0K
KyAgICAgICAgICAgIGNhbGxQcm9taXNlUmVqZWN0aW9uQ2FsbGJhY2socHJvbWlzZSk7CisgICAg
ICAgIH0KKyAgICB9IHdoaWxlICghbV9hYm91dFRvQmVOb3RpZmllZFJlamVjdGVkUHJvbWlzZXMu
aXNFbXB0eSgpKTsKIH0KIAogdm9pZCBWTTo6cHJvbWlzZVJlamVjdGVkKEpTUHJvbWlzZSogcHJv
bWlzZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431120</attachid>
            <date>2021-06-10 13:43:08 -0700</date>
            <delta_ts>2021-06-14 10:26:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-161942-20210610164307.patch</filename>
            <type>text/plain</type>
            <size>9423</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OGNlMDUyMTg1ZTlhMjM4ZTdiYWU5YTM3MjkzYTUyNzUzNDRhMTNjLi43MTdiZTg1NDJhNDc1ODI0
M2MwY2NlOTFhNjE2YzY0YTgwZGU5MGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAyMS0wNi0xMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTaG91bGRuJ3QgZHJhaW4gdGhlIG1pY3JvIHRhc2sgcXVldWUgd2hl
biBjYWxsaW5nIG91dCB0byBPYmpDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjE5NDIKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0aS4K
KworICAgICAgICBJdCBsb29rcyBsaWtlIHRoZSBpc3N1ZSBpcyB0aGF0IHdlIGFyZW4ndCBjaGVj
a2luZyBmb3IgdGhlCisgICAgICAgIHByZXNlbmNlIG9mIGRyb3BwZWQgbG9ja3Mgd2hlbiBkZWNp
ZGluZyB0byBkcmFpbiBtaWNyb3Rhc2tzIGR1cmluZworICAgICAgICBKU0xvY2s6OnVubG9jay4g
VGhpcyBtZWFudCB0aGF0IHdoZW4gd2UgZHJvcCBhbGwgbG9ja3Mgd2hlbgorICAgICAgICBjYWxs
aW5nIG91dCB0byBBUEkgY2xpZW50cyB3ZSB3b3VsZCBkcmFpbiBvdXIgbWljcm90YXNrcyBhdCB0
aGF0CisgICAgICAgIHBvaW50LiBBbiBhbHRlcm5hdGl2ZSB3b3VsZCBiZSB0byBwYXNzIGFuIGV4
dHJhIHBhcmFtZXRlciB0byB0aGUKKyAgICAgICAgdW5sb2NrIGZ1bmN0aW9uIHRoYXQgc2F5cyBu
b3QgdG8gZHJhaW4gbWljcm90YXNrcy4gSSBjaG9zZSBub3QgdG8KKyAgICAgICAgZG8gdGhhdCBz
aW5jZSBpdCBzZWVtZWQgYSBiaXQgbGVzcyByb2J1c3QuCisKKyAgICAgICAgVGhpcyBwYXRjaCBp
cyB2ZXJ5IGxpa2VseSB0byBicmVhayBleGlzdGluZyBBUEkgdXNlcnMuIFNvIEknbSBhZGRpbmcK
KyAgICAgICAgYSBsaW5rZWQgb24gb3IgYWZ0ZXIgY2hlY2sgdG8gcHJvdGVjdCBleGlzdGluZyBB
cHBzLgorCisgICAgICAgIExhc3RseSwgY2hhbmdlIG91ciBQb2tlciBCcm9zIGNoZWNrIHRvIHVz
ZSBhcHBsaWNhdGlvblNES1ZlcnNpb24gdG9vCisgICAgICAgIHNvIG90aGVycyB0cnlpbmcgdG8g
YWRkIGEgbGlua2VkIG9uIG9yIGFmdGVyIGNoZWNrIGRvbid0IHVzZQorICAgICAgICB0aGUgZHls
ZCBmdW5jdGlvbiBkaXJlY3RseSB0b28uCisKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5j
cHA6CisgICAgICAgIChUZXN0QVBJOjpwcm9taXNlRHJhaW5Eb2VzTm90RWF0RXhjZXB0aW9ucyk6
CisgICAgICAgICh0ZXN0Q0FQSVZpYUNwcCk6CisgICAgICAgICogQVBJL3Rlc3RzL3Rlc3RhcGku
bW06CisgICAgICAgICh0ZXN0TWljcm90YXNrV2l0aEZ1bmN0aW9uKToKKyAgICAgICAgKHRlc3RP
YmplY3RpdmVDQVBJKToKKyAgICAgICAgKiBydW50aW1lL0pTTG9jay5jcHA6CisgICAgICAgIChK
U0M6OkpTTG9jazo6d2lsbFJlbGVhc2VMb2NrKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdFBy
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmlzUG9rZXJCcm9zKToKKyAgICAgICAgKiBydW50
aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OmRpZEV4aGF1c3RNaWNyb3Rhc2tRdWV1ZSk6
CisKIDIwMjEtMDYtMDcgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgog
CiAgICAgICAgIFdpbmRvdyBzaG91bGQgYmVoYXZlIGxpa2UgYSBsZWdhY3kgcGxhdGZvcm0gb2Jq
ZWN0IHdpdGhvdXQgaW5kZXhlZCBzZXR0ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rl
c3RzL3Rlc3RhcGkuY3BwCmluZGV4IDlhNTEyYWM1NDFjMGZhMWM0Y2RiZjZiOTI1YjRlZTFlODk2
ZTg5OTAuLjQ0YzIxOTQ5ZGZmOWFlMWNhNmIyOTdiZmRjMDBkNmM2MzZjMTJkY2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmNwcApAQCAtMzgsNiArMzgsMTAg
QEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29t
bW9uLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlIDx3dGYvY29jb2EvUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KKyNlbmRpZgorCiBleHRlcm4gIkMiIHZvaWQgY29u
ZmlndXJlSlNDRm9yVGVzdGluZygpOwogZXh0ZXJuICJDIiBpbnQgdGVzdENBUElWaWFDcHAoY29u
c3QgY2hhciogZmlsdGVyKTsKIGV4dGVybiAiQyIgdm9pZCBKU1N5bmNocm9ub3VzR2FyYmFnZUNv
bGxlY3RGb3JEZWJ1Z2dpbmcoSlNDb250ZXh0UmVmKTsKQEAgLTE0Nyw2ICsxNTEsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBwcm9taXNlVW5oYW5kbGVkUmVqZWN0aW9uKCk7CiAgICAgdm9pZCBwcm9t
aXNlVW5oYW5kbGVkUmVqZWN0aW9uRnJvbVVuaGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrKCk7CiAg
ICAgdm9pZCBwcm9taXNlRWFybHlIYW5kbGVkUmVqZWN0aW9ucygpOworICAgIHZvaWQgcHJvbWlz
ZURyYWluRG9lc05vdEVhdEV4Y2VwdGlvbnMoKTsKICAgICB2b2lkIHRvcENhbGxGcmFtZUFjY2Vz
cygpOwogICAgIHZvaWQgbWFya2VkSlNWYWx1ZUFycmF5QW5kR0MoKTsKICAgICB2b2lkIGNsYXNz
RGVmaW5pdGlvbldpdGhKU1N1YmNsYXNzKCk7CkBAIC02MDksNiArNjE0LDI3IEBAIHZvaWQgVGVz
dEFQSTo6cHJvbWlzZUVhcmx5SGFuZGxlZFJlamVjdGlvbnMoKQogICAgIGNoZWNrKCFjYWxsYmFj
a0NhbGxlZCwgInVuaGFuZGxlZCByZWplY3Rpb24gY2FsbGJhY2sgc2hvdWxkIG5vdCBiZSBjYWxs
ZWQgZm9yIGFzeW5jaHJvbm91cyBlYXJseS1oYW5kbGVkIHJlamVjdGlvbiIpOwogfQogCit2b2lk
IFRlc3RBUEk6OnByb21pc2VEcmFpbkRvZXNOb3RFYXRFeGNlcHRpb25zKCkKK3sKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICAgICAgYm9vbCB1c2VMZWdhY3lEcmFpbiA9IGZhbHNlOworI2lmIFBM
QVRGT1JNKE1BQykKKyAgICAgICAgdXNlTGVnYWN5RHJhaW4gPSBhcHBsaWNhdGlvblNES1ZlcnNp
b24oKSA8IERZTERfTUFDT1NYX1ZFUlNJT05fMTJfMDA7CisjZWxpZiBQTEFURk9STShXQVRDSCkK
KyAgICAgICAgICAgIC8vIERvbid0IGNoZWNrLCBKU0MgaXNuJ3QgQVBJIG9uIHdhdGNoIGFueXdh
eS4KKyNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIHVzZUxlZ2FjeURyYWluID0g
YXBwbGljYXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX0lPU19WRVJTSU9OXzE1XzA7CisjZWxzZQor
I2Vycm9yICJVbnN1cHBvcnRlZCBDb2NvYSBQbGF0Zm9ybSIKKyNlbmRpZgorICAgICAgICBpZiAo
dXNlTGVnYWN5RHJhaW4pCisgICAgICAgICAgICByZXR1cm47CisjZW5kaWYKKyAgICBTY3JpcHRS
ZXN1bHQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKCIoZnVuY3Rpb24oKSB7IFByb21pc2UucmVzb2x2
ZSgpLnRoZW4oKCkgPT4geyB0aHJvdyAyOyB9KTsgdGhyb3cgMTsgfSkiKTsKKyAgICBjaGVjaygh
cmVzdWx0LCAiZnVuY3Rpb24gc2hvdWxkIHRocm93IGFuIGVycm9yIik7CisgICAgY2hlY2soSlNW
YWx1ZUlzTnVtYmVyKGNvbnRleHQsIHJlc3VsdC5lcnJvcigpKSAmJiBKU1ZhbHVlVG9OdW1iZXIo
Y29udGV4dCwgcmVzdWx0LmVycm9yKCksIG51bGxwdHIpID09IDEsICJleGNlcHRpb24gcGF5bG9h
ZCBzaG91bGQgaGF2ZSBiZWVuIDEiKTsKK30KKwogdm9pZCBUZXN0QVBJOjp0b3BDYWxsRnJhbWVB
Y2Nlc3MoKQogewogICAgIHsKQEAgLTc2MCwxNiArNzg2LDE1IEBAIGludCB0ZXN0Q0FQSVZpYUNw
cChjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOKHByb21pc2VSZWplY3RUcnVlKCkpOwogICAg
IFJVTihwcm9taXNlVW5oYW5kbGVkUmVqZWN0aW9uKCkpOwogICAgIFJVTihwcm9taXNlVW5oYW5k
bGVkUmVqZWN0aW9uRnJvbVVuaGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrKCkpOworICAgIFJVTihw
cm9taXNlRHJhaW5Eb2VzTm90RWF0RXhjZXB0aW9ucygpKTsKICAgICBSVU4ocHJvbWlzZUVhcmx5
SGFuZGxlZFJlamVjdGlvbnMoKSk7CiAgICAgUlVOKG1hcmtlZEpTVmFsdWVBcnJheUFuZEdDKCkp
OwogICAgIFJVTihjbGFzc0RlZmluaXRpb25XaXRoSlNTdWJjbGFzcygpKTsKICAgICBSVU4ocHJv
eHlSZXR1cm5lZFdpdGhKU1N1YmNsYXNzaW5nKCkpOwogICAgIFJVTih0ZXN0SlNPYmplY3RTZXRP
bkdsb2JhbE9iamVjdFN1YmNsYXNzRGVmaW5pdGlvbigpKTsKIAotICAgIGlmICh0YXNrcy5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgZGF0YUxvZ0xuKCJGaWx0ZXJlZCBhbGwgdGVzdHM6IEVSUk9SIik7
Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KKyAgICBpZiAodGFza3MuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gMDsKIAogICAgIExvY2sgbG9jazsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy90ZXN0YXBpLm1tCmluZGV4IDU5YTM0OWM2NjE3MjQwNWViOTdjMTAzODliYTkx
M2VkYzU5MjBhZTQuLjE3NmU0ZjYyNWE3YjAwMmE2MWE0ZTlmNjc1OGNkZTU0NDcwYjIyZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KQEAgLTI3MzAsNiAr
MjczMCwyNSBAQCBzdGF0aWMgdm9pZCB0ZXN0RGVwZW5kZW5jaWVzTWlzc2luZ0ltcG9ydCgpCiAg
ICAgfQogfQogCitzdGF0aWMgdm9pZCB0ZXN0TWljcm90YXNrV2l0aEZ1bmN0aW9uKCkKK3sKKyAg
ICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0Nv
bnRleHQgYWxsb2NdIGluaXRdOworCisgICAgICAgIEpTVmFsdWUgKmdsb2JhbE9iamVjdCA9IGNv
bnRleHQuZ2xvYmFsT2JqZWN0OworCisgICAgICAgIGF1dG8gYmxvY2sgPSBeKCkgeworICAgICAg
ICAgICAgcmV0dXJuIDErMTsKKyAgICAgICAgfTsKKworICAgICAgICBbZ2xvYmFsT2JqZWN0IHNl
dFZhbHVlOmJsb2NrIGZvclByb3BlcnR5OkAic2V0VGltZW91dCJdOworICAgICAgICBKU1ZhbHVl
ICphcnIgPSBbY29udGV4dCBldmFsdWF0ZVNjcmlwdDpAInZhciBhcnIgPSBbXTsgKGFzeW5jICgp
ID0+IHsgYXdhaXQgMTsgYXJyLnB1c2goMyk7IH0pKCk7IGFyci5wdXNoKDEpOyBzZXRUaW1lb3V0
KCk7IGFyci5wdXNoKDIpOyBhcnI7Il07CisgICAgICAgIGNoZWNrUmVzdWx0KEAiYXJyWzBdIHNo
b3VsZCBiZSAxIiwgW2FycltAMF0gdG9JbnQzMl0gPT0gMSk7CisgICAgICAgIGNoZWNrUmVzdWx0
KEAiYXJyWzFdIHNob3VsZCBiZSAyIiwgW2FycltAMV0gdG9JbnQzMl0gPT0gMik7CisgICAgICAg
IGNoZWNrUmVzdWx0KEAiYXJyWzJdIHNob3VsZCBiZSAzIiwgW2FycltAMl0gdG9JbnQzMl0gPT0g
Myk7CisgICAgfQorfQorCiBAcHJvdG9jb2wgVG9TdHJpbmcgPEpTRXhwb3J0PgogLSAoTlNTdHJp
bmcgKil0b1N0cmluZzsKIEBlbmQKQEAgLTI4NDgsNiArMjg2Nyw4IEBAIHZvaWQgdGVzdE9iamVj
dGl2ZUNBUEkoY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTihwcm9taXNlQ3JlYXRlUmVqZWN0
ZWQoKSk7CiAgICAgUlVOKHBhcmFsbGVsUHJvbWlzZVJlc29sdmVUZXN0KCkpOwogCisgICAgUlVO
KHRlc3RNaWNyb3Rhc2tXaXRoRnVuY3Rpb24oKSk7CisKICAgICBpZiAoIWZpbHRlcikKICAgICAg
ICAgdGVzdE9iamVjdGl2ZUNBUElNYWluKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNMb2NrLmNwcAppbmRleCBhZWYzYjRjOTdlNDQ4N2Q3YTdmOTQ2YWUzMjBhYjAxODcxODc5
N2Q5Li4wZWZmNzhiMjNiYzBjNDk5NDViN2Y0ZDc2ZWZmMDEzY2NiOWQ0NWI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgPHd0Zi9p
b3MvV2ViQ29yZVRocmVhZC5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNs
dWRlIDx3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KKyNlbmRpZgor
CiBuYW1lc3BhY2UgSlNDIHsKIAogTG9jayBHbG9iYWxKU0xvY2s6OnNfc2hhcmVkSW5zdGFuY2VN
dXRleDsKQEAgLTE5Nyw3ICsyMDEsMjQgQEAgdm9pZCBKU0xvY2s6OndpbGxSZWxlYXNlTG9jaygp
CiB7ICAgCiAgICAgUmVmUHRyPFZNPiB2bSA9IG1fdm07CiAgICAgaWYgKHZtKSB7Ci0gICAgICAg
IHZtLT5kcmFpbk1pY3JvdGFza3MoKTsKKyAgICAgICAgc3RhdGljIGJvb2wgdXNlTGVnYWN5RHJh
aW4gPSBmYWxzZTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIG9uY2U7CisgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgICAgICAgICB1c2VMZWdhY3lEcmFpbiA9IGFwcGxpY2F0aW9uU0RLVmVy
c2lvbigpIDwgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMDsKKyNlbGlmIFBMQVRGT1JNKFdBVENI
KQorICAgICAgICAgICAgLy8gRG9uJ3QgY2hlY2ssIEpTQyBpc24ndCBBUEkgb24gd2F0Y2ggYW55
d2F5LgorI2VsaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgICAgIHVzZUxlZ2FjeURy
YWluID0gYXBwbGljYXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX0lPU19WRVJTSU9OXzE1XzA7Cisj
ZWxzZQorI2Vycm9yICJVbnN1cHBvcnRlZCBDb2NvYSBQbGF0Zm9ybSIKKyNlbmRpZgorICAgICAg
ICB9KTsKKyNlbmRpZgorCisgICAgICAgIGlmICghbV9sb2NrRHJvcERlcHRoIHx8IHVzZUxlZ2Fj
eURyYWluKQorICAgICAgICAgICAgdm0tPmRyYWluTWljcm90YXNrcygpOwogCiAgICAgICAgIGlm
ICghdm0tPnRvcENhbGxGcmFtZSkKICAgICAgICAgICAgIHZtLT5jbGVhckxhc3RFeGNlcHRpb24o
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUu
Y3BwCmluZGV4IGQ2MTZkYWNhNjBiYjc0NWRkNjliNjNjMDc0NjA0YjNjZWI0MzBhODguLmVlMzEz
NjhlNTk3NjVkZmJhYzNiMzA4ODczZGE4MDY0NzEzNTAzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtMjksNyArMjksNyBA
QAogI2luY2x1ZGUgIlByb3BlcnR5U2xvdC5oIgogCiAjaWYgUExBVEZPUk0oSU9TKQotI2luY2x1
ZGUgPHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaD4KKyNpbmNsdWRlIDx3dGYvY29jb2EvUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsKQEAg
LTMyMiw3ICszMjIsNyBAQCBpbmxpbmUgc3RhdGljIGJvb2wgaXNQb2tlckJyb3MoKQogICAgIGF1
dG8gYnVuZGxlSUQgPSBDRkJ1bmRsZUdldElkZW50aWZpZXIoQ0ZCdW5kbGVHZXRNYWluQnVuZGxl
KCkpOwogICAgIHJldHVybiBidW5kbGVJRAogICAgICAgICAmJiBDRkVxdWFsKGJ1bmRsZUlELCBD
RlNUUigiY29tLmtwZ2FtZS5Qb2tlckJyb3MiKSkKLSAgICAgICAgJiYgZHlsZF9nZXRfcHJvZ3Jh
bV9zZGtfdmVyc2lvbigpIDwgRFlMRF9JT1NfVkVSU0lPTl8xNF8wOworICAgICAgICAmJiBhcHBs
aWNhdGlvblNES1ZlcnNpb24oKSA8IERZTERfSU9TX1ZFUlNJT05fMTRfMDsKIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggYmVhYzg2ZWIwZWI4Y2Y1MTM4
ZWZiZmRjMzgyMzQ3NDJiOGNiZGUxMS4uMGYyMWYyMjdlMzliYmNmNjI4MmVjOTRhOTg4YjcwMzA3
YTc1ZWNlNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMTM2MiwxMyAr
MTM2MiwxNSBAQCB2b2lkIFZNOjpjYWxsUHJvbWlzZVJlamVjdGlvbkNhbGxiYWNrKFN0cm9uZzxK
U1Byb21pc2U+JiBwcm9taXNlKQogCiB2b2lkIFZNOjpkaWRFeGhhdXN0TWljcm90YXNrUXVldWUo
KQogewotICAgIGF1dG8gdW5oYW5kbGVkUmVqZWN0aW9ucyA9IFdURk1vdmUobV9hYm91dFRvQmVO
b3RpZmllZFJlamVjdGVkUHJvbWlzZXMpOwotICAgIGZvciAoYXV0byYgcHJvbWlzZSA6IHVuaGFu
ZGxlZFJlamVjdGlvbnMpIHsKLSAgICAgICAgaWYgKHByb21pc2UtPmlzSGFuZGxlZCgqdGhpcykp
Ci0gICAgICAgICAgICBjb250aW51ZTsKKyAgICBkbyB7CisgICAgICAgIGF1dG8gdW5oYW5kbGVk
UmVqZWN0aW9ucyA9IFdURk1vdmUobV9hYm91dFRvQmVOb3RpZmllZFJlamVjdGVkUHJvbWlzZXMp
OworICAgICAgICBmb3IgKGF1dG8mIHByb21pc2UgOiB1bmhhbmRsZWRSZWplY3Rpb25zKSB7Cisg
ICAgICAgICAgICBpZiAocHJvbWlzZS0+aXNIYW5kbGVkKCp0aGlzKSkKKyAgICAgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgICAgICBjYWxsUHJvbWlzZVJlamVjdGlvbkNhbGxiYWNrKHByb21p
c2UpOwotICAgIH0KKyAgICAgICAgICAgIGNhbGxQcm9taXNlUmVqZWN0aW9uQ2FsbGJhY2socHJv
bWlzZSk7CisgICAgICAgIH0KKyAgICB9IHdoaWxlICghbV9hYm91dFRvQmVOb3RpZmllZFJlamVj
dGVkUHJvbWlzZXMuaXNFbXB0eSgpKTsKIH0KIAogdm9pZCBWTTo6cHJvbWlzZVJlamVjdGVkKEpT
UHJvbWlzZSogcHJvbWlzZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431342</attachid>
            <date>2021-06-14 10:26:16 -0700</date>
            <delta_ts>2021-06-15 09:38:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161942-20210614132615.patch</filename>
            <type>text/plain</type>
            <size>8563</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4ODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NDgzOTU0Y2ZhMzliMTA5YTgzZWU1MGUyZWY3Mzk1NmIwZDI3ODM2Li5hMzNlZDEzMGNhOWJhMzQ1
MzUxYmQ2YzVlMGUyY2ZmNjk1ZmFhY2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMS0wNi0xNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTaG91bGRuJ3QgZHJhaW4gdGhlIG1pY3JvIHRhc2sgcXVldWUgd2hl
biBjYWxsaW5nIG91dCB0byBPYmpDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjE5NDIKKworICAgICAgICBVbnJldmlld2VkLCByZWxhbmRpbmcgcjI3
ODczNC4KKworICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLmNwcDoKKyAgICAgICAgKFRlc3RB
UEk6OnByb21pc2VEcmFpbkRvZXNOb3RFYXRFeGNlcHRpb25zKToKKyAgICAgICAgKHRlc3RDQVBJ
VmlhQ3BwKToKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5tbToKKyAgICAgICAgKHRlc3RN
aWNyb3Rhc2tXaXRoRnVuY3Rpb24pOgorICAgICAgICAodGVzdE9iamVjdGl2ZUNBUEkpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNMb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6SlNMb2NrOjp3aWxsUmVs
ZWFzZUxvY2spOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6aXNQb2tlckJyb3MpOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAg
ICAoSlNDOjpWTTo6ZGlkRXhoYXVzdE1pY3JvdGFza1F1ZXVlKToKKwogMjAyMS0wNi0xNCAgQ29t
bWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcmV2ZXJ0aW5nIHIyNzg3MzQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL3Rlc3RzL3Rlc3RhcGkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90
ZXN0YXBpLmNwcAppbmRleCA5YTUxMmFjNTQxYzBmYTFjNGNkYmY2YjkyNWI0ZWUxZTg5NmU4OTkw
Li40NGMyMTk0OWRmZjlhZTFjYTZiMjk3YmZkYzAwZDZjNjM2YzEyZGNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jcHAKQEAgLTM4LDYgKzM4LDEwIEBACiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbW1vbi5o
PgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8d3RmL2NvY29hL1J1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrc0NvY29hLmg+CisjZW5kaWYKKwogZXh0ZXJuICJDIiB2b2lkIGNvbmZpZ3Vy
ZUpTQ0ZvclRlc3RpbmcoKTsKIGV4dGVybiAiQyIgaW50IHRlc3RDQVBJVmlhQ3BwKGNvbnN0IGNo
YXIqIGZpbHRlcik7CiBleHRlcm4gIkMiIHZvaWQgSlNTeW5jaHJvbm91c0dhcmJhZ2VDb2xsZWN0
Rm9yRGVidWdnaW5nKEpTQ29udGV4dFJlZik7CkBAIC0xNDcsNiArMTUxLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcHJvbWlzZVVuaGFuZGxlZFJlamVjdGlvbigpOwogICAgIHZvaWQgcHJvbWlzZVVu
aGFuZGxlZFJlamVjdGlvbkZyb21VbmhhbmRsZWRSZWplY3Rpb25DYWxsYmFjaygpOwogICAgIHZv
aWQgcHJvbWlzZUVhcmx5SGFuZGxlZFJlamVjdGlvbnMoKTsKKyAgICB2b2lkIHByb21pc2VEcmFp
bkRvZXNOb3RFYXRFeGNlcHRpb25zKCk7CiAgICAgdm9pZCB0b3BDYWxsRnJhbWVBY2Nlc3MoKTsK
ICAgICB2b2lkIG1hcmtlZEpTVmFsdWVBcnJheUFuZEdDKCk7CiAgICAgdm9pZCBjbGFzc0RlZmlu
aXRpb25XaXRoSlNTdWJjbGFzcygpOwpAQCAtNjA5LDYgKzYxNCwyNyBAQCB2b2lkIFRlc3RBUEk6
OnByb21pc2VFYXJseUhhbmRsZWRSZWplY3Rpb25zKCkKICAgICBjaGVjayghY2FsbGJhY2tDYWxs
ZWQsICJ1bmhhbmRsZWQgcmVqZWN0aW9uIGNhbGxiYWNrIHNob3VsZCBub3QgYmUgY2FsbGVkIGZv
ciBhc3luY2hyb25vdXMgZWFybHktaGFuZGxlZCByZWplY3Rpb24iKTsKIH0KIAordm9pZCBUZXN0
QVBJOjpwcm9taXNlRHJhaW5Eb2VzTm90RWF0RXhjZXB0aW9ucygpCit7CisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgICAgIGJvb2wgdXNlTGVnYWN5RHJhaW4gPSBmYWxzZTsKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgICAgIHVzZUxlZ2FjeURyYWluID0gYXBwbGljYXRpb25TREtWZXJzaW9uKCkg
PCBEWUxEX01BQ09TWF9WRVJTSU9OXzEyXzAwOworI2VsaWYgUExBVEZPUk0oV0FUQ0gpCisgICAg
ICAgICAgICAvLyBEb24ndCBjaGVjaywgSlNDIGlzbid0IEFQSSBvbiB3YXRjaCBhbnl3YXkuCisj
ZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICB1c2VMZWdhY3lEcmFpbiA9IGFwcGxp
Y2F0aW9uU0RLVmVyc2lvbigpIDwgRFlMRF9JT1NfVkVSU0lPTl8xNV8wOworI2Vsc2UKKyNlcnJv
ciAiVW5zdXBwb3J0ZWQgQ29jb2EgUGxhdGZvcm0iCisjZW5kaWYKKyAgICAgICAgaWYgKHVzZUxl
Z2FjeURyYWluKQorICAgICAgICAgICAgcmV0dXJuOworI2VuZGlmCisgICAgU2NyaXB0UmVzdWx0
IHJlc3VsdCA9IGNhbGxGdW5jdGlvbigiKGZ1bmN0aW9uKCkgeyBQcm9taXNlLnJlc29sdmUoKS50
aGVuKCgpID0+IHsgdGhyb3cgMjsgfSk7IHRocm93IDE7IH0pIik7CisgICAgY2hlY2soIXJlc3Vs
dCwgImZ1bmN0aW9uIHNob3VsZCB0aHJvdyBhbiBlcnJvciIpOworICAgIGNoZWNrKEpTVmFsdWVJ
c051bWJlcihjb250ZXh0LCByZXN1bHQuZXJyb3IoKSkgJiYgSlNWYWx1ZVRvTnVtYmVyKGNvbnRl
eHQsIHJlc3VsdC5lcnJvcigpLCBudWxscHRyKSA9PSAxLCAiZXhjZXB0aW9uIHBheWxvYWQgc2hv
dWxkIGhhdmUgYmVlbiAxIik7Cit9CisKIHZvaWQgVGVzdEFQSTo6dG9wQ2FsbEZyYW1lQWNjZXNz
KCkKIHsKICAgICB7CkBAIC03NjAsMTYgKzc4NiwxNSBAQCBpbnQgdGVzdENBUElWaWFDcHAoY29u
c3QgY2hhciogZmlsdGVyKQogICAgIFJVTihwcm9taXNlUmVqZWN0VHJ1ZSgpKTsKICAgICBSVU4o
cHJvbWlzZVVuaGFuZGxlZFJlamVjdGlvbigpKTsKICAgICBSVU4ocHJvbWlzZVVuaGFuZGxlZFJl
amVjdGlvbkZyb21VbmhhbmRsZWRSZWplY3Rpb25DYWxsYmFjaygpKTsKKyAgICBSVU4ocHJvbWlz
ZURyYWluRG9lc05vdEVhdEV4Y2VwdGlvbnMoKSk7CiAgICAgUlVOKHByb21pc2VFYXJseUhhbmRs
ZWRSZWplY3Rpb25zKCkpOwogICAgIFJVTihtYXJrZWRKU1ZhbHVlQXJyYXlBbmRHQygpKTsKICAg
ICBSVU4oY2xhc3NEZWZpbml0aW9uV2l0aEpTU3ViY2xhc3MoKSk7CiAgICAgUlVOKHByb3h5UmV0
dXJuZWRXaXRoSlNTdWJjbGFzc2luZygpKTsKICAgICBSVU4odGVzdEpTT2JqZWN0U2V0T25HbG9i
YWxPYmplY3RTdWJjbGFzc0RlZmluaXRpb24oKSk7CiAKLSAgICBpZiAodGFza3MuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIGRhdGFMb2dMbigiRmlsdGVyZWQgYWxsIHRlc3RzOiBFUlJPUiIpOwotICAg
ICAgICByZXR1cm4gMTsKLSAgICB9CisgICAgaWYgKHRhc2tzLmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuIDA7CiAKICAgICBMb2NrIGxvY2s7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
dGVzdHMvdGVzdGFwaS5tbQppbmRleCA1OWEzNDljNjYxNzI0MDVlYjk3YzEwMzg5YmE5MTNlZGM1
OTIwYWU0Li4xNzZlNGY2MjVhN2IwMDJhNjFhNGU5ZjY3NThjZGU1NDQ3MGIyMmZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCkBAIC0yNzMwLDYgKzI3MzAs
MjUgQEAgc3RhdGljIHZvaWQgdGVzdERlcGVuZGVuY2llc01pc3NpbmdJbXBvcnQoKQogICAgIH0K
IH0KIAorc3RhdGljIHZvaWQgdGVzdE1pY3JvdGFza1dpdGhGdW5jdGlvbigpCit7CisgICAgQGF1
dG9yZWxlYXNlcG9vbCB7CisgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbSlNDb250ZXh0
IGFsbG9jXSBpbml0XTsKKworICAgICAgICBKU1ZhbHVlICpnbG9iYWxPYmplY3QgPSBjb250ZXh0
Lmdsb2JhbE9iamVjdDsKKworICAgICAgICBhdXRvIGJsb2NrID0gXigpIHsKKyAgICAgICAgICAg
IHJldHVybiAxKzE7CisgICAgICAgIH07CisKKyAgICAgICAgW2dsb2JhbE9iamVjdCBzZXRWYWx1
ZTpibG9jayBmb3JQcm9wZXJ0eTpAInNldFRpbWVvdXQiXTsKKyAgICAgICAgSlNWYWx1ZSAqYXJy
ID0gW2NvbnRleHQgZXZhbHVhdGVTY3JpcHQ6QCJ2YXIgYXJyID0gW107IChhc3luYyAoKSA9PiB7
IGF3YWl0IDE7IGFyci5wdXNoKDMpOyB9KSgpOyBhcnIucHVzaCgxKTsgc2V0VGltZW91dCgpOyBh
cnIucHVzaCgyKTsgYXJyOyJdOworICAgICAgICBjaGVja1Jlc3VsdChAImFyclswXSBzaG91bGQg
YmUgMSIsIFthcnJbQDBdIHRvSW50MzJdID09IDEpOworICAgICAgICBjaGVja1Jlc3VsdChAImFy
clsxXSBzaG91bGQgYmUgMiIsIFthcnJbQDFdIHRvSW50MzJdID09IDIpOworICAgICAgICBjaGVj
a1Jlc3VsdChAImFyclsyXSBzaG91bGQgYmUgMyIsIFthcnJbQDJdIHRvSW50MzJdID09IDMpOwor
ICAgIH0KK30KKwogQHByb3RvY29sIFRvU3RyaW5nIDxKU0V4cG9ydD4KIC0gKE5TU3RyaW5nICop
dG9TdHJpbmc7CiBAZW5kCkBAIC0yODQ4LDYgKzI4NjcsOCBAQCB2b2lkIHRlc3RPYmplY3RpdmVD
QVBJKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU4ocHJvbWlzZUNyZWF0ZVJlamVjdGVkKCkp
OwogICAgIFJVTihwYXJhbGxlbFByb21pc2VSZXNvbHZlVGVzdCgpKTsKIAorICAgIFJVTih0ZXN0
TWljcm90YXNrV2l0aEZ1bmN0aW9uKCkpOworCiAgICAgaWYgKCFmaWx0ZXIpCiAgICAgICAgIHRl
c3RPYmplY3RpdmVDQVBJTWFpbigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNMb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TG9jay5jcHAKaW5kZXggYWVmM2I0Yzk3ZTQ0ODdkN2E3Zjk0NmFlMzIwYWIwMTg3MTg3OTdkOS4u
MGVmZjc4YjIzYmMwYzQ5OTQ1YjdmNGQ3NmVmZjAxM2NjYjlkNDViNyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMzMsNiArMzMsMTAgQEAKICNpbmNsdWRlIDx3dGYvaW9zL1dl
YkNvcmVUaHJlYWQuaD4KICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8
d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+CisjZW5kaWYKKwogbmFt
ZXNwYWNlIEpTQyB7CiAKIExvY2sgR2xvYmFsSlNMb2NrOjpzX3NoYXJlZEluc3RhbmNlTXV0ZXg7
CkBAIC0xOTcsNyArMjAxLDI0IEBAIHZvaWQgSlNMb2NrOjp3aWxsUmVsZWFzZUxvY2soKQogeyAg
IAogICAgIFJlZlB0cjxWTT4gdm0gPSBtX3ZtOwogICAgIGlmICh2bSkgewotICAgICAgICB2bS0+
ZHJhaW5NaWNyb3Rhc2tzKCk7CisgICAgICAgIHN0YXRpYyBib29sIHVzZUxlZ2FjeURyYWluID0g
ZmFsc2U7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBvbmNlOworICAgICAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSB7CisjaWYgUExBVEZPUk0o
TUFDKQorICAgICAgICAgICAgdXNlTGVnYWN5RHJhaW4gPSBhcHBsaWNhdGlvblNES1ZlcnNpb24o
KSA8IERZTERfTUFDT1NYX1ZFUlNJT05fMTJfMDA7CisjZWxpZiBQTEFURk9STShXQVRDSCkKKyAg
ICAgICAgICAgIC8vIERvbid0IGNoZWNrLCBKU0MgaXNuJ3QgQVBJIG9uIHdhdGNoIGFueXdheS4K
KyNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgICAgICB1c2VMZWdhY3lEcmFpbiA9
IGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpIDwgRFlMRF9JT1NfVkVSU0lPTl8xNV8wOworI2Vsc2UK
KyNlcnJvciAiVW5zdXBwb3J0ZWQgQ29jb2EgUGxhdGZvcm0iCisjZW5kaWYKKyAgICAgICAgfSk7
CisjZW5kaWYKKworICAgICAgICBpZiAoIW1fbG9ja0Ryb3BEZXB0aCB8fCB1c2VMZWdhY3lEcmFp
bikKKyAgICAgICAgICAgIHZtLT5kcmFpbk1pY3JvdGFza3MoKTsKIAogICAgICAgICBpZiAoIXZt
LT50b3BDYWxsRnJhbWUpCiAgICAgICAgICAgICB2bS0+Y2xlYXJMYXN0RXhjZXB0aW9uKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApp
bmRleCBkNjE2ZGFjYTYwYmI3NDVkZDY5YjYzYzA3NDYwNGIzY2ViNDMwYTg4Li5lZTMxMzY4ZTU5
NzY1ZGZiYWMzYjMwODg3M2RhODA2NDcxMzUwM2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNp
bmNsdWRlICJQcm9wZXJ0eVNsb3QuaCIKIAogI2lmIFBMQVRGT1JNKElPUykKLSNpbmNsdWRlIDx3
dGYvc3BpL2Rhcndpbi9keWxkU1BJLmg+CisjaW5jbHVkZSA8d3RmL2NvY29hL1J1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrc0NvY29hLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zMjIs
NyArMzIyLDcgQEAgaW5saW5lIHN0YXRpYyBib29sIGlzUG9rZXJCcm9zKCkKICAgICBhdXRvIGJ1
bmRsZUlEID0gQ0ZCdW5kbGVHZXRJZGVudGlmaWVyKENGQnVuZGxlR2V0TWFpbkJ1bmRsZSgpKTsK
ICAgICByZXR1cm4gYnVuZGxlSUQKICAgICAgICAgJiYgQ0ZFcXVhbChidW5kbGVJRCwgQ0ZTVFIo
ImNvbS5rcGdhbWUuUG9rZXJCcm9zIikpCi0gICAgICAgICYmIGR5bGRfZ2V0X3Byb2dyYW1fc2Rr
X3ZlcnNpb24oKSA8IERZTERfSU9TX1ZFUlNJT05fMTRfMDsKKyAgICAgICAgJiYgYXBwbGljYXRp
b25TREtWZXJzaW9uKCkgPCBEWUxEX0lPU19WRVJTSU9OXzE0XzA7CiB9CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4IDRjMWJlNDE4MWZkMjc5ODM0ODBmYmI5
NWI3M2U1NDE1YzdmNGM2ZjQuLjFiMDliZWVlZDU1ZTFmNWQ2MjZiODY0OWZhZDU0OGE4M2IxYmJm
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTEzNjgsMTMgKzEzNjgs
MTUgQEAgdm9pZCBWTTo6Y2FsbFByb21pc2VSZWplY3Rpb25DYWxsYmFjayhTdHJvbmc8SlNQcm9t
aXNlPiYgcHJvbWlzZSkKIAogdm9pZCBWTTo6ZGlkRXhoYXVzdE1pY3JvdGFza1F1ZXVlKCkKIHsK
LSAgICBhdXRvIHVuaGFuZGxlZFJlamVjdGlvbnMgPSBXVEZNb3ZlKG1fYWJvdXRUb0JlTm90aWZp
ZWRSZWplY3RlZFByb21pc2VzKTsKLSAgICBmb3IgKGF1dG8mIHByb21pc2UgOiB1bmhhbmRsZWRS
ZWplY3Rpb25zKSB7Ci0gICAgICAgIGlmIChwcm9taXNlLT5pc0hhbmRsZWQoKnRoaXMpKQotICAg
ICAgICAgICAgY29udGludWU7CisgICAgZG8geworICAgICAgICBhdXRvIHVuaGFuZGxlZFJlamVj
dGlvbnMgPSBXVEZNb3ZlKG1fYWJvdXRUb0JlTm90aWZpZWRSZWplY3RlZFByb21pc2VzKTsKKyAg
ICAgICAgZm9yIChhdXRvJiBwcm9taXNlIDogdW5oYW5kbGVkUmVqZWN0aW9ucykgeworICAgICAg
ICAgICAgaWYgKHByb21pc2UtPmlzSGFuZGxlZCgqdGhpcykpCisgICAgICAgICAgICAgICAgY29u
dGludWU7CiAKLSAgICAgICAgY2FsbFByb21pc2VSZWplY3Rpb25DYWxsYmFjayhwcm9taXNlKTsK
LSAgICB9CisgICAgICAgICAgICBjYWxsUHJvbWlzZVJlamVjdGlvbkNhbGxiYWNrKHByb21pc2Up
OworICAgICAgICB9CisgICAgfSB3aGlsZSAoIW1fYWJvdXRUb0JlTm90aWZpZWRSZWplY3RlZFBy
b21pc2VzLmlzRW1wdHkoKSk7CiB9CiAKIHZvaWQgVk06OnByb21pc2VSZWplY3RlZChKU1Byb21p
c2UqIHByb21pc2UpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431449</attachid>
            <date>2021-06-15 09:38:47 -0700</date>
            <delta_ts>2021-06-15 09:54:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161942-20210615123847.patch</filename>
            <type>text/plain</type>
            <size>9049</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4ODc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NTJiZDNhZDViNzhkM2YzYTNhY2NiMTc2NDk0NjRmNjM1M2Q3ZjZmLi4wYTI4YTM4YmMwNWJjNTAy
MDE3NjkzYmUxYjg2NTQzMzczMTk2ZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMS0wNi0xNSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTaG91bGRuJ3QgZHJhaW4gdGhlIG1pY3JvIHRhc2sgcXVldWUgd2hl
biBjYWxsaW5nIG91dCB0byBPYmpDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjE5NDIKKworICAgICAgICBVbnJldmlld2VkLCByZWxhbmRpbmcgcjI3
ODczNC4KKworICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLmNwcDoKKyAgICAgICAgKFRlc3RB
UEk6OnByb21pc2VEcmFpbkRvZXNOb3RFYXRFeGNlcHRpb25zKToKKyAgICAgICAgKHRlc3RDQVBJ
VmlhQ3BwKToKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5tbToKKyAgICAgICAgKHRlc3RN
aWNyb3Rhc2tXaXRoRnVuY3Rpb24pOgorICAgICAgICAodGVzdE9iamVjdGl2ZUNBUEkpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNMb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6SlNMb2NrOjp3aWxsUmVs
ZWFzZUxvY2spOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6aXNQb2tlckJyb3MpOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAg
ICAoSlNDOjpWTTo6ZGlkRXhoYXVzdE1pY3JvdGFza1F1ZXVlKToKKwogMjAyMS0wNi0xNSAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBzZXR0aW5nIG9mIHNj
cmF0Y2ggYnVmZmVyIGFjdGl2ZSBsZW5ndGhzIHRvIHRoZSBydW50aW1lIGZ1bmN0aW9ucy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwCmluZGV4IDlhNTEyYWM1
NDFjMGZhMWM0Y2RiZjZiOTI1YjRlZTFlODk2ZTg5OTAuLjdhZTc1NzlmOGVlOTViNzg4MWViNmQ3
OTM2ZjFlMjQ1MmEzZjQ0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
dGVzdHMvdGVzdGFwaS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90
ZXN0YXBpLmNwcApAQCAtMzgsNiArMzgsMTAgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29tbW9uLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkK
KyNpbmNsdWRlIDx3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KKyNl
bmRpZgorCiBleHRlcm4gIkMiIHZvaWQgY29uZmlndXJlSlNDRm9yVGVzdGluZygpOwogZXh0ZXJu
ICJDIiBpbnQgdGVzdENBUElWaWFDcHAoY29uc3QgY2hhciogZmlsdGVyKTsKIGV4dGVybiAiQyIg
dm9pZCBKU1N5bmNocm9ub3VzR2FyYmFnZUNvbGxlY3RGb3JEZWJ1Z2dpbmcoSlNDb250ZXh0UmVm
KTsKQEAgLTE0Nyw2ICsxNTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcm9taXNlVW5oYW5kbGVk
UmVqZWN0aW9uKCk7CiAgICAgdm9pZCBwcm9taXNlVW5oYW5kbGVkUmVqZWN0aW9uRnJvbVVuaGFu
ZGxlZFJlamVjdGlvbkNhbGxiYWNrKCk7CiAgICAgdm9pZCBwcm9taXNlRWFybHlIYW5kbGVkUmVq
ZWN0aW9ucygpOworICAgIHZvaWQgcHJvbWlzZURyYWluRG9lc05vdEVhdEV4Y2VwdGlvbnMoKTsK
ICAgICB2b2lkIHRvcENhbGxGcmFtZUFjY2VzcygpOwogICAgIHZvaWQgbWFya2VkSlNWYWx1ZUFy
cmF5QW5kR0MoKTsKICAgICB2b2lkIGNsYXNzRGVmaW5pdGlvbldpdGhKU1N1YmNsYXNzKCk7CkBA
IC02MDksNiArNjE0LDMyIEBAIHZvaWQgVGVzdEFQSTo6cHJvbWlzZUVhcmx5SGFuZGxlZFJlamVj
dGlvbnMoKQogICAgIGNoZWNrKCFjYWxsYmFja0NhbGxlZCwgInVuaGFuZGxlZCByZWplY3Rpb24g
Y2FsbGJhY2sgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9yIGFzeW5jaHJvbm91cyBlYXJseS1oYW5k
bGVkIHJlamVjdGlvbiIpOwogfQogCit2b2lkIFRlc3RBUEk6OnByb21pc2VEcmFpbkRvZXNOb3RF
YXRFeGNlcHRpb25zKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgYm9vbCB1c2VM
ZWdhY3lEcmFpbiA9IGZhbHNlOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgdXNlTGVnYWN5
RHJhaW4gPSBhcHBsaWNhdGlvblNES1ZlcnNpb24oKSA8IERZTERfTUFDT1NYX1ZFUlNJT05fMTJf
MDA7CisgICAgICAgIGF1dG8gdmVyc2lvbiA9IGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpOworICAg
ICAgICBkYXRhTG9nTG4oInRlc3RhcGkgYXBwbGljYXRpb25TREtWZXJzaW9uKCk6ICIsIGFwcGxp
Y2F0aW9uU0RLVmVyc2lvbigpKTsKKyAgICAgICAgZGF0YUxvZ0xuKCJ0ZXN0YXBpIERZTERfTUFD
T1NYX1ZFUlNJT05fMTJfMDA6ICIsIERZTERfTUFDT1NYX1ZFUlNJT05fMTJfMDApOworI2VsaWYg
UExBVEZPUk0oV0FUQ0gpCisgICAgICAgICAgICAvLyBEb24ndCBjaGVjaywgSlNDIGlzbid0IEFQ
SSBvbiB3YXRjaCBhbnl3YXkuCisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICB1
c2VMZWdhY3lEcmFpbiA9IGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpIDwgRFlMRF9JT1NfVkVSU0lP
Tl8xNV8wOworI2Vsc2UKKyNlcnJvciAiVW5zdXBwb3J0ZWQgQ29jb2EgUGxhdGZvcm0iCisjZW5k
aWYKKyAgICAgICAgaWYgKHVzZUxlZ2FjeURyYWluKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBSRUxFQVNFX0FTU0VSVCh2ZXJzaW9uID09IGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpKTsK
KyNlbmRpZgorCisgICAgU2NyaXB0UmVzdWx0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbigiKGZ1bmN0
aW9uKCkgeyBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHsgdGhyb3cgMjsgfSk7IHRocm93
IDE7IH0pIik7CisgICAgY2hlY2soIXJlc3VsdCwgImZ1bmN0aW9uIHNob3VsZCB0aHJvdyBhbiBl
cnJvciIpOworICAgIGNoZWNrKEpTVmFsdWVJc051bWJlcihjb250ZXh0LCByZXN1bHQuZXJyb3Io
KSkgJiYgSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIHJlc3VsdC5lcnJvcigpLCBudWxscHRyKSA9
PSAxLCAiZXhjZXB0aW9uIHBheWxvYWQgc2hvdWxkIGhhdmUgYmVlbiAxIik7Cit9CisKIHZvaWQg
VGVzdEFQSTo6dG9wQ2FsbEZyYW1lQWNjZXNzKCkKIHsKICAgICB7CkBAIC03NjAsMTYgKzc5MSwx
NSBAQCBpbnQgdGVzdENBUElWaWFDcHAoY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTihwcm9t
aXNlUmVqZWN0VHJ1ZSgpKTsKICAgICBSVU4ocHJvbWlzZVVuaGFuZGxlZFJlamVjdGlvbigpKTsK
ICAgICBSVU4ocHJvbWlzZVVuaGFuZGxlZFJlamVjdGlvbkZyb21VbmhhbmRsZWRSZWplY3Rpb25D
YWxsYmFjaygpKTsKKyAgICBSVU4ocHJvbWlzZURyYWluRG9lc05vdEVhdEV4Y2VwdGlvbnMoKSk7
CiAgICAgUlVOKHByb21pc2VFYXJseUhhbmRsZWRSZWplY3Rpb25zKCkpOwogICAgIFJVTihtYXJr
ZWRKU1ZhbHVlQXJyYXlBbmRHQygpKTsKICAgICBSVU4oY2xhc3NEZWZpbml0aW9uV2l0aEpTU3Vi
Y2xhc3MoKSk7CiAgICAgUlVOKHByb3h5UmV0dXJuZWRXaXRoSlNTdWJjbGFzc2luZygpKTsKICAg
ICBSVU4odGVzdEpTT2JqZWN0U2V0T25HbG9iYWxPYmplY3RTdWJjbGFzc0RlZmluaXRpb24oKSk7
CiAKLSAgICBpZiAodGFza3MuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGRhdGFMb2dMbigiRmlsdGVy
ZWQgYWxsIHRlc3RzOiBFUlJPUiIpOwotICAgICAgICByZXR1cm4gMTsKLSAgICB9CisgICAgaWYg
KHRhc2tzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBMb2NrIGxvY2s7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQppbmRleCA1OWEzNDlj
NjYxNzI0MDVlYjk3YzEwMzg5YmE5MTNlZGM1OTIwYWU0Li4xNzZlNGY2MjVhN2IwMDJhNjFhNGU5
ZjY3NThjZGU1NDQ3MGIyMmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL3Rlc3RhcGkubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90
ZXN0YXBpLm1tCkBAIC0yNzMwLDYgKzI3MzAsMjUgQEAgc3RhdGljIHZvaWQgdGVzdERlcGVuZGVu
Y2llc01pc3NpbmdJbXBvcnQoKQogICAgIH0KIH0KIAorc3RhdGljIHZvaWQgdGVzdE1pY3JvdGFz
a1dpdGhGdW5jdGlvbigpCit7CisgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgIEpTQ29u
dGV4dCAqY29udGV4dCA9IFtbSlNDb250ZXh0IGFsbG9jXSBpbml0XTsKKworICAgICAgICBKU1Zh
bHVlICpnbG9iYWxPYmplY3QgPSBjb250ZXh0Lmdsb2JhbE9iamVjdDsKKworICAgICAgICBhdXRv
IGJsb2NrID0gXigpIHsKKyAgICAgICAgICAgIHJldHVybiAxKzE7CisgICAgICAgIH07CisKKyAg
ICAgICAgW2dsb2JhbE9iamVjdCBzZXRWYWx1ZTpibG9jayBmb3JQcm9wZXJ0eTpAInNldFRpbWVv
dXQiXTsKKyAgICAgICAgSlNWYWx1ZSAqYXJyID0gW2NvbnRleHQgZXZhbHVhdGVTY3JpcHQ6QCJ2
YXIgYXJyID0gW107IChhc3luYyAoKSA9PiB7IGF3YWl0IDE7IGFyci5wdXNoKDMpOyB9KSgpOyBh
cnIucHVzaCgxKTsgc2V0VGltZW91dCgpOyBhcnIucHVzaCgyKTsgYXJyOyJdOworICAgICAgICBj
aGVja1Jlc3VsdChAImFyclswXSBzaG91bGQgYmUgMSIsIFthcnJbQDBdIHRvSW50MzJdID09IDEp
OworICAgICAgICBjaGVja1Jlc3VsdChAImFyclsxXSBzaG91bGQgYmUgMiIsIFthcnJbQDFdIHRv
SW50MzJdID09IDIpOworICAgICAgICBjaGVja1Jlc3VsdChAImFyclsyXSBzaG91bGQgYmUgMyIs
IFthcnJbQDJdIHRvSW50MzJdID09IDMpOworICAgIH0KK30KKwogQHByb3RvY29sIFRvU3RyaW5n
IDxKU0V4cG9ydD4KIC0gKE5TU3RyaW5nICopdG9TdHJpbmc7CiBAZW5kCkBAIC0yODQ4LDYgKzI4
NjcsOCBAQCB2b2lkIHRlc3RPYmplY3RpdmVDQVBJKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBS
VU4ocHJvbWlzZUNyZWF0ZVJlamVjdGVkKCkpOwogICAgIFJVTihwYXJhbGxlbFByb21pc2VSZXNv
bHZlVGVzdCgpKTsKIAorICAgIFJVTih0ZXN0TWljcm90YXNrV2l0aEZ1bmN0aW9uKCkpOworCiAg
ICAgaWYgKCFmaWx0ZXIpCiAgICAgICAgIHRlc3RPYmplY3RpdmVDQVBJTWFpbigpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKaW5kZXggYWVmM2I0Yzk3ZTQ0ODdk
N2E3Zjk0NmFlMzIwYWIwMTg3MTg3OTdkOS4uMmI1OTYwMjdhZjU5ZTQ5YmNmNGY1YjM0OGU2Mjg3
ZDYyODM1OTU3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNM
b2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzMsNiArMzMs
MTAgQEAKICNpbmNsdWRlIDx3dGYvaW9zL1dlYkNvcmVUaHJlYWQuaD4KICNlbmRpZgogCisjaWYg
UExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrc0NvY29hLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIEpTQyB7CiAKIExvY2sgR2xvYmFsSlNM
b2NrOjpzX3NoYXJlZEluc3RhbmNlTXV0ZXg7CkBAIC0xOTcsNyArMjAxLDI2IEBAIHZvaWQgSlNM
b2NrOjp3aWxsUmVsZWFzZUxvY2soKQogeyAgIAogICAgIFJlZlB0cjxWTT4gdm0gPSBtX3ZtOwog
ICAgIGlmICh2bSkgewotICAgICAgICB2bS0+ZHJhaW5NaWNyb3Rhc2tzKCk7CisgICAgICAgIHN0
YXRpYyBib29sIHVzZUxlZ2FjeURyYWluID0gZmFsc2U7CisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOworICAgICAgICBzdGQ6OmNhbGxfb25j
ZShvbmNlLCBbXSB7CisjaWYgUExBVEZPUk0oTUFDKQorICAgICAgICAgICAgdXNlTGVnYWN5RHJh
aW4gPSBhcHBsaWNhdGlvblNES1ZlcnNpb24oKSA8IERZTERfTUFDT1NYX1ZFUlNJT05fMTJfMDA7
CisgICAgICAgICAgICBkYXRhTG9nTG4oImpzbG9jayBhcHBsaWNhdGlvblNES1ZlcnNpb24oKTog
IiwgYXBwbGljYXRpb25TREtWZXJzaW9uKCkpOworICAgICAgICAgICAgZGF0YUxvZ0xuKCJqc2xv
Y2sgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMDogIiwgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8w
MCk7CisjZWxpZiBQTEFURk9STShXQVRDSCkKKyAgICAgICAgICAgIC8vIERvbid0IGNoZWNrLCBK
U0MgaXNuJ3QgQVBJIG9uIHdhdGNoIGFueXdheS4KKyNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgICAgICAgICB1c2VMZWdhY3lEcmFpbiA9IGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpIDwg
RFlMRF9JT1NfVkVSU0lPTl8xNV8wOworI2Vsc2UKKyNlcnJvciAiVW5zdXBwb3J0ZWQgQ29jb2Eg
UGxhdGZvcm0iCisjZW5kaWYKKyAgICAgICAgfSk7CisjZW5kaWYKKworICAgICAgICBpZiAoIW1f
bG9ja0Ryb3BEZXB0aCB8fCB1c2VMZWdhY3lEcmFpbikKKyAgICAgICAgICAgIHZtLT5kcmFpbk1p
Y3JvdGFza3MoKTsKIAogICAgICAgICBpZiAoIXZtLT50b3BDYWxsRnJhbWUpCiAgICAgICAgICAg
ICB2bS0+Y2xlYXJMYXN0RXhjZXB0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAppbmRleCBkNjE2ZGFjYTYwYmI3NDVkZDY5YjYz
YzA3NDYwNGIzY2ViNDMwYTg4Li5lZTMxMzY4ZTU5NzY1ZGZiYWMzYjMwODg3M2RhODA2NDcxMzUw
M2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90
b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3Rv
dHlwZS5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJQcm9wZXJ0eVNsb3QuaCIKIAog
I2lmIFBMQVRGT1JNKElPUykKLSNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9keWxkU1BJLmg+Cisj
aW5jbHVkZSA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+CiAjZW5k
aWYKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zMjIsNyArMzIyLDcgQEAgaW5saW5lIHN0YXRpYyBi
b29sIGlzUG9rZXJCcm9zKCkKICAgICBhdXRvIGJ1bmRsZUlEID0gQ0ZCdW5kbGVHZXRJZGVudGlm
aWVyKENGQnVuZGxlR2V0TWFpbkJ1bmRsZSgpKTsKICAgICByZXR1cm4gYnVuZGxlSUQKICAgICAg
ICAgJiYgQ0ZFcXVhbChidW5kbGVJRCwgQ0ZTVFIoImNvbS5rcGdhbWUuUG9rZXJCcm9zIikpCi0g
ICAgICAgICYmIGR5bGRfZ2V0X3Byb2dyYW1fc2RrX3ZlcnNpb24oKSA8IERZTERfSU9TX1ZFUlNJ
T05fMTRfMDsKKyAgICAgICAgJiYgYXBwbGljYXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX0lPU19W
RVJTSU9OXzE0XzA7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3Bw
CmluZGV4IDRjMWJlNDE4MWZkMjc5ODM0ODBmYmI5NWI3M2U1NDE1YzdmNGM2ZjQuLjFiMDliZWVl
ZDU1ZTFmNWQ2MjZiODY0OWZhZDU0OGE4M2IxYmJmYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5jcHAKQEAgLTEzNjgsMTMgKzEzNjgsMTUgQEAgdm9pZCBWTTo6Y2FsbFByb21pc2VS
ZWplY3Rpb25DYWxsYmFjayhTdHJvbmc8SlNQcm9taXNlPiYgcHJvbWlzZSkKIAogdm9pZCBWTTo6
ZGlkRXhoYXVzdE1pY3JvdGFza1F1ZXVlKCkKIHsKLSAgICBhdXRvIHVuaGFuZGxlZFJlamVjdGlv
bnMgPSBXVEZNb3ZlKG1fYWJvdXRUb0JlTm90aWZpZWRSZWplY3RlZFByb21pc2VzKTsKLSAgICBm
b3IgKGF1dG8mIHByb21pc2UgOiB1bmhhbmRsZWRSZWplY3Rpb25zKSB7Ci0gICAgICAgIGlmIChw
cm9taXNlLT5pc0hhbmRsZWQoKnRoaXMpKQotICAgICAgICAgICAgY29udGludWU7CisgICAgZG8g
eworICAgICAgICBhdXRvIHVuaGFuZGxlZFJlamVjdGlvbnMgPSBXVEZNb3ZlKG1fYWJvdXRUb0Jl
Tm90aWZpZWRSZWplY3RlZFByb21pc2VzKTsKKyAgICAgICAgZm9yIChhdXRvJiBwcm9taXNlIDog
dW5oYW5kbGVkUmVqZWN0aW9ucykgeworICAgICAgICAgICAgaWYgKHByb21pc2UtPmlzSGFuZGxl
ZCgqdGhpcykpCisgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgY2FsbFByb21p
c2VSZWplY3Rpb25DYWxsYmFjayhwcm9taXNlKTsKLSAgICB9CisgICAgICAgICAgICBjYWxsUHJv
bWlzZVJlamVjdGlvbkNhbGxiYWNrKHByb21pc2UpOworICAgICAgICB9CisgICAgfSB3aGlsZSAo
IW1fYWJvdXRUb0JlTm90aWZpZWRSZWplY3RlZFByb21pc2VzLmlzRW1wdHkoKSk7CiB9CiAKIHZv
aWQgVk06OnByb21pc2VSZWplY3RlZChKU1Byb21pc2UqIHByb21pc2UpCg==
</data>
<flag name="commit-queue"
          id="453236"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431451</attachid>
            <date>2021-06-15 09:53:29 -0700</date>
            <delta_ts>2021-06-15 13:30:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161942-20210615125328.patch</filename>
            <type>text/plain</type>
            <size>9279</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4ODc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NTJiZDNhZDViNzhkM2YzYTNhY2NiMTc2NDk0NjRmNjM1M2Q3ZjZmLi4wYTI4YTM4YmMwNWJjNTAy
MDE3NjkzYmUxYjg2NTQzMzczMTk2ZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMS0wNi0xNSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTaG91bGRuJ3QgZHJhaW4gdGhlIG1pY3JvIHRhc2sgcXVldWUgd2hl
biBjYWxsaW5nIG91dCB0byBPYmpDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjE5NDIKKworICAgICAgICBVbnJldmlld2VkLCByZWxhbmRpbmcgcjI3
ODczNC4KKworICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLmNwcDoKKyAgICAgICAgKFRlc3RB
UEk6OnByb21pc2VEcmFpbkRvZXNOb3RFYXRFeGNlcHRpb25zKToKKyAgICAgICAgKHRlc3RDQVBJ
VmlhQ3BwKToKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5tbToKKyAgICAgICAgKHRlc3RN
aWNyb3Rhc2tXaXRoRnVuY3Rpb24pOgorICAgICAgICAodGVzdE9iamVjdGl2ZUNBUEkpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNMb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6SlNMb2NrOjp3aWxsUmVs
ZWFzZUxvY2spOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6aXNQb2tlckJyb3MpOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAg
ICAoSlNDOjpWTTo6ZGlkRXhoYXVzdE1pY3JvdGFza1F1ZXVlKToKKwogMjAyMS0wNi0xNSAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBzZXR0aW5nIG9mIHNj
cmF0Y2ggYnVmZmVyIGFjdGl2ZSBsZW5ndGhzIHRvIHRoZSBydW50aW1lIGZ1bmN0aW9ucy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwCmluZGV4IDlhNTEyYWM1
NDFjMGZhMWM0Y2RiZjZiOTI1YjRlZTFlODk2ZTg5OTAuLjEwNDUyOThkODdhZTYyNjY0MGM3ZTVh
NDE3NzQ3ZDEyZTgyZmZhZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
dGVzdHMvdGVzdGFwaS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90
ZXN0YXBpLmNwcApAQCAtMzgsNiArMzgsMTAgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29tbW9uLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkK
KyNpbmNsdWRlIDx3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KKyNl
bmRpZgorCiBleHRlcm4gIkMiIHZvaWQgY29uZmlndXJlSlNDRm9yVGVzdGluZygpOwogZXh0ZXJu
ICJDIiBpbnQgdGVzdENBUElWaWFDcHAoY29uc3QgY2hhciogZmlsdGVyKTsKIGV4dGVybiAiQyIg
dm9pZCBKU1N5bmNocm9ub3VzR2FyYmFnZUNvbGxlY3RGb3JEZWJ1Z2dpbmcoSlNDb250ZXh0UmVm
KTsKQEAgLTE0Nyw2ICsxNTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcm9taXNlVW5oYW5kbGVk
UmVqZWN0aW9uKCk7CiAgICAgdm9pZCBwcm9taXNlVW5oYW5kbGVkUmVqZWN0aW9uRnJvbVVuaGFu
ZGxlZFJlamVjdGlvbkNhbGxiYWNrKCk7CiAgICAgdm9pZCBwcm9taXNlRWFybHlIYW5kbGVkUmVq
ZWN0aW9ucygpOworICAgIHZvaWQgcHJvbWlzZURyYWluRG9lc05vdEVhdEV4Y2VwdGlvbnMoKTsK
ICAgICB2b2lkIHRvcENhbGxGcmFtZUFjY2VzcygpOwogICAgIHZvaWQgbWFya2VkSlNWYWx1ZUFy
cmF5QW5kR0MoKTsKICAgICB2b2lkIGNsYXNzRGVmaW5pdGlvbldpdGhKU1N1YmNsYXNzKCk7CkBA
IC02MDksNiArNjE0LDI4IEBAIHZvaWQgVGVzdEFQSTo6cHJvbWlzZUVhcmx5SGFuZGxlZFJlamVj
dGlvbnMoKQogICAgIGNoZWNrKCFjYWxsYmFja0NhbGxlZCwgInVuaGFuZGxlZCByZWplY3Rpb24g
Y2FsbGJhY2sgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9yIGFzeW5jaHJvbm91cyBlYXJseS1oYW5k
bGVkIHJlamVjdGlvbiIpOwogfQogCit2b2lkIFRlc3RBUEk6OnByb21pc2VEcmFpbkRvZXNOb3RF
YXRFeGNlcHRpb25zKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBib29sIHVzZUxlZ2Fj
eURyYWluID0gZmFsc2U7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHVzZUxlZ2FjeURyYWluID0g
YXBwbGljYXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX01BQ09TWF9WRVJTSU9OXzEyXzAwOworI2Vs
aWYgUExBVEZPUk0oV0FUQ0gpCisgICAgICAgIC8vIERvbid0IGNoZWNrLCBKU0MgaXNuJ3QgQVBJ
IG9uIHdhdGNoIGFueXdheS4KKyNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdXNlTGVn
YWN5RHJhaW4gPSBhcHBsaWNhdGlvblNES1ZlcnNpb24oKSA8IERZTERfSU9TX1ZFUlNJT05fMTVf
MDsKKyNlbHNlCisjZXJyb3IgIlVuc3VwcG9ydGVkIENvY29hIFBsYXRmb3JtIgorI2VuZGlmCisg
ICAgaWYgKHVzZUxlZ2FjeURyYWluKQorICAgICAgICByZXR1cm47CisjZW5kaWYKKworICAgIFNj
cmlwdFJlc3VsdCByZXN1bHQgPSBjYWxsRnVuY3Rpb24oIihmdW5jdGlvbigpIHsgUHJvbWlzZS5y
ZXNvbHZlKCkudGhlbigoKSA9PiB7IHRocm93IDI7IH0pOyB0aHJvdyAxOyB9KSIpOworICAgIGNo
ZWNrKCFyZXN1bHQsICJmdW5jdGlvbiBzaG91bGQgdGhyb3cgYW4gZXJyb3IiKTsKKyAgICBjaGVj
ayhKU1ZhbHVlSXNOdW1iZXIoY29udGV4dCwgcmVzdWx0LmVycm9yKCkpICYmIEpTVmFsdWVUb051
bWJlcihjb250ZXh0LCByZXN1bHQuZXJyb3IoKSwgbnVsbHB0cikgPT0gMSwgImV4Y2VwdGlvbiBw
YXlsb2FkIHNob3VsZCBoYXZlIGJlZW4gMSIpOworfQorCiB2b2lkIFRlc3RBUEk6OnRvcENhbGxG
cmFtZUFjY2VzcygpCiB7CiAgICAgewpAQCAtNzYwLDE2ICs3ODcsMTUgQEAgaW50IHRlc3RDQVBJ
VmlhQ3BwKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU4ocHJvbWlzZVJlamVjdFRydWUoKSk7
CiAgICAgUlVOKHByb21pc2VVbmhhbmRsZWRSZWplY3Rpb24oKSk7CiAgICAgUlVOKHByb21pc2VV
bmhhbmRsZWRSZWplY3Rpb25Gcm9tVW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2soKSk7CisgICAg
UlVOKHByb21pc2VEcmFpbkRvZXNOb3RFYXRFeGNlcHRpb25zKCkpOwogICAgIFJVTihwcm9taXNl
RWFybHlIYW5kbGVkUmVqZWN0aW9ucygpKTsKICAgICBSVU4obWFya2VkSlNWYWx1ZUFycmF5QW5k
R0MoKSk7CiAgICAgUlVOKGNsYXNzRGVmaW5pdGlvbldpdGhKU1N1YmNsYXNzKCkpOwogICAgIFJV
Tihwcm94eVJldHVybmVkV2l0aEpTU3ViY2xhc3NpbmcoKSk7CiAgICAgUlVOKHRlc3RKU09iamVj
dFNldE9uR2xvYmFsT2JqZWN0U3ViY2xhc3NEZWZpbml0aW9uKCkpOwogCi0gICAgaWYgKHRhc2tz
LmlzRW1wdHkoKSkgewotICAgICAgICBkYXRhTG9nTG4oIkZpbHRlcmVkIGFsbCB0ZXN0czogRVJS
T1IiKTsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQorICAgIGlmICh0YXNrcy5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiAwOwogCiAgICAgTG9jayBsb2NrOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KaW5kZXggNTlhMzQ5YzY2MTcyNDA1ZWI5N2MxMDM4
OWJhOTEzZWRjNTkyMGFlNC4uZjJlYzQyYmE4ODhhZjc0OWE2MDRjNzgwN2ZlM2Y1NTEzOTQ2NTRl
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1t
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQpAQCAtNDEs
NiArNDEsMTEgQEAKICNpbXBvcnQgIlJlZ3Jlc3MxNDE4MDkuaCIKICNpbXBvcnQgPHd0Zi9zcGkv
ZGFyd2luL0RhdGFWYXVsdFNQSS5oPgogCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbXBvcnQg
PHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgorI2VuZGlmCisKICNp
ZiBfX2hhc19pbmNsdWRlKDxsaWJwcm9jLmg+KQogI2RlZmluZSBIQVNfTElCUFJPQyAxCiAjaW1w
b3J0IDxsaWJwcm9jLmg+CkBAIC0yNzMwLDYgKzI3MzUsNDAgQEAgc3RhdGljIHZvaWQgdGVzdERl
cGVuZGVuY2llc01pc3NpbmdJbXBvcnQoKQogICAgIH0KIH0KIAorc3RhdGljIHZvaWQgdGVzdE1p
Y3JvdGFza1dpdGhGdW5jdGlvbigpCit7CisgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgICAgIGJvb2wgdXNlTGVnYWN5RHJhaW4gPSBmYWxzZTsKKyNpZiBQ
TEFURk9STShNQUMpCisgICAgICAgIHVzZUxlZ2FjeURyYWluID0gYXBwbGljYXRpb25TREtWZXJz
aW9uKCkgPCBEWUxEX01BQ09TWF9WRVJTSU9OXzEyXzAwOworI2VsaWYgUExBVEZPUk0oV0FUQ0gp
CisgICAgICAgICAgICAvLyBEb24ndCBjaGVjaywgSlNDIGlzbid0IEFQSSBvbiB3YXRjaCBhbnl3
YXkuCisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICB1c2VMZWdhY3lEcmFpbiA9
IGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpIDwgRFlMRF9JT1NfVkVSU0lPTl8xNV8wOworI2Vsc2UK
KyNlcnJvciAiVW5zdXBwb3J0ZWQgQ29jb2EgUGxhdGZvcm0iCisjZW5kaWYKKyAgICAgICAgaWYg
KHVzZUxlZ2FjeURyYWluKQorICAgICAgICAgICAgcmV0dXJuOworI2VuZGlmCisKKyAgICAgICAg
SlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOworCisgICAgICAg
IEpTVmFsdWUgKmdsb2JhbE9iamVjdCA9IGNvbnRleHQuZ2xvYmFsT2JqZWN0OworCisgICAgICAg
IGF1dG8gYmxvY2sgPSBeKCkgeworICAgICAgICAgICAgcmV0dXJuIDErMTsKKyAgICAgICAgfTsK
KworICAgICAgICBbZ2xvYmFsT2JqZWN0IHNldFZhbHVlOmJsb2NrIGZvclByb3BlcnR5OkAic2V0
VGltZW91dCJdOworICAgICAgICBKU1ZhbHVlICphcnIgPSBbY29udGV4dCBldmFsdWF0ZVNjcmlw
dDpAInZhciBhcnIgPSBbXTsgKGFzeW5jICgpID0+IHsgYXdhaXQgMTsgYXJyLnB1c2goMyk7IH0p
KCk7IGFyci5wdXNoKDEpOyBzZXRUaW1lb3V0KCk7IGFyci5wdXNoKDIpOyBhcnI7Il07CisgICAg
ICAgIGNoZWNrUmVzdWx0KEAiYXJyWzBdIHNob3VsZCBiZSAxIiwgW2FycltAMF0gdG9JbnQzMl0g
PT0gMSk7CisgICAgICAgIGNoZWNrUmVzdWx0KEAiYXJyWzFdIHNob3VsZCBiZSAyIiwgW2FycltA
MV0gdG9JbnQzMl0gPT0gMik7CisgICAgICAgIGNoZWNrUmVzdWx0KEAiYXJyWzJdIHNob3VsZCBi
ZSAzIiwgW2FycltAMl0gdG9JbnQzMl0gPT0gMyk7CisgICAgfQorfQorCiBAcHJvdG9jb2wgVG9T
dHJpbmcgPEpTRXhwb3J0PgogLSAoTlNTdHJpbmcgKil0b1N0cmluZzsKIEBlbmQKQEAgLTI4NDgs
NiArMjg4Nyw4IEBAIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEkoY29uc3QgY2hhciogZmlsdGVyKQog
ICAgIFJVTihwcm9taXNlQ3JlYXRlUmVqZWN0ZWQoKSk7CiAgICAgUlVOKHBhcmFsbGVsUHJvbWlz
ZVJlc29sdmVUZXN0KCkpOwogCisgICAgUlVOKHRlc3RNaWNyb3Rhc2tXaXRoRnVuY3Rpb24oKSk7
CisKICAgICBpZiAoIWZpbHRlcikKICAgICAgICAgdGVzdE9iamVjdGl2ZUNBUElNYWluKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAppbmRleCBhZWYzYjRjOTdl
NDQ4N2Q3YTdmOTQ2YWUzMjBhYjAxODcxODc5N2Q5Li4wZWZmNzhiMjNiYzBjNDk5NDViN2Y0ZDc2
ZWZmMDEzY2NiOWQ0NWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0xvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5j
cHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMyw2
ICszMywxMCBAQAogI2luY2x1ZGUgPHd0Zi9pb3MvV2ViQ29yZVRocmVhZC5oPgogI2VuZGlmCiAK
KyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlIDx3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzQ29jb2EuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgSlNDIHsKIAogTG9jayBHbG9i
YWxKU0xvY2s6OnNfc2hhcmVkSW5zdGFuY2VNdXRleDsKQEAgLTE5Nyw3ICsyMDEsMjQgQEAgdm9p
ZCBKU0xvY2s6OndpbGxSZWxlYXNlTG9jaygpCiB7ICAgCiAgICAgUmVmUHRyPFZNPiB2bSA9IG1f
dm07CiAgICAgaWYgKHZtKSB7Ci0gICAgICAgIHZtLT5kcmFpbk1pY3JvdGFza3MoKTsKKyAgICAg
ICAgc3RhdGljIGJvb2wgdXNlTGVnYWN5RHJhaW4gPSBmYWxzZTsKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CisgICAgICAgIHN0ZDo6Y2Fs
bF9vbmNlKG9uY2UsIFtdIHsKKyNpZiBQTEFURk9STShNQUMpCisgICAgICAgICAgICB1c2VMZWdh
Y3lEcmFpbiA9IGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpIDwgRFlMRF9NQUNPU1hfVkVSU0lPTl8x
Ml8wMDsKKyNlbGlmIFBMQVRGT1JNKFdBVENIKQorICAgICAgICAgICAgLy8gRG9uJ3QgY2hlY2ss
IEpTQyBpc24ndCBBUEkgb24gd2F0Y2ggYW55d2F5LgorI2VsaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICAgICAgICAgIHVzZUxlZ2FjeURyYWluID0gYXBwbGljYXRpb25TREtWZXJzaW9uKCkg
PCBEWUxEX0lPU19WRVJTSU9OXzE1XzA7CisjZWxzZQorI2Vycm9yICJVbnN1cHBvcnRlZCBDb2Nv
YSBQbGF0Zm9ybSIKKyNlbmRpZgorICAgICAgICB9KTsKKyNlbmRpZgorCisgICAgICAgIGlmICgh
bV9sb2NrRHJvcERlcHRoIHx8IHVzZUxlZ2FjeURyYWluKQorICAgICAgICAgICAgdm0tPmRyYWlu
TWljcm90YXNrcygpOwogCiAgICAgICAgIGlmICghdm0tPnRvcENhbGxGcmFtZSkKICAgICAgICAg
ICAgIHZtLT5jbGVhckxhc3RFeGNlcHRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4IGQ2MTZkYWNhNjBiYjc0NWRkNjli
NjNjMDc0NjA0YjNjZWI0MzBhODguLmVlMzEzNjhlNTk3NjVkZmJhYzNiMzA4ODczZGE4MDY0NzEz
NTAzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFBy
b3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJv
dG90eXBlLmNwcApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIlByb3BlcnR5U2xvdC5oIgog
CiAjaWYgUExBVEZPUk0oSU9TKQotI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaD4K
KyNpbmNsdWRlIDx3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KICNl
bmRpZgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTMyMiw3ICszMjIsNyBAQCBpbmxpbmUgc3RhdGlj
IGJvb2wgaXNQb2tlckJyb3MoKQogICAgIGF1dG8gYnVuZGxlSUQgPSBDRkJ1bmRsZUdldElkZW50
aWZpZXIoQ0ZCdW5kbGVHZXRNYWluQnVuZGxlKCkpOwogICAgIHJldHVybiBidW5kbGVJRAogICAg
ICAgICAmJiBDRkVxdWFsKGJ1bmRsZUlELCBDRlNUUigiY29tLmtwZ2FtZS5Qb2tlckJyb3MiKSkK
LSAgICAgICAgJiYgZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpIDwgRFlMRF9JT1NfVkVS
U0lPTl8xNF8wOworICAgICAgICAmJiBhcHBsaWNhdGlvblNES1ZlcnNpb24oKSA8IERZTERfSU9T
X1ZFUlNJT05fMTRfMDsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5j
cHAKaW5kZXggNGMxYmU0MTgxZmQyNzk4MzQ4MGZiYjk1YjczZTU0MTVjN2Y0YzZmNC4uMWIwOWJl
ZWVkNTVlMWY1ZDYyNmI4NjQ5ZmFkNTQ4YTgzYjFiYmZiMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmNwcApAQCAtMTM2OCwxMyArMTM2OCwxNSBAQCB2b2lkIFZNOjpjYWxsUHJvbWlz
ZVJlamVjdGlvbkNhbGxiYWNrKFN0cm9uZzxKU1Byb21pc2U+JiBwcm9taXNlKQogCiB2b2lkIFZN
OjpkaWRFeGhhdXN0TWljcm90YXNrUXVldWUoKQogewotICAgIGF1dG8gdW5oYW5kbGVkUmVqZWN0
aW9ucyA9IFdURk1vdmUobV9hYm91dFRvQmVOb3RpZmllZFJlamVjdGVkUHJvbWlzZXMpOwotICAg
IGZvciAoYXV0byYgcHJvbWlzZSA6IHVuaGFuZGxlZFJlamVjdGlvbnMpIHsKLSAgICAgICAgaWYg
KHByb21pc2UtPmlzSGFuZGxlZCgqdGhpcykpCi0gICAgICAgICAgICBjb250aW51ZTsKKyAgICBk
byB7CisgICAgICAgIGF1dG8gdW5oYW5kbGVkUmVqZWN0aW9ucyA9IFdURk1vdmUobV9hYm91dFRv
QmVOb3RpZmllZFJlamVjdGVkUHJvbWlzZXMpOworICAgICAgICBmb3IgKGF1dG8mIHByb21pc2Ug
OiB1bmhhbmRsZWRSZWplY3Rpb25zKSB7CisgICAgICAgICAgICBpZiAocHJvbWlzZS0+aXNIYW5k
bGVkKCp0aGlzKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBjYWxsUHJv
bWlzZVJlamVjdGlvbkNhbGxiYWNrKHByb21pc2UpOwotICAgIH0KKyAgICAgICAgICAgIGNhbGxQ
cm9taXNlUmVqZWN0aW9uQ2FsbGJhY2socHJvbWlzZSk7CisgICAgICAgIH0KKyAgICB9IHdoaWxl
ICghbV9hYm91dFRvQmVOb3RpZmllZFJlamVjdGVkUHJvbWlzZXMuaXNFbXB0eSgpKTsKIH0KIAog
dm9pZCBWTTo6cHJvbWlzZVJlamVjdGVkKEpTUHJvbWlzZSogcHJvbWlzZSkK
</data>
<flag name="commit-queue"
          id="453262"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>