<?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>200249</bug_id>
          
          <creation_ts>2019-07-29 15:41:49 -0700</creation_ts>
          <short_desc>Fix non-thread safe use of WeakPtr under sendSecItemRequest()</short_desc>
          <delta_ts>2019-07-30 12:54:35 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>199922</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>rniwa</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1556759</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-29 15:41:49 -0700</bug_when>
    <thetext>Fix non-thread safe use of WeakPtr under sendSecItemRequest():
Thread 1 Crashed:: Dispatch queue: com.apple.CFNetwork.Connection
0   com.apple.WebKit              	0x0000000106433bc3 WTFCrashWithInfo(int, char const*, char const*, int) + 19 (Assertions.h:568)
1   com.apple.WebKit              	0x000000010662346b WebKit::NetworkProcess::WeakValueType* WTF::WeakPtrImpl::get&lt;WebKit::NetworkProcess&gt;() + 75
2   com.apple.WebKit              	0x00000001066231b8 WebKit::sendSecItemRequest(WebKit::SecItemRequestData::Type, __CFDictionary const*, __CFDictionary const*) + 92 (DumbPtrTraits.h:43)
3   com.apple.WebKit              	0x000000010662303b WebKit::webSecItemCopyMatching(__CFDictionary const*, void const**) + 39 (Optional.h:371)
4   com.apple.CFNetwork           	0x00007fff537b2889 StorageQuery::performQuery() + 59
5   com.apple.CFNetwork           	0x00007fff537e9ed4 PersistentCredentialStorage::copyDefaultCredentialForProtectionSpace(_CFURLProtectionSpace*) + 92
6   com.apple.CFNetwork           	0x00007fff537ec470 CFURLCredentialStorageCopyDefaultCredentialForProtectionSpace + 74
7   com.apple.CFNetwork           	0x00007fff53913493 -[NSURLCredentialStorage defaultCredentialForProtectionSpace:] + 53
8   com.apple.CFNetwork           	0x00007fff539135ad -[NSURLCredentialStorage getDefaultCredentialForProtectionSpace:task:completionHandler:] + 22
9   com.apple.CFNetwork           	0x00007fff5382cec1 NSXCredentialStorage::copyDefaultCredentialForProtectionSpace(_CFURLProtectionSpace*, NSURLSessionTask const*) const + 179
10  com.apple.CFNetwork           	0x00007fff5386da53 HTTPProtocol::_CFHTTPProtHasCredentialsForChallenge(__CFHTTPMessage*) + 3085
11  com.apple.CFNetwork           	0x00007fff538704f7 HTTPProtocol::attemptAuthentication(__CFHTTPMessage*) + 113
12  com.apple.CFNetwork           	0x00007fff53770a03 HTTPProtocol::performHeaderRead(__CFHTTPMessage*) + 1637
13  com.apple.CFNetwork           	0x00007fff53770258 HTTPProtocol::handleStreamEvent(__CFHTTPMessage*, dispatch_data_s*, CFStreamError const*) + 180
14  com.apple.CFNetwork           	0x00007fff53757e9b HTTPTransaction::_onqueue_invokeHandler() + 281
15  com.apple.CFNetwork           	0x00007fff5375aba5 HTTPConnection::_onqueue_responseDataArrived(dispatch_data_s*, CFStreamError, bool) + 231
16  com.apple.CFNetwork           	0x00007fff5375aa73 HTTPEngine::_readBodyFinish(dispatch_data_s*, CFStreamError, bool) + 129
17  com.apple.CFNetwork           	0x00007fff5375a937 HTTPEngine::_deliverBodyBytes(dispatch_data_s*, CFStreamError, bool) + 305
18  com.apple.CFNetwork           	0x00007fff5392ffad invocation function for block in HTTPEngine::_getBodyIntelligently(void (dispatch_data_s*, CFStreamError, bool) block_pointer) + 160
19  libdispatch.dylib             	0x00007fff7c7a05fa _dispatch_call_block_and_release + 12
20  libdispatch.dylib             	0x00007fff7c798db8 _dispatch_client_callout + 8
21  libdispatch.dylib             	0x00007fff7c7ad217 _dispatch_queue_serial_drain + 635
22  libdispatch.dylib             	0x00007fff7c7a0166 _dispatch_queue_invoke + 373
23  libdispatch.dylib             	0x00007fff7c7ad07a _dispatch_queue_serial_drain + 222
24  libdispatch.dylib             	0x00007fff7c7a0166 _dispatch_queue_invoke + 373
25  libdispatch.dylib             	0x00007fff7c7adf0d _dispatch_root_queue_drain_deferred_wlh + 332
26  libdispatch.dylib             	0x00007fff7c7b1d21 _dispatch_workloop_worker_thread + 880
27  libsystem_pthread.dylib       	0x00007fff7cae9fd2 _pthread_wqthread + 980
28  libsystem_pthread.dylib       	0x00007fff7cae9be9 start_wqthread + 13</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556766</commentid>
    <comment_count>1</comment_count>
      <attachid>375113</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-29 15:48:34 -0700</bug_when>
    <thetext>Created attachment 375113
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556802</commentid>
    <comment_count>2</comment_count>
      <attachid>375113</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-07-29 16:23:19 -0700</bug_when>
    <thetext>Comment on attachment 375113
Patch

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

&gt; Source/WebKit/Shared/mac/SecItemShim.cpp:89
&gt; +        globalNetworkProcess()-&gt;parentProcessConnection()-&gt;sendWithReply(Messages::SecItemShimProxy::SecItemRequest(SecItemRequestData(requestType, query, attributesToMatch)), 0, workQueue(), [&amp;](auto reply) {

As long as we&apos;re trying this, let&apos;s use sendWithAsyncReply. I tried using a synchronous message in https://bugs.webkit.org/show_bug.cgi?id=197747 but it didn&apos;t work. This is a better approach, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556812</commentid>
    <comment_count>3</comment_count>
      <attachid>375125</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-29 16:48:54 -0700</bug_when>
    <thetext>Created attachment 375125
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556813</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-29 16:49:22 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #2)
&gt; Comment on attachment 375113 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=375113&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Shared/mac/SecItemShim.cpp:89
&gt; &gt; +        globalNetworkProcess()-&gt;parentProcessConnection()-&gt;sendWithReply(Messages::SecItemShimProxy::SecItemRequest(SecItemRequestData(requestType, query, attributesToMatch)), 0, workQueue(), [&amp;](auto reply) {
&gt; 
&gt; As long as we&apos;re trying this, let&apos;s use sendWithAsyncReply. I tried using a
&gt; synchronous message in https://bugs.webkit.org/show_bug.cgi?id=197747 but it
&gt; didn&apos;t work. This is a better approach, though.

Oh, what are you making me do? :)
Please take another look before I land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556822</commentid>
    <comment_count>5</comment_count>
      <attachid>375125</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-07-29 16:57:07 -0700</bug_when>
    <thetext>Comment on attachment 375125
Patch

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

&gt; Source/WebKit/Shared/mac/SecItemShim.cpp:72
&gt; +    RunLoop::main().dispatch([&amp;] {

Can&apos;t we just use callOnMainRunLoopAndWait?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556823</commentid>
    <comment_count>6</comment_count>
      <attachid>375125</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-29 17:02:13 -0700</bug_when>
    <thetext>Comment on attachment 375125
Patch

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

&gt;&gt; Source/WebKit/Shared/mac/SecItemShim.cpp:72
&gt;&gt; +    RunLoop::main().dispatch([&amp;] {
&gt; 
&gt; Can&apos;t we just use callOnMainRunLoopAndWait?

I don&apos;t think so since the lambda calls sendWithAsyncReply() with is async and takes a completion handler. We only want to go back to resume the background thread once the sendWithAsyncReply()&apos;s completion handler has been called.
I guess I could use callOnMainRunLoopAndWait() if the lambda did a sendSync() but this would not seem like an improvement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556838</commentid>
    <comment_count>7</comment_count>
      <attachid>375125</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-29 17:20:17 -0700</bug_when>
    <thetext>Comment on attachment 375125
Patch

Clearing flags on attachment: 375125

Committed r247932: &lt;https://trac.webkit.org/changeset/247932&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556839</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-29 17:20:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556840</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-29 17:21:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/53687336&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556947</commentid>
    <comment_count>10</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-07-30 08:37:42 -0700</bug_when>
    <thetext>It looks like the changes in https://trac.webkit.org/changeset/247932/webkit

has caused 8 api test timeouts: 
Timeout

    TestWebKitAPI.ProcessSwap.NumberOfCachedProcesses
        Received data during response processing, queuing it.
        Received data during response processing, queuing it.
        Received data during response processing, queuing it.
        Received data during response processing, queuing it.

    TestWebKitAPI.WKWebsiteDataStore.RemoveNonPersistentCredentials
    TestWebKitAPI.Challenge.SecIdentity
    TestWebKitAPI.WKWebsiteDataStore.FetchNonPersistentCredentials
    TestWebKitAPI.WKWebsiteDataStore.RemoveAndFetchData
    TestWebKitAPI.WKWebsiteDataStore.FetchPersistentCredentials
    TestWebKitAPI.ResourceLoadStatistics.GrandfatherCallback
    TestWebKitAPI.Challenge.BasicProposedCredential

Build:
https://build.webkit.org/builders/Apple%20High%20Sierra%20Release%20WK1%20%28Tests%29/builds/14548

I was able to reproduce this locally and it looks like EWS caught this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556948</commentid>
    <comment_count>11</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-07-30 08:40:04 -0700</bug_when>
    <thetext>Reverted r247932 for reason:

Broke 8 API tests across all platforms.

Committed r248006: &lt;https://trac.webkit.org/changeset/248006&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556951</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-30 08:46:38 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #11)
&gt; Reverted r247932 for reason:
&gt; 
&gt; Broke 8 API tests across all platforms.
&gt; 
&gt; Committed r248006: &lt;https://trac.webkit.org/changeset/248006&gt;

Ok, I will investigate. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556954</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-30 08:54:53 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #10)
&gt; It looks like the changes in https://trac.webkit.org/changeset/247932/webkit
&gt; 
&gt; has caused 8 api test timeouts: 
&gt; Timeout
&gt; 
&gt;     TestWebKitAPI.ProcessSwap.NumberOfCachedProcesses
&gt;         Received data during response processing, queuing it.
&gt;         Received data during response processing, queuing it.
&gt;         Received data during response processing, queuing it.
&gt;         Received data during response processing, queuing it.
&gt; 
&gt;     TestWebKitAPI.WKWebsiteDataStore.RemoveNonPersistentCredentials
&gt;     TestWebKitAPI.Challenge.SecIdentity
&gt;     TestWebKitAPI.WKWebsiteDataStore.FetchNonPersistentCredentials
&gt;     TestWebKitAPI.WKWebsiteDataStore.RemoveAndFetchData
&gt;     TestWebKitAPI.WKWebsiteDataStore.FetchPersistentCredentials
&gt;     TestWebKitAPI.ResourceLoadStatistics.GrandfatherCallback
&gt;     TestWebKitAPI.Challenge.BasicProposedCredential
&gt; 
&gt; Build:
&gt; https://build.webkit.org/builders/
&gt; Apple%20High%20Sierra%20Release%20WK1%20%28Tests%29/builds/14548
&gt; 
&gt; I was able to reproduce this locally and it looks like EWS caught this.

The issue seems to be that sendSecItemRequest(), in which case the main thread is blocked on the semaphore and we never process the response to the SecItemShimProxy::SecItemRequest async IPC (which needs to be processed by the same main thread).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556961</commentid>
    <comment_count>14</comment_count>
      <attachid>375159</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-30 09:07:06 -0700</bug_when>
    <thetext>Created attachment 375159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556997</commentid>
    <comment_count>15</comment_count>
      <attachid>375159</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-07-30 10:25:41 -0700</bug_when>
    <thetext>Comment on attachment 375159
Patch

If we&apos;re on the main thread we should send a synchronous message.  If we&apos;re not on the main thread, we should use sendWithAsyncReply to not block the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556998</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-30 10:26:51 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #15)
&gt; Comment on attachment 375159 [details]
&gt; Patch
&gt; 
&gt; If we&apos;re on the main thread we should send a synchronous message.  If we&apos;re
&gt; not on the main thread, we should use sendWithAsyncReply to not block the
&gt; main thread.

This is the previous patch iteration, which did not work. The async reply never gets processed since the main thread is stuck on the semaphore...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556999</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-30 10:27:56 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #16)
&gt; (In reply to Alex Christensen from comment #15)
&gt; &gt; Comment on attachment 375159 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; If we&apos;re on the main thread we should send a synchronous message.  If we&apos;re
&gt; &gt; not on the main thread, we should use sendWithAsyncReply to not block the
&gt; &gt; main thread.
&gt; 
&gt; This is the previous patch iteration, which did not work. The async reply
&gt; never gets processed since the main thread is stuck on the semaphore...

Oh, I re-read, so 2 separate IPC messages? I guess we can do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557006</commentid>
    <comment_count>18</comment_count>
      <attachid>375162</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-30 10:47:21 -0700</bug_when>
    <thetext>Created attachment 375162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557007</commentid>
    <comment_count>19</comment_count>
      <attachid>375162</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-30 10:51:11 -0700</bug_when>
    <thetext>Comment on attachment 375162
Patch

Let&apos;s give EWS a change to run this time :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557039</commentid>
    <comment_count>20</comment_count>
      <attachid>375162</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-30 12:08:14 -0700</bug_when>
    <thetext>Comment on attachment 375162
Patch

Looks like there are some API tests failures on macOS still.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557046</commentid>
    <comment_count>21</comment_count>
      <attachid>375162</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-30 12:54:33 -0700</bug_when>
    <thetext>Comment on attachment 375162
Patch

Clearing flags on attachment: 375162

Committed r248014: &lt;https://trac.webkit.org/changeset/248014&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557047</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-30 12:54:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375113</attachid>
            <date>2019-07-29 15:48:34 -0700</date>
            <delta_ts>2019-07-29 16:48:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200249-20190729154834.patch</filename>
            <type>text/plain</type>
            <size>2460</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYxNjNiMzk4ZWQ5YTIzZjI2
OGE5NGQwMzFjMWUwYjA3OWU3YjRlZTAuLjQ4ZjUwMGU0OTc1Zjk0MGMxNDQ2MTc0ZjViNGFlYzU1
Yjk5MTJkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDctMjkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbm9uLXRocmVhZCBzYWZlIHVz
ZSBvZiBXZWFrUHRyIHVuZGVyIHNlbmRTZWNJdGVtUmVxdWVzdCgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAyNDkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZnVuY3Rpb24gd2FzIGNhbGxpbmcg
Z2xvYmFsTmV0d29ya1Byb2Nlc3MoKSBmcm9tIGEgYmFja2dyb3VuZCB0aHJlYWQuIFRoaXMgaXMg
bm90IHNhZmUgYmVjYXVzZQorICAgICAgICBnbG9iYWxOZXR3b3JrUHJvY2VzcygpIGRlZmVyZW5j
ZXMgYSBXZWFrUHRyPE5ldHdvcmtQcm9jZXNzPiBpbnRlcm5hbGx5IGFuZCB0aGUgTmV0d29ya1By
b2Nlc3Mgb2JqZWN0CisgICAgICAgIGdldHMgZGVzdHJveWVkIG9uIHRoZSBtYWluIHRocmVhZC4K
KworICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwOgorICAgICAgICAoV2ViS2l0
OjpzZW5kU2VjSXRlbVJlcXVlc3QpOgorCiAyMDE5LTA3LTI5ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IG51bGwgY2hlY2sgdW5k
ZXIgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCmluZGV4IDE0NzA1NGYzN2EzMWI5
YjI0NmFkYTdmZjM0YjA2ZGM5OTYwYTYzZTYuLjdkYmJhODUzNmI2OTJkOTUzMjc0ZjgxMWUzNWU5
NGZmNTY0NjA0YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TZWNJdGVt
U2hpbS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcApA
QCAtNzgsMTggKzc4LDIwIEBAIHN0YXRpYyBXb3JrUXVldWUmIHdvcmtRdWV1ZSgpCiAKIHN0YXRp
YyBPcHRpb25hbDxTZWNJdGVtUmVzcG9uc2VEYXRhPiBzZW5kU2VjSXRlbVJlcXVlc3QoU2VjSXRl
bVJlcXVlc3REYXRhOjpUeXBlIHJlcXVlc3RUeXBlLCBDRkRpY3Rpb25hcnlSZWYgcXVlcnksIENG
RGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzVG9NYXRjaCA9IDApCiB7Ci0gICAgaWYgKCFnbG9iYWxO
ZXR3b3JrUHJvY2VzcygpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCiAgICAgT3B0
aW9uYWw8U2VjSXRlbVJlc3BvbnNlRGF0YT4gcmVzcG9uc2U7CiAKICAgICBCaW5hcnlTZW1hcGhv
cmUgc2VtYXBob3JlOwotCi0gICAgZ2xvYmFsTmV0d29ya1Byb2Nlc3MoKS0+cGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZFdpdGhSZXBseShNZXNzYWdlczo6U2VjSXRlbVNoaW1Qcm94eTo6
U2VjSXRlbVJlcXVlc3QoU2VjSXRlbVJlcXVlc3REYXRhKHJlcXVlc3RUeXBlLCBxdWVyeSwgYXR0
cmlidXRlc1RvTWF0Y2gpKSwgMCwgd29ya1F1ZXVlKCksIFsmcmVzcG9uc2UsICZzZW1hcGhvcmVd
KGF1dG8gcmVwbHkpIHsKLSAgICAgICAgaWYgKHJlcGx5KQotICAgICAgICAgICAgcmVzcG9uc2Ug
PSBXVEZNb3ZlKHN0ZDo6Z2V0PDA+KCpyZXBseSkpOwotCi0gICAgICAgIHNlbWFwaG9yZS5zaWdu
YWwoKTsKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goWyZdIHsKKyAgICAgICAgaWYgKCFn
bG9iYWxOZXR3b3JrUHJvY2VzcygpKSB7CisgICAgICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZ2xvYmFsTmV0d29ya1By
b2Nlc3MoKS0+cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFdpdGhSZXBseShNZXNzYWdl
czo6U2VjSXRlbVNoaW1Qcm94eTo6U2VjSXRlbVJlcXVlc3QoU2VjSXRlbVJlcXVlc3REYXRhKHJl
cXVlc3RUeXBlLCBxdWVyeSwgYXR0cmlidXRlc1RvTWF0Y2gpKSwgMCwgd29ya1F1ZXVlKCksIFsm
XShhdXRvIHJlcGx5KSB7CisgICAgICAgICAgICBpZiAocmVwbHkpCisgICAgICAgICAgICAgICAg
cmVzcG9uc2UgPSBXVEZNb3ZlKHN0ZDo6Z2V0PDA+KCpyZXBseSkpOworCisgICAgICAgICAgICBz
ZW1hcGhvcmUuc2lnbmFsKCk7CisgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgc2VtYXBob3Jl
LndhaXQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375125</attachid>
            <date>2019-07-29 16:48:54 -0700</date>
            <delta_ts>2019-07-30 09:07:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200249-20190729164854.patch</filename>
            <type>text/plain</type>
            <size>5231</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3OTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBmOGEzYzQxNjE5NWFhYWI1
ZTdkNmFkZjk1ODljMjcwZWI2YTRkZGUuLmI5MDA0ZjlmODJkZmYwYTBmZjlkZjY4MjE5NTgzYjNl
MDUzNWM2ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDctMjkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbm9uLXRocmVhZCBzYWZlIHVz
ZSBvZiBXZWFrUHRyIHVuZGVyIHNlbmRTZWNJdGVtUmVxdWVzdCgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAyNDkKKworICAgICAgICBSZXZpZXdl
ZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFRoZSBmdW5jdGlvbiB3YXMgY2FsbGlu
ZyBnbG9iYWxOZXR3b3JrUHJvY2VzcygpIGZyb20gYSBiYWNrZ3JvdW5kIHRocmVhZC4gVGhpcyBp
cyBub3Qgc2FmZSBiZWNhdXNlCisgICAgICAgIGdsb2JhbE5ldHdvcmtQcm9jZXNzKCkgZGVmZXJl
bmNlcyBhIFdlYWtQdHI8TmV0d29ya1Byb2Nlc3M+IGludGVybmFsbHkgYW5kIHRoZSBOZXR3b3Jr
UHJvY2VzcyBvYmplY3QKKyAgICAgICAgZ2V0cyBkZXN0cm95ZWQgb24gdGhlIG1haW4gdGhyZWFk
LgorCisgICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OnNlbmRTZWNJdGVtUmVxdWVzdCk6CisKIDIwMTktMDctMjkgIFphbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29udGVudENoYW5nZU9ic2VydmVyXSBkaWRGaW5p
c2hDb250ZW50Q2hhbmdlT2JzZXJ2aW5nIHNob3VsZCBpbmNsdWRlIHRoZSB0eXBlIG9mIGNvbnRl
bnQgY2hhbmdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NlY0l0ZW1T
aGltLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKaW5kZXgg
MTQ3MDU0ZjM3YTMxYjliMjQ2YWRhN2ZmMzRiMDZkYzk5NjBhNjNlNi4uMDI0NGY0ZjczYjM2MGUw
ODk1ZTk2ZmVjNjJiNDUzMjBjNDExNGJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL1NlY0l0ZW1TaGltLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2Vj
SXRlbVNoaW0uY3BwCkBAIC02NCwzMiArNjQsMjIgQEAgc3RhdGljIFdlYWtQdHI8TmV0d29ya1By
b2Nlc3M+JiBnbG9iYWxOZXR3b3JrUHJvY2VzcygpCiAgICAgcmV0dXJuIG5ldHdvcmtQcm9jZXNz
LmdldCgpOwogfQogCi1zdGF0aWMgV29ya1F1ZXVlJiB3b3JrUXVldWUoKQotewotICAgIHN0YXRp
YyBXb3JrUXVldWUqIHdvcmtRdWV1ZTsKLSAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VU
b2tlbjsKLSAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57Ci0gICAgICAgIHdvcmtRdWV1
ZSA9ICZXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5TZWNJdGVtU2hpbSIpLmxl
YWtSZWYoKTsKLQotICAgIH0pOwotCi0gICAgcmV0dXJuICp3b3JrUXVldWU7Ci19Ci0KIHN0YXRp
YyBPcHRpb25hbDxTZWNJdGVtUmVzcG9uc2VEYXRhPiBzZW5kU2VjSXRlbVJlcXVlc3QoU2VjSXRl
bVJlcXVlc3REYXRhOjpUeXBlIHJlcXVlc3RUeXBlLCBDRkRpY3Rpb25hcnlSZWYgcXVlcnksIENG
RGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzVG9NYXRjaCA9IDApCiB7Ci0gICAgaWYgKCFnbG9iYWxO
ZXR3b3JrUHJvY2VzcygpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCiAgICAgT3B0
aW9uYWw8U2VjSXRlbVJlc3BvbnNlRGF0YT4gcmVzcG9uc2U7CiAKICAgICBCaW5hcnlTZW1hcGhv
cmUgc2VtYXBob3JlOwotCi0gICAgZ2xvYmFsTmV0d29ya1Byb2Nlc3MoKS0+cGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZFdpdGhSZXBseShNZXNzYWdlczo6U2VjSXRlbVNoaW1Qcm94eTo6
U2VjSXRlbVJlcXVlc3QoU2VjSXRlbVJlcXVlc3REYXRhKHJlcXVlc3RUeXBlLCBxdWVyeSwgYXR0
cmlidXRlc1RvTWF0Y2gpKSwgMCwgd29ya1F1ZXVlKCksIFsmcmVzcG9uc2UsICZzZW1hcGhvcmVd
KGF1dG8gcmVwbHkpIHsKLSAgICAgICAgaWYgKHJlcGx5KQotICAgICAgICAgICAgcmVzcG9uc2Ug
PSBXVEZNb3ZlKHN0ZDo6Z2V0PDA+KCpyZXBseSkpOwotCi0gICAgICAgIHNlbWFwaG9yZS5zaWdu
YWwoKTsKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goWyZdIHsKKyAgICAgICAgaWYgKCFn
bG9iYWxOZXR3b3JrUHJvY2VzcygpKSB7CisgICAgICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZ2xvYmFsTmV0d29ya1By
b2Nlc3MoKS0+cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpTZWNJdGVtU2hpbVByb3h5OjpTZWNJdGVtUmVxdWVzdChTZWNJdGVtUmVxdWVzdERh
dGEocmVxdWVzdFR5cGUsIHF1ZXJ5LCBhdHRyaWJ1dGVzVG9NYXRjaCkpLCBbJl0oYXV0byByZXBs
eSkgeworICAgICAgICAgICAgaWYgKHJlcGx5KQorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0g
V1RGTW92ZSgqcmVwbHkpOworCisgICAgICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CisgICAg
ICAgIH0pOwogICAgIH0pOwogCiAgICAgc2VtYXBob3JlLndhaXQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcAppbmRleCBkMTJiZmY2N2E1
ZDg5MTk1MGJiNjE0ZGFhZDg4NmQxOTVlZWVlYmQ0Li4xYTM5YmE0ZjU5NTcxN2IwNjM4YzY1ZmFi
MTExNjY0OWJkNzExNDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
U2VjSXRlbVNoaW1Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1Nl
Y0l0ZW1TaGltUHJveHkuY3BwCkBAIC01NiwxMSArNTYsNyBAQCB2b2lkIFNlY0l0ZW1TaGltUHJv
eHk6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKICAg
ICBjb25uZWN0aW9uLmFkZFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U2VjSXRl
bVNoaW1Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3F1ZXVlLmdldCgpLCB0aGlzKTsK
IH0KIAotdm9pZCBTZWNJdGVtU2hpbVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKQotewotfQotCi12b2lkIFNlY0l0ZW1TaGltUHJveHk6OnNl
Y0l0ZW1SZXF1ZXN0KGNvbnN0IFNlY0l0ZW1SZXF1ZXN0RGF0YSYgcmVxdWVzdCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTZWNJdGVtUmVzcG9uc2VEYXRhJiYpPiYmIHJlc3BvbnNlKQordm9pZCBT
ZWNJdGVtU2hpbVByb3h5OjpzZWNJdGVtUmVxdWVzdChjb25zdCBTZWNJdGVtUmVxdWVzdERhdGEm
IHJlcXVlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U2VjSXRlbVJlc3BvbnNl
RGF0YT4mJik+JiYgcmVzcG9uc2UpCiB7CiAgICAgc3dpdGNoIChyZXF1ZXN0LnR5cGUoKSkgewog
ICAgIGNhc2UgU2VjSXRlbVJlcXVlc3REYXRhOjpJbnZhbGlkOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmgKaW5kZXggZTcyYTEwMmEwZDA0NDg2MTMw
NTdmYzYzYTYzODIwMGMzNGUyN2MzMC4uZmMwOWY2NzMxOTZlOGZkOWFiOWI0NDJlYzVmMjkxNjIw
MjE1NDYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1T
aGltUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Q
cm94eS5oCkBAIC00Niw5ICs0Niw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rp
b246OldvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAotICAgIHZvaWQgc2VjSXRlbVJl
cXVlc3QoY29uc3QgU2VjSXRlbVJlcXVlc3REYXRhJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
ZWNJdGVtUmVzcG9uc2VEYXRhJiYpPiYmKTsKKyAgICB2b2lkIHNlY0l0ZW1SZXF1ZXN0KGNvbnN0
IFNlY0l0ZW1SZXF1ZXN0RGF0YSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U2Vj
SXRlbVJlc3BvbnNlRGF0YT4mJik+JiYpOwogCiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Q
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hp
bVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDMyNDBkOGI2NWRmOTJhMmMyZWU1ZTUwNzZhMWZhZGZl
ZGY1ZjAzZjcuLjQ1OGJjNDMxMDUwOTdhZjU4MjExYWNhN2UyMGQ1YjJiM2YxOWE0NzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5
Lm1lc3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw3IEBACiBtZXNzYWdlcyAtPiBTZWNJdGVtU2hpbVBy
b3h5IHsKIAogI2lmIEVOQUJMRShTRUNfSVRFTV9TSElNKQotICAgIFNlY0l0ZW1SZXF1ZXN0KFdl
YktpdDo6U2VjSXRlbVJlcXVlc3REYXRhIHJlcXVlc3QpIC0+IChXZWJLaXQ6OlNlY0l0ZW1SZXNw
b25zZURhdGEgcmVzcG9uc2UpIFN5bmNocm9ub3VzCisgICAgU2VjSXRlbVJlcXVlc3QoV2ViS2l0
OjpTZWNJdGVtUmVxdWVzdERhdGEgcmVxdWVzdCkgLT4gKE9wdGlvbmFsPFdlYktpdDo6U2VjSXRl
bVJlc3BvbnNlRGF0YT4gcmVzcG9uc2UpIEFzeW5jCiAjZW5kaWYKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375159</attachid>
            <date>2019-07-30 09:07:06 -0700</date>
            <delta_ts>2019-07-30 10:47:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200249-20190730090705.patch</filename>
            <type>text/plain</type>
            <size>4854</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZmZmJjMzlkYzY3NjIyMWFh
ZTJhODA5OWZhNDBhMDM3YWMwOWExOGYuLmI3YzEwYWUzNTk3OTcwZTliZmZlMjJiMmM5NDQwNjMy
ZTBmYjlkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDctMzAgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbm9uLXRocmVhZCBzYWZlIHVz
ZSBvZiBXZWFrUHRyIHVuZGVyIHNlbmRTZWNJdGVtUmVxdWVzdCgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAyNDkKKworICAgICAgICBSZXZpZXdl
ZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFRoZSBmdW5jdGlvbiB3YXMgY2FsbGlu
ZyBnbG9iYWxOZXR3b3JrUHJvY2VzcygpIGZyb20gYSBiYWNrZ3JvdW5kIHRocmVhZC4gVGhpcyBp
cyBub3Qgc2FmZSBiZWNhdXNlCisgICAgICAgIGdsb2JhbE5ldHdvcmtQcm9jZXNzKCkgZGVmZXJl
bmNlcyBhIFdlYWtQdHI8TmV0d29ya1Byb2Nlc3M+IGludGVybmFsbHkgYW5kIHRoZSBOZXR3b3Jr
UHJvY2VzcyBvYmplY3QKKyAgICAgICAgZ2V0cyBkZXN0cm95ZWQgb24gdGhlIG1haW4gdGhyZWFk
LgorCisgICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OnNlbmRTZWNJdGVtUmVxdWVzdCk6CisKIDIwMTktMDctMzAgIFRydWl0dCBTYXZlbGwgIDx0
c2F2ZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ3
OTMyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKaW5kZXggMTQ3MDU0
ZjM3YTMxYjliMjQ2YWRhN2ZmMzRiMDZkYzk5NjBhNjNlNi4uN2JiZDY0MTU5MmQxYmQ0N2JlNDcx
MGNkMWEyNGZjYjEwODJkZjllYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L1NlY0l0ZW1TaGltLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNo
aW0uY3BwCkBAIC02NCwzNiArNjQsMTggQEAgc3RhdGljIFdlYWtQdHI8TmV0d29ya1Byb2Nlc3M+
JiBnbG9iYWxOZXR3b3JrUHJvY2VzcygpCiAgICAgcmV0dXJuIG5ldHdvcmtQcm9jZXNzLmdldCgp
OwogfQogCi1zdGF0aWMgV29ya1F1ZXVlJiB3b3JrUXVldWUoKQotewotICAgIHN0YXRpYyBXb3Jr
UXVldWUqIHdvcmtRdWV1ZTsKLSAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsK
LSAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57Ci0gICAgICAgIHdvcmtRdWV1ZSA9ICZX
b3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5TZWNJdGVtU2hpbSIpLmxlYWtSZWYo
KTsKLQotICAgIH0pOwotCi0gICAgcmV0dXJuICp3b3JrUXVldWU7Ci19Ci0KIHN0YXRpYyBPcHRp
b25hbDxTZWNJdGVtUmVzcG9uc2VEYXRhPiBzZW5kU2VjSXRlbVJlcXVlc3QoU2VjSXRlbVJlcXVl
c3REYXRhOjpUeXBlIHJlcXVlc3RUeXBlLCBDRkRpY3Rpb25hcnlSZWYgcXVlcnksIENGRGljdGlv
bmFyeVJlZiBhdHRyaWJ1dGVzVG9NYXRjaCA9IDApCiB7Ci0gICAgaWYgKCFnbG9iYWxOZXR3b3Jr
UHJvY2VzcygpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCiAgICAgT3B0aW9uYWw8
U2VjSXRlbVJlc3BvbnNlRGF0YT4gcmVzcG9uc2U7CiAKLSAgICBCaW5hcnlTZW1hcGhvcmUgc2Vt
YXBob3JlOworICAgIGNhbGxPbk1haW5SdW5Mb29wQW5kV2FpdChbJl0geworICAgICAgICBpZiAo
IWdsb2JhbE5ldHdvcmtQcm9jZXNzKCkpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICBnbG9i
YWxOZXR3b3JrUHJvY2VzcygpLT5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kV2l0aFJl
cGx5KE1lc3NhZ2VzOjpTZWNJdGVtU2hpbVByb3h5OjpTZWNJdGVtUmVxdWVzdChTZWNJdGVtUmVx
dWVzdERhdGEocmVxdWVzdFR5cGUsIHF1ZXJ5LCBhdHRyaWJ1dGVzVG9NYXRjaCkpLCAwLCB3b3Jr
UXVldWUoKSwgWyZyZXNwb25zZSwgJnNlbWFwaG9yZV0oYXV0byByZXBseSkgewotICAgICAgICBp
ZiAocmVwbHkpCi0gICAgICAgICAgICByZXNwb25zZSA9IFdURk1vdmUoc3RkOjpnZXQ8MD4oKnJl
cGx5KSk7Ci0KLSAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgpOworICAgICAgICBpZiAoIWdsb2Jh
bE5ldHdvcmtQcm9jZXNzKCktPnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1l
c3NhZ2VzOjpTZWNJdGVtU2hpbVByb3h5OjpTZWNJdGVtUmVxdWVzdChTZWNJdGVtUmVxdWVzdERh
dGEocmVxdWVzdFR5cGUsIHF1ZXJ5LCBhdHRyaWJ1dGVzVG9NYXRjaCkpLCBNZXNzYWdlczo6U2Vj
SXRlbVNoaW1Qcm94eTo6U2VjSXRlbVJlcXVlc3Q6OlJlcGx5KHJlc3BvbnNlKSwgMCkpCisgICAg
ICAgICAgICByZXR1cm47CiAgICAgfSk7CiAKLSAgICBzZW1hcGhvcmUud2FpdCgpOwotCiAgICAg
cmV0dXJuIHJlc3BvbnNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
U2VjSXRlbVNoaW1Qcm94eS5jcHAKaW5kZXggZDEyYmZmNjdhNWQ4OTE5NTBiYjYxNGRhYWQ4ODZk
MTk1ZWVlZWJkNC4uMDNjZDlmYWViZjdjMzlhMGE1ZTM5YmY3NWYwYmQyM2QzMGQ0ZDkwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcApA
QCAtNjAsNyArNjAsNyBAQCB2b2lkIFNlY0l0ZW1TaGltUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpCiB7CiB9CiAKLXZvaWQgU2VjSXRlbVNo
aW1Qcm94eTo6c2VjSXRlbVJlcXVlc3QoY29uc3QgU2VjSXRlbVJlcXVlc3REYXRhJiByZXF1ZXN0
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNlY0l0ZW1SZXNwb25zZURhdGEmJik+JiYgcmVzcG9u
c2UpCit2b2lkIFNlY0l0ZW1TaGltUHJveHk6OnNlY0l0ZW1SZXF1ZXN0KGNvbnN0IFNlY0l0ZW1S
ZXF1ZXN0RGF0YSYgcmVxdWVzdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTZWNJ
dGVtUmVzcG9uc2VEYXRhPiYmKT4mJiByZXNwb25zZSkKIHsKICAgICBzd2l0Y2ggKHJlcXVlc3Qu
dHlwZSgpKSB7CiAgICAgY2FzZSBTZWNJdGVtUmVxdWVzdERhdGE6OkludmFsaWQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuaAppbmRleCBlNzJhMTAy
YTBkMDQ0ODYxMzA1N2ZjNjNhNjM4MjAwYzM0ZTI3YzMwLi5kNDY4YWRiMjA5OTQ1YTZmZWEzMDJj
OWJmOThmODUyNTY0NzM4MTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvU2VjSXRlbVNoaW1Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9T
ZWNJdGVtU2hpbVByb3h5LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAKLSAg
ICB2b2lkIHNlY0l0ZW1SZXF1ZXN0KGNvbnN0IFNlY0l0ZW1SZXF1ZXN0RGF0YSYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU2VjSXRlbVJlc3BvbnNlRGF0YSYmKT4mJik7CisgICAgdm9pZCBzZWNJ
dGVtUmVxdWVzdChjb25zdCBTZWNJdGVtUmVxdWVzdERhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFNlY0l0ZW1SZXNwb25zZURhdGE+JiYpPiYmKTsKIAogICAgIFJlZjxXb3Jr
UXVldWU+IG1fcXVldWU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1NlY0l0ZW1TaGltUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5tZXNzYWdlcy5pbgppbmRleCAzMjQwZDhiNjVkZjkyYTJj
MmVlNWU1MDc2YTFmYWRmZWRmNWYwM2Y3Li42YWMxMTJkMWRjZThkM2IzYTZhY2JkNjQ4MGFiYjM2
YzNhYTJkNmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvU2VjSXRl
bVNoaW1Qcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
U2VjSXRlbVNoaW1Qcm94eS5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAogbWVzc2FnZXMg
LT4gU2VjSXRlbVNoaW1Qcm94eSB7CiAKICNpZiBFTkFCTEUoU0VDX0lURU1fU0hJTSkKLSAgICBT
ZWNJdGVtUmVxdWVzdChXZWJLaXQ6OlNlY0l0ZW1SZXF1ZXN0RGF0YSByZXF1ZXN0KSAtPiAoV2Vi
S2l0OjpTZWNJdGVtUmVzcG9uc2VEYXRhIHJlc3BvbnNlKSBTeW5jaHJvbm91cworICAgIFNlY0l0
ZW1SZXF1ZXN0KFdlYktpdDo6U2VjSXRlbVJlcXVlc3REYXRhIHJlcXVlc3QpIC0+IChPcHRpb25h
bDxXZWJLaXQ6OlNlY0l0ZW1SZXNwb25zZURhdGE+IHJlc3BvbnNlKSBTeW5jaHJvbm91cwogI2Vu
ZGlmCiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375162</attachid>
            <date>2019-07-30 10:47:21 -0700</date>
            <delta_ts>2019-07-30 12:54:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200249-20190730104720.patch</filename>
            <type>text/plain</type>
            <size>6153</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAzODY3NzNmZDNkZmExZWIy
YzY2MmJiNzEwYjY1MWZmODFlOWNiNjUuLmI0OWE0NDM2YmE3ZjU3M2M0OGE5ZDVjYzU0MTdlZjc2
NDI1M2Y4YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDctMzAgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbm9uLXRocmVhZCBzYWZlIHVz
ZSBvZiBXZWFrUHRyIHVuZGVyIHNlbmRTZWNJdGVtUmVxdWVzdCgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAyNDkKKworICAgICAgICBSZXZpZXdl
ZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFRoZSBmdW5jdGlvbiB3YXMgY2FsbGlu
ZyBnbG9iYWxOZXR3b3JrUHJvY2VzcygpIGZyb20gYSBiYWNrZ3JvdW5kIHRocmVhZC4gVGhpcyBp
cyBub3Qgc2FmZSBiZWNhdXNlCisgICAgICAgIGdsb2JhbE5ldHdvcmtQcm9jZXNzKCkgZGVmZXJl
bmNlcyBhIFdlYWtQdHI8TmV0d29ya1Byb2Nlc3M+IGludGVybmFsbHkgYW5kIHRoZSBOZXR3b3Jr
UHJvY2VzcyBvYmplY3QKKyAgICAgICAgZ2V0cyBkZXN0cm95ZWQgb24gdGhlIG1haW4gdGhyZWFk
LgorCisgICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OnNlbmRTZWNJdGVtUmVxdWVzdCk6CisKIDIwMTktMDctMjQgIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtTT1VQXSBNb3ZlIFNvdXBOZXR3
b3JrU2Vzc2lvbiBvd25lcnNoaXAgZnJvbSBOZXR3b3JrU3RvcmFnZVNlc3Npb24gdG8gTmV0d29y
a1Nlc3Npb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TZWNJdGVtU2hp
bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCmluZGV4IDE0
NzA1NGYzN2EzMWI5YjI0NmFkYTdmZjM0YjA2ZGM5OTYwYTYzZTYuLjM4NTk2NGY5YTRjNzY4OTJj
NDZhNWRmYmQzODA4YTMxMTc2YTM4ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9TZWNJdGVtU2hpbS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NlY0l0
ZW1TaGltLmNwcApAQCAtNjQsMzIgKzY0LDMwIEBAIHN0YXRpYyBXZWFrUHRyPE5ldHdvcmtQcm9j
ZXNzPiYgZ2xvYmFsTmV0d29ya1Byb2Nlc3MoKQogICAgIHJldHVybiBuZXR3b3JrUHJvY2Vzcy5n
ZXQoKTsKIH0KIAotc3RhdGljIFdvcmtRdWV1ZSYgd29ya1F1ZXVlKCkKLXsKLSAgICBzdGF0aWMg
V29ya1F1ZXVlKiB3b3JrUXVldWU7Ci0gICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9r
ZW47Ci0gICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeewotICAgICAgICB3b3JrUXVldWUg
PSAmV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuU2VjSXRlbVNoaW0iKS5sZWFr
UmVmKCk7Ci0KLSAgICB9KTsKLQotICAgIHJldHVybiAqd29ya1F1ZXVlOwotfQotCiBzdGF0aWMg
T3B0aW9uYWw8U2VjSXRlbVJlc3BvbnNlRGF0YT4gc2VuZFNlY0l0ZW1SZXF1ZXN0KFNlY0l0ZW1S
ZXF1ZXN0RGF0YTo6VHlwZSByZXF1ZXN0VHlwZSwgQ0ZEaWN0aW9uYXJ5UmVmIHF1ZXJ5LCBDRkRp
Y3Rpb25hcnlSZWYgYXR0cmlidXRlc1RvTWF0Y2ggPSAwKQogewotICAgIGlmICghZ2xvYmFsTmV0
d29ya1Byb2Nlc3MoKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQogICAgIE9wdGlv
bmFsPFNlY0l0ZW1SZXNwb25zZURhdGE+IHJlc3BvbnNlOwogCisgICAgaWYgKFJ1bkxvb3A6Omlz
TWFpbigpKSB7CisgICAgICAgIGlmICghZ2xvYmFsTmV0d29ya1Byb2Nlc3MoKS0+cGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OlNlY0l0ZW1TaGltUHJveHk6OlNl
Y0l0ZW1SZXF1ZXN0U3luYyhTZWNJdGVtUmVxdWVzdERhdGEocmVxdWVzdFR5cGUsIHF1ZXJ5LCBh
dHRyaWJ1dGVzVG9NYXRjaCkpLCBNZXNzYWdlczo6U2VjSXRlbVNoaW1Qcm94eTo6U2VjSXRlbVJl
cXVlc3RTeW5jOjpSZXBseShyZXNwb25zZSksIDApKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlOworICAgIH0KKwogICAgIEJpbmFyeVNl
bWFwaG9yZSBzZW1hcGhvcmU7CiAKLSAgICBnbG9iYWxOZXR3b3JrUHJvY2VzcygpLT5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kV2l0aFJlcGx5KE1lc3NhZ2VzOjpTZWNJdGVtU2hpbVBy
b3h5OjpTZWNJdGVtUmVxdWVzdChTZWNJdGVtUmVxdWVzdERhdGEocmVxdWVzdFR5cGUsIHF1ZXJ5
LCBhdHRyaWJ1dGVzVG9NYXRjaCkpLCAwLCB3b3JrUXVldWUoKSwgWyZyZXNwb25zZSwgJnNlbWFw
aG9yZV0oYXV0byByZXBseSkgewotICAgICAgICBpZiAocmVwbHkpCi0gICAgICAgICAgICByZXNw
b25zZSA9IFdURk1vdmUoc3RkOjpnZXQ8MD4oKnJlcGx5KSk7CisgICAgUnVuTG9vcDo6bWFpbigp
LmRpc3BhdGNoKFsmXSB7CisgICAgICAgIGlmICghZ2xvYmFsTmV0d29ya1Byb2Nlc3MoKSkgewor
ICAgICAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgZ2xvYmFsTmV0d29ya1Byb2Nlc3MoKS0+cGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpTZWNJdGVtU2hpbVByb3h5
OjpTZWNJdGVtUmVxdWVzdChTZWNJdGVtUmVxdWVzdERhdGEocmVxdWVzdFR5cGUsIHF1ZXJ5LCBh
dHRyaWJ1dGVzVG9NYXRjaCkpLCBbJl0oYXV0byByZXBseSkgeworICAgICAgICAgICAgaWYgKHJl
cGx5KQorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gV1RGTW92ZSgqcmVwbHkpOwogCi0gICAg
ICAgIHNlbWFwaG9yZS5zaWduYWwoKTsKKyAgICAgICAgICAgIHNlbWFwaG9yZS5zaWduYWwoKTsK
KyAgICAgICAgfSk7CiAgICAgfSk7CiAKICAgICBzZW1hcGhvcmUud2FpdCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwCmluZGV4IGQxMmJm
ZjY3YTVkODkxOTUwYmI2MTRkYWFkODg2ZDE5NWVlZWViZDQuLjUzOTI4NTA5MDlhMWE1YTJkZjli
NDNjY2JmNWU1OGQyNDdhYjI4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvU2VjSXRlbVNoaW1Qcm94eS5jcHAKQEAgLTU2LDExICs1Niw3IEBAIHZvaWQgU2VjSXRlbVNo
aW1Qcm94eTo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KQogICAgIGNvbm5lY3Rpb24uYWRkV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpT
ZWNJdGVtU2hpbVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcXVldWUuZ2V0KCksIHRo
aXMpOwogfQogCi12b2lkIFNlY0l0ZW1TaGltUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpCi17Ci19Ci0KLXZvaWQgU2VjSXRlbVNoaW1Qcm94
eTo6c2VjSXRlbVJlcXVlc3QoY29uc3QgU2VjSXRlbVJlcXVlc3REYXRhJiByZXF1ZXN0LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFNlY0l0ZW1SZXNwb25zZURhdGEmJik+JiYgcmVzcG9uc2UpCit2
b2lkIFNlY0l0ZW1TaGltUHJveHk6OnNlY0l0ZW1SZXF1ZXN0KGNvbnN0IFNlY0l0ZW1SZXF1ZXN0
RGF0YSYgcmVxdWVzdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTZWNJdGVtUmVz
cG9uc2VEYXRhPiYmKT4mJiByZXNwb25zZSkKIHsKICAgICBzd2l0Y2ggKHJlcXVlc3QudHlwZSgp
KSB7CiAgICAgY2FzZSBTZWNJdGVtUmVxdWVzdERhdGE6OkludmFsaWQ6CkBAIC05Nyw2ICs5Mywx
MSBAQCB2b2lkIFNlY0l0ZW1TaGltUHJveHk6OnNlY0l0ZW1SZXF1ZXN0KGNvbnN0IFNlY0l0ZW1S
ZXF1ZXN0RGF0YSYgcmVxdWVzdCwgQ29tcGxldAogICAgIH0KIH0KIAordm9pZCBTZWNJdGVtU2hp
bVByb3h5OjpzZWNJdGVtUmVxdWVzdFN5bmMoY29uc3QgU2VjSXRlbVJlcXVlc3REYXRhJiBkYXRh
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFNlY0l0ZW1SZXNwb25zZURhdGE+JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHNlY0l0ZW1SZXF1ZXN0KGRhdGEsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNl
bmRpZiAvLyBFTkFCTEUoU0VDX0lURU1fU0hJTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5oCmluZGV4IGU3MmExMDJhMGQwNDQ4NjEzMDU3ZmM2M2E2
MzgyMDBjMzRlMjdjMzAuLmZjNTI4MDQ1MDk0MzljOWMxNDIzYmMxZDAyYzIwOGNhZjhjZjlmNzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuaApA
QCAtNDgsNyArNDgsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZWNl
aXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAotICAgIHZvaWQgc2VjSXRlbVJlcXVl
c3QoY29uc3QgU2VjSXRlbVJlcXVlc3REYXRhJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTZWNJ
dGVtUmVzcG9uc2VEYXRhJiYpPiYmKTsKKyAgICB2b2lkIHNlY0l0ZW1SZXF1ZXN0KGNvbnN0IFNl
Y0l0ZW1SZXF1ZXN0RGF0YSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U2VjSXRl
bVJlc3BvbnNlRGF0YT4mJik+JiYpOworICAgIHZvaWQgc2VjSXRlbVJlcXVlc3RTeW5jKGNvbnN0
IFNlY0l0ZW1SZXF1ZXN0RGF0YSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U2Vj
SXRlbVJlc3BvbnNlRGF0YT4mJik+JiYpOwogCiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Q
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hp
bVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDMyNDBkOGI2NWRmOTJhMmMyZWU1ZTUwNzZhMWZhZGZl
ZGY1ZjAzZjcuLjBmYjU3MDk4YzQ3NWI0ZGFkY2VhMmY3YmRjZGUxYzFiODM5Y2M5Y2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5
Lm1lc3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw4IEBACiBtZXNzYWdlcyAtPiBTZWNJdGVtU2hpbVBy
b3h5IHsKIAogI2lmIEVOQUJMRShTRUNfSVRFTV9TSElNKQotICAgIFNlY0l0ZW1SZXF1ZXN0KFdl
YktpdDo6U2VjSXRlbVJlcXVlc3REYXRhIHJlcXVlc3QpIC0+IChXZWJLaXQ6OlNlY0l0ZW1SZXNw
b25zZURhdGEgcmVzcG9uc2UpIFN5bmNocm9ub3VzCisgICAgU2VjSXRlbVJlcXVlc3RTeW5jKFdl
YktpdDo6U2VjSXRlbVJlcXVlc3REYXRhIHJlcXVlc3QpIC0+IChPcHRpb25hbDxXZWJLaXQ6OlNl
Y0l0ZW1SZXNwb25zZURhdGE+IHJlc3BvbnNlKSBTeW5jaHJvbm91cworICAgIFNlY0l0ZW1SZXF1
ZXN0KFdlYktpdDo6U2VjSXRlbVJlcXVlc3REYXRhIHJlcXVlc3QpIC0+IChPcHRpb25hbDxXZWJL
aXQ6OlNlY0l0ZW1SZXNwb25zZURhdGE+IHJlc3BvbnNlKSBBc3luYwogI2VuZGlmCiAKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>