<?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>189684</bug_id>
          
          <creation_ts>2018-09-17 17:06:54 -0700</creation_ts>
          <short_desc>Clear persistent storage between tests for resourceLoadStatistics</short_desc>
          <delta_ts>2018-10-01 12:26:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Woodrow Wang">wwang153</reporter>
          <assigned_to name="Woodrow Wang">wwang153</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>realdawei</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1460422</commentid>
    <comment_count>0</comment_count>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-17 17:06:54 -0700</bug_when>
    <thetext>Currently, in WKWebsiteDataStoreStatisticsResetToConsistentState, only the resource load statistics&apos; maps in the UI process and web content processes are cleared, but the persistent storage is not. This patch deletes the plist on disk between tests when resetting to a consistent state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460424</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-17 17:07:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/44539993&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460425</commentid>
    <comment_count>2</comment_count>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-17 17:08:37 -0700</bug_when>
    <thetext>This is a speculative fix for the flakiness seen here: https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=http%2Ftests%2FwebAPIStatistics%2Fnavigator-functions-accessed-data-collection.html%20http%2Ftests%2FwebAPIStatistics%2Fcanvas-read-and-write-data-collection.html%20http%2Ftests%2FwebAPIStatistics%2Ffont-load-data-collection.html%20http%2Ftests%2FwebAPIStatistics%2Fscreen-functions-accessed-data-collection.html 

Some of the data from previous tests (canvas data collection) leaks into subsequent tests (font loading data collection). This patch deletes the plist between tests, hopefully to rule out that as a source of flakiness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460426</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-17 17:08:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/44540099&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460432</commentid>
    <comment_count>4</comment_count>
      <attachid>349977</attachid>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-17 17:20:32 -0700</bug_when>
    <thetext>Created attachment 349977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460434</commentid>
    <comment_count>5</comment_count>
      <attachid>349977</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-09-17 17:26:55 -0700</bug_when>
    <thetext>Comment on attachment 349977
Patch

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

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:778
&gt; +            m_memoryStore-&gt;clear([callbackAggregator = callbackAggregator.copyRef()] { });

You need to clear the memory store before you grandfather, otherwise you&apos;ll clear the grandfathered entries.

Further, you should grandfather in the completion handler of m_memoryStore-&gt;clear() to not run the risk of a race. This will remove the need for the callback aggregator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460441</commentid>
    <comment_count>6</comment_count>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-17 17:40:13 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #5)
&gt; Comment on attachment 349977 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=349977&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:778
&gt; &gt; +            m_memoryStore-&gt;clear([callbackAggregator = callbackAggregator.copyRef()] { });
&gt; 
&gt; You need to clear the memory store before you grandfather, otherwise you&apos;ll
&gt; clear the grandfathered entries.
I&apos;ll fix that. 
&gt; 
&gt; Further, you should grandfather in the completion handler of
&gt; m_memoryStore-&gt;clear() to not run the risk of a race. This will remove the
&gt; need for the callback aggregator.
Great point, I&apos;ll update this shortly!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460456</commentid>
    <comment_count>7</comment_count>
      <attachid>349986</attachid>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-17 18:18:00 -0700</bug_when>
    <thetext>Created attachment 349986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460600</commentid>
    <comment_count>8</comment_count>
      <attachid>349986</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-18 08:54:29 -0700</bug_when>
    <thetext>Comment on attachment 349986
Patch

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

r=me with fixes.

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:775
&gt; +            m_memoryStore-&gt;clear([this, shouldGrandfather, callCompletionHandlerOnMainThread = WTFMove(callCompletionHandlerOnMainThread)] () mutable {

this, protectedThis = makeRef(*this)

I think you need to protect this here since there is nothing that guarantees that |this| stays alive AFAICT.

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:777
&gt; +                    m_memoryStore-&gt;grandfatherExistingWebsiteData(WTFMove(callCompletionHandlerOnMainThread));

You likely need to null-check m_memoryStore here. It would have been cleared in between.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460624</commentid>
    <comment_count>9</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-09-18 10:00:45 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; Comment on attachment 349986 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=349986&amp;action=review
&gt; 
&gt; r=me with fixes.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:775
&gt; &gt; +            m_memoryStore-&gt;clear([this, shouldGrandfather, callCompletionHandlerOnMainThread = WTFMove(callCompletionHandlerOnMainThread)] () mutable {
&gt; 
&gt; this, protectedThis = makeRef(*this)
&gt; 
&gt; I think you need to protect this here since there is nothing that guarantees
&gt; that |this| stays alive AFAICT.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:777
&gt; &gt; +                    m_memoryStore-&gt;grandfatherExistingWebsiteData(WTFMove(callCompletionHandlerOnMainThread));
&gt; 
&gt; You likely need to null-check m_memoryStore here. It would have been cleared
&gt; in between.

Could you also ASSERT m_memoryStore, please? I&apos;d like to know if we&apos;re failing to grandfather website data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460626</commentid>
    <comment_count>10</comment_count>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-18 10:07:56 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; Comment on attachment 349986 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=349986&amp;action=review
&gt; 
&gt; r=me with fixes.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:775
&gt; &gt; +            m_memoryStore-&gt;clear([this, shouldGrandfather, callCompletionHandlerOnMainThread = WTFMove(callCompletionHandlerOnMainThread)] () mutable {
&gt; 
&gt; this, protectedThis = makeRef(*this)
&gt; 
&gt; I think you need to protect this here since there is nothing that guarantees
&gt; that |this| stays alive AFAICT.
I&apos;ll add this. 
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:777
&gt; &gt; +                    m_memoryStore-&gt;grandfatherExistingWebsiteData(WTFMove(callCompletionHandlerOnMainThread));
&gt; 
&gt; You likely need to null-check m_memoryStore here. It would have been cleared
&gt; in between.
Good call, I&apos;ll also ASSERT m_memoryStore so we will know if grandfathering has happened as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460640</commentid>
    <comment_count>11</comment_count>
      <attachid>350032</attachid>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-18 10:30:07 -0700</bug_when>
    <thetext>Created attachment 350032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460694</commentid>
    <comment_count>12</comment_count>
      <attachid>350032</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-18 13:13:17 -0700</bug_when>
    <thetext>Comment on attachment 350032
Patch

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

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:777
&gt; +                    ASSERT(m_memoryStore);

I do not believe this assertion is correct. There is no such guarantee. If applicationWillTerminate() gets called, we&apos;ll destroy m_memoryStore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460695</commentid>
    <comment_count>13</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-09-18 13:17:30 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #12)
&gt; Comment on attachment 350032 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=350032&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:777
&gt; &gt; +                    ASSERT(m_memoryStore);
&gt; 
&gt; I do not believe this assertion is correct. There is no such guarantee. If
&gt; applicationWillTerminate() gets called, we&apos;ll destroy m_memoryStore.

Are you saying we&apos;ll hit this assertion in the TestRunner on debug bots? How would you rather check that we don&apos;t have regular cases where the memory store is null when we&apos;re supposed to grandfather?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460696</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-18 13:22:42 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #13)
&gt; (In reply to Chris Dumez from comment #12)
&gt; &gt; Comment on attachment 350032 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=350032&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:777
&gt; &gt; &gt; +                    ASSERT(m_memoryStore);
&gt; &gt; 
&gt; &gt; I do not believe this assertion is correct. There is no such guarantee. If
&gt; &gt; applicationWillTerminate() gets called, we&apos;ll destroy m_memoryStore.
&gt; 
&gt; Are you saying we&apos;ll hit this assertion in the TestRunner on debug bots? How
&gt; would you rather check that we don&apos;t have regular cases where the memory
&gt; store is null when we&apos;re supposed to grandfather?

Probably not on the bots but people will be able to hit it on their device is some code calls scheduleClearInMemoryAndPersistent(ShouldGrandfather::Yes) and then exit the application quickly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460698</commentid>
    <comment_count>15</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-09-18 13:24:35 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #14)
&gt; (In reply to John Wilander from comment #13)
&gt; &gt; (In reply to Chris Dumez from comment #12)
&gt; &gt; &gt; Comment on attachment 350032 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=350032&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:777
&gt; &gt; &gt; &gt; +                    ASSERT(m_memoryStore);
&gt; &gt; &gt; 
&gt; &gt; &gt; I do not believe this assertion is correct. There is no such guarantee. If
&gt; &gt; &gt; applicationWillTerminate() gets called, we&apos;ll destroy m_memoryStore.
&gt; &gt; 
&gt; &gt; Are you saying we&apos;ll hit this assertion in the TestRunner on debug bots? How
&gt; &gt; would you rather check that we don&apos;t have regular cases where the memory
&gt; &gt; store is null when we&apos;re supposed to grandfather?
&gt; 
&gt; Probably not on the bots but people will be able to hit it on their device
&gt; is some code calls
&gt; scheduleClearInMemoryAndPersistent(ShouldGrandfather::Yes) and then exit the
&gt; application quickly.

Are people using debug builds that way? I&apos;ve never come across that we take application quit into consideration when we add a correctness debug ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460700</commentid>
    <comment_count>16</comment_count>
      <attachid>350032</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-18 13:25:19 -0700</bug_when>
    <thetext>Comment on attachment 350032
Patch

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

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:-793
&gt; -        if (shouldGrandfather == ShouldGrandfather::Yes &amp;&amp; m_memoryStore)

Also note that the previous code was doing a null check as expected.

&gt;&gt;&gt;&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:777
&gt;&gt;&gt;&gt; +                    ASSERT(m_memoryStore);
&gt;&gt;&gt; 
&gt;&gt;&gt; I do not believe this assertion is correct. There is no such guarantee. If applicationWillTerminate() gets called, we&apos;ll destroy m_memoryStore.
&gt;&gt; 
&gt;&gt; Are you saying we&apos;ll hit this assertion in the TestRunner on debug bots? How would you rather check that we don&apos;t have regular cases where the memory store is null when we&apos;re supposed to grandfather?
&gt; 
&gt; Probably not on the bots but people will be able to hit it on their device is some code calls scheduleClearInMemoryAndPersistent(ShouldGrandfather::Yes) and then exit the application quickly.

Also note that this assertion would anyway not cover the case where m_memoryStore is null before we call clear...

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:781
&gt; +                    callCompletionHandlerOnMainThread();

i.e. this code path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460704</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-18 13:30:05 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #15)
&gt; (In reply to Chris Dumez from comment #14)
&gt; &gt; (In reply to John Wilander from comment #13)
&gt; &gt; &gt; (In reply to Chris Dumez from comment #12)
&gt; &gt; &gt; &gt; Comment on attachment 350032 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=350032&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:777
&gt; &gt; &gt; &gt; &gt; +                    ASSERT(m_memoryStore);
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I do not believe this assertion is correct. There is no such guarantee. If
&gt; &gt; &gt; &gt; applicationWillTerminate() gets called, we&apos;ll destroy m_memoryStore.
&gt; &gt; &gt; 
&gt; &gt; &gt; Are you saying we&apos;ll hit this assertion in the TestRunner on debug bots? How
&gt; &gt; &gt; would you rather check that we don&apos;t have regular cases where the memory
&gt; &gt; &gt; store is null when we&apos;re supposed to grandfather?
&gt; &gt; 
&gt; &gt; Probably not on the bots but people will be able to hit it on their device
&gt; &gt; is some code calls
&gt; &gt; scheduleClearInMemoryAndPersistent(ShouldGrandfather::Yes) and then exit the
&gt; &gt; application quickly.
&gt; 
&gt; Are people using debug builds that way? I&apos;ve never come across that we take
&gt; application quit into consideration when we add a correctness debug ASSERT.

We have to worry about application termination here because:
void WebResourceLoadStatisticsStore::applicationWillTerminate()
{
    flushAndDestroyPersistentStore();
}

We do a best effort at flushing things to disk before exiting the app, and then we destroy the objects.

It is not OK to add an assertion that can hit in valid use cases, even if those cases are rare.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460751</commentid>
    <comment_count>18</comment_count>
      <attachid>350059</attachid>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-18 14:34:53 -0700</bug_when>
    <thetext>Created attachment 350059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460754</commentid>
    <comment_count>19</comment_count>
      <attachid>350059</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-18 14:38:21 -0700</bug_when>
    <thetext>Comment on attachment 350059
Patch

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

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:780
&gt; +                        RELEASE_LOG(ResourceLoadStatistics, &quot;WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent m_memoryStore is null when trying to grandfather data.&quot;);

Why log here but not..

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:786
&gt;              callCompletionHandlerOnMainThread();

.. here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460802</commentid>
    <comment_count>20</comment_count>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-18 16:19:16 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #19)
&gt; Comment on attachment 350059 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=350059&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:780
&gt; &gt; +                        RELEASE_LOG(ResourceLoadStatistics, &quot;WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent m_memoryStore is null when trying to grandfather data.&quot;);
&gt; 
&gt; Why log here but not..
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:786
&gt; &gt;              callCompletionHandlerOnMainThread();
&gt; 
&gt; .. here?

To my understanding, the existing log is useful as we expect when grandfathering is requested that the memory store is non-null. The latter site is where we have no memory store to clear at all in the function, which seems like possible behavior. If this is unexpected, what should the log statement be?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460803</commentid>
    <comment_count>21</comment_count>
      <attachid>350059</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-18 16:33:19 -0700</bug_when>
    <thetext>Comment on attachment 350059
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:780
&gt;&gt;&gt; +                        RELEASE_LOG(ResourceLoadStatistics, &quot;WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent m_memoryStore is null when trying to grandfather data.&quot;);
&gt;&gt; 
&gt;&gt; Why log here but not..
&gt; 
&gt; To my understanding, the existing log is useful as we expect when grandfathering is requested that the memory store is non-null. The latter site is where we have no memory store to clear at all in the function, which seems like possible behavior. If this is unexpected, what should the log statement be?

You could do the exact same login gin the else case below if (shouldGrandfather == ShouldGrandfather::Yes). There is no difference really. It is just a matter a timing: was the memory store destroyed before or after the call to clear() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460817</commentid>
    <comment_count>22</comment_count>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-18 17:13:01 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #21)
&gt; Comment on attachment 350059 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=350059&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:780
&gt; &gt;&gt;&gt; +                        RELEASE_LOG(ResourceLoadStatistics, &quot;WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent m_memoryStore is null when trying to grandfather data.&quot;);
&gt; &gt;&gt; 
&gt; &gt;&gt; Why log here but not..
&gt; &gt; 
&gt; &gt; To my understanding, the existing log is useful as we expect when grandfathering is requested that the memory store is non-null. The latter site is where we have no memory store to clear at all in the function, which seems like possible behavior. If this is unexpected, what should the log statement be?
&gt; 
&gt; You could do the exact same login gin the else case below if
&gt; (shouldGrandfather == ShouldGrandfather::Yes). There is no difference
&gt; really. It is just a matter a timing: was the memory store destroyed before
&gt; or after the call to clear() ?
I see, I can add the extra logging statement with slightly different wording to differentiate the two cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460820</commentid>
    <comment_count>23</comment_count>
      <attachid>350082</attachid>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-18 17:39:13 -0700</bug_when>
    <thetext>Created attachment 350082
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460981</commentid>
    <comment_count>24</comment_count>
      <attachid>350082</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-19 09:10:00 -0700</bug_when>
    <thetext>Comment on attachment 350082
Patch

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

Please see if you can refactor this code a bit so that it is not as big and not as error prone. You may also consider using CompletionHandlerCallingScope to make sure the completion handler is always called.

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:780
&gt; +                        RELEASE_LOG(ResourceLoadStatistics, &quot;WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent After being cleared, m_memoryStore is null when trying to grandfather data.&quot;);

The completion is not called in this case, which is wrong.

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:785
&gt; +        } else

The else case is multi-line so you need curly brackets.

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:788
&gt; +            else

This is wrong, you now fail to call the completion handler in the if case. This else should be dropped so that callCompletionHandlerOnMainThread() is always called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461014</commentid>
    <comment_count>25</comment_count>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-19 10:14:51 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #24)
&gt; Comment on attachment 350082 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=350082&amp;action=review
&gt; 
&gt; Please see if you can refactor this code a bit so that it is not as big and
&gt; not as error prone. You may also consider using
&gt; CompletionHandlerCallingScope to make sure the completion handler is always
&gt; called.
I&apos;ll refactor the code to use CompletionHandlerCallingScope to ensure the completion handler is always called. 
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:780
&gt; &gt; +                        RELEASE_LOG(ResourceLoadStatistics, &quot;WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent After being cleared, m_memoryStore is null when trying to grandfather data.&quot;);
&gt; 
&gt; The completion is not called in this case, which is wrong.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:785
&gt; &gt; +        } else
&gt; 
&gt; The else case is multi-line so you need curly brackets.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:788
&gt; &gt; +            else
&gt; 
&gt; This is wrong, you now fail to call the completion handler in the if case.
&gt; This else should be dropped so that callCompletionHandlerOnMainThread() is
&gt; always called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461018</commentid>
    <comment_count>26</comment_count>
      <attachid>350130</attachid>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-19 10:18:22 -0700</bug_when>
    <thetext>Created attachment 350130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461088</commentid>
    <comment_count>27</comment_count>
      <attachid>350130</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-19 12:58:39 -0700</bug_when>
    <thetext>Comment on attachment 350130
Patch

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

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:769
&gt;          CompletionHandler&lt;void()&gt; callCompletionHandlerOnMainThread = [completionHandler = WTFMove(completionHandler)]() mutable {

We do not need this local variable anymore, we could just inline the lambda when constructing the CompletionHandlerCallingScope. LGTM otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461101</commentid>
    <comment_count>28</comment_count>
      <attachid>350147</attachid>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-19 13:27:42 -0700</bug_when>
    <thetext>Created attachment 350147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461107</commentid>
    <comment_count>29</comment_count>
      <attachid>350147</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-19 13:41:33 -0700</bug_when>
    <thetext>Comment on attachment 350147
Patch

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

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:772
&gt; +        CompletionHandlerCallingScope completionHandlerCaller(WTFMove(callCompletionHandlerOnMainThread));

You still did not inline the lambda in here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461127</commentid>
    <comment_count>30</comment_count>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-19 14:26:14 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #29)
&gt; Comment on attachment 350147 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=350147&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:772
&gt; &gt; +        CompletionHandlerCallingScope completionHandlerCaller(WTFMove(callCompletionHandlerOnMainThread));
&gt; 
&gt; You still did not inline the lambda in here.
Oops, I&apos;ll do so right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461137</commentid>
    <comment_count>31</comment_count>
      <attachid>350151</attachid>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-19 15:08:17 -0700</bug_when>
    <thetext>Created attachment 350151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461138</commentid>
    <comment_count>32</comment_count>
      <attachid>350151</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-19 15:11:31 -0700</bug_when>
    <thetext>Comment on attachment 350151
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461142</commentid>
    <comment_count>33</comment_count>
      <attachid>350151</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-19 15:30:09 -0700</bug_when>
    <thetext>Comment on attachment 350151
Patch

Rejecting attachment 350151 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 350151, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebKit/ChangeLog contains OOPS!.

Full output: https://webkit-queues.webkit.org/results/9274508</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461156</commentid>
    <comment_count>34</comment_count>
      <attachid>350151</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-19 15:57:30 -0700</bug_when>
    <thetext>Comment on attachment 350151
Patch

Clearing flags on attachment: 350151

Committed r236229: &lt;https://trac.webkit.org/changeset/236229&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461185</commentid>
    <comment_count>35</comment_count>
    <who name="Dawei Fenton (:realdawei)">realdawei</who>
    <bug_when>2018-09-19 17:04:57 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #34)
&gt; Comment on attachment 350151 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 350151
&gt; 
&gt; Committed r236229: &lt;https://trac.webkit.org/changeset/236229&gt;

Seeing API Timeouts after on Mac WK1 after this revision

sample output:
https://build.webkit.org/builders/Apple%20High%20Sierra%20Release%20WK1%20(Tests)/builds/8069/steps/run-api-tests/logs/stdio
Test suite failed

Timeout

    TestWebKitAPI.ResourceLoadStatistics.GrandfatherCallback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461187</commentid>
    <comment_count>36</comment_count>
    <who name="Dawei Fenton (:realdawei)">realdawei</who>
    <bug_when>2018-09-19 17:08:27 -0700</bug_when>
    <thetext>(In reply to Dawei Fenton (:realdawei) from comment #35)
&gt; (In reply to WebKit Commit Bot from comment #34)
&gt; &gt; Comment on attachment 350151 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 350151
&gt; &gt; 
&gt; &gt; Committed r236229: &lt;https://trac.webkit.org/changeset/236229&gt;
&gt; 
&gt; Seeing API Timeouts on Mac WK1 after this revision
&gt; 
&gt; sample output:
&gt; https://build.webkit.org/builders/
&gt; Apple%20High%20Sierra%20Release%20WK1%20(Tests)/builds/8069/steps/run-api-
&gt; tests/logs/stdio
&gt; Test suite failed
&gt; 
&gt; Timeout
&gt; 
&gt;     TestWebKitAPI.ResourceLoadStatistics.GrandfatherCallback


Also timing out on iOS
https://build.webkit.org/builders/Apple%20iOS%2011%20Simulator%20Release%20WK2%20(Tests)/builds/7505/steps/run-api-tests/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461199</commentid>
    <comment_count>37</comment_count>
    <who name="Dawei Fenton (:realdawei)">realdawei</who>
    <bug_when>2018-09-19 17:20:14 -0700</bug_when>
    <thetext>Reverted r236229 for reason:

caused API timouts on mac and ios

Committed r236233: &lt;https://trac.webkit.org/changeset/236233&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461594</commentid>
    <comment_count>38</comment_count>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-20 16:37:55 -0700</bug_when>
    <thetext>(In reply to Dawei Fenton (:realdawei) from comment #37)
&gt; Reverted r236229 for reason:
&gt; 
&gt; caused API timouts on mac and ios
&gt; 
&gt; Committed r236233: &lt;https://trac.webkit.org/changeset/236233&gt;

Submitting another patch with a fix for the timeout on the ResourceLoadStatistics::GrandfatherCallback test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461596</commentid>
    <comment_count>39</comment_count>
      <attachid>350279</attachid>
    <who name="Woodrow Wang">wwang153</who>
    <bug_when>2018-09-20 16:43:29 -0700</bug_when>
    <thetext>Created attachment 350279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461863</commentid>
    <comment_count>40</comment_count>
      <attachid>350279</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-21 08:50:58 -0700</bug_when>
    <thetext>Comment on attachment 350279
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461876</commentid>
    <comment_count>41</comment_count>
      <attachid>350279</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-21 09:17:26 -0700</bug_when>
    <thetext>Comment on attachment 350279
Patch

Clearing flags on attachment: 350279

Committed r236320: &lt;https://trac.webkit.org/changeset/236320&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465165</commentid>
    <comment_count>42</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-10-01 12:26:48 -0700</bug_when>
    <thetext>Moving to resolved based on the landed patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349977</attachid>
            <date>2018-09-17 17:20:32 -0700</date>
            <delta_ts>2018-09-17 18:17:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189684-20180917172030.patch</filename>
            <type>text/plain</type>
            <size>4839</size>
            <attacher name="Woodrow Wang">wwang153</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM0NTIxMmYzZGNmNmM0ZGZj
Y2VlMjE4YWIwNWY4ZmMzYzM0ODg5ZmIuLmI3Mjk3NTQ0MDAwODM1NGE1NzYyMGY5Y2VhNGExMmI2
YjZhMDllMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTgtMDktMTcgIFdvb2Ryb3cg
V2FuZyAgPHdvb2Ryb3dfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYXIgcGVyc2lzdGVu
dCBzdG9yYWdlIGJldHdlZW4gdGVzdHMgZm9yIHJlc291cmNlTG9hZFN0YXRpc3RpY3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTY4NAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDQ1NDAwOTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29u
c2lzdGVudFN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KToKKworICAgICAgICBS
ZW1vdmUgZnVuY3Rpb24gb25seSBjYWxsZWQgaW4gdGVzdGluZyBmb3IgcmVzZXR0aW5nIHN0YXRp
c3RpY3MgdG8gY29uc2lzdGVudAorICAgICAgICBzdGF0ZS4gCisgICAgICAgIAorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNjaGVkdWxlQ2xlYXJJbk1l
bW9yeSk6IERlbGV0ZWQuCisKIDIwMTgtMDktMTQgIFdvb2Ryb3cgV2FuZyAgPHdvb2Ryb3dfd2Fu
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgcGVuZGluZyByZXNvdXJjZSBsb2FkIHN0YXRp
c3RpY3MnIHdyaXRlcyBhZnRlciB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXggN2YyM2U5MGZmN2M2
ZTJjZTRkNTQ3OTJjNjRhMGI5NjIzZjJlZmU4My4uNmVmM2JmNjU2MDM1OGRjZDc3YTJmNTQyZjQz
NmI0NjM2NTliYjQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC00NzYsNyArNDc2LDcgQEAgdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGEKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3RhdGlzdGljc1N0b3Jl
LT5yZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNh
bGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7Ci0gICAgc3RhdGlzdGljc1N0b3JlLT5z
Y2hlZHVsZUNsZWFySW5NZW1vcnkoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVn
YXRvci5jb3B5UmVmKCldIHsgfSk7CisgICAgc3RhdGlzdGljc1N0b3JlLT5zY2hlZHVsZUNsZWFy
SW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpTaG91bGRHcmFuZGZhdGhlcjo6Tm8sIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFj
a0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwogfQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZVJlbW92ZUFsbEZldGNoQ2FjaGVzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYs
IHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVJlbW92ZUZldGNoQ2FjaGVSZW1vdmFs
RnVuY3Rpb24gY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCA2YzUwODlhZmViNWRl
M2Y0ODU5Y2UxNGQwNjMxZWJjYTA3MjQwYTRkLi4xMzhkODQwZjZiNTRmMTA5YTk3YzFjNDZjZTUx
NjFmZWQwZjZkOTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNp
bmNsdWRlICJXZWJzaXRlRGF0YUZldGNoT3B0aW9uLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFT
dG9yZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJl
YWRDb3BpZXIuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaD4KQEAgLTc1OSw0MSArNzYwLDIzIEBAIHZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzY2hlZHVsZUNvb2tpZUJsb2NraW5nU3Rh
dGVSZXNldCgpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnNjaGVkdWxlQ2xlYXJJbk1lbW9yeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBw
b3N0VGFzayhbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oKSBtdXRhYmxlIHsKLQotICAgICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+IGNh
bGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCA9IFtjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICAgICAgcG9zdFRh
c2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIH07Ci0KLSAgICAg
ICAgaWYgKCFtX21lbW9yeVN0b3JlKSB7Ci0gICAgICAgICAgICBjYWxsQ29tcGxldGlvbkhhbmRs
ZXJPbk1haW5UaHJlYWQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAg
ICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFdURk1vdmUoY2FsbENvbXBsZXRpb25IYW5kbGVyT25N
YWluVGhyZWFkKSk7Ci0gICAgfSk7Ci19Ci0KIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFNob3VsZEdyYW5kZmF0
aGVyIHNob3VsZEdyYW5kZmF0aGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBwb3N0
VGFzayhbdGhpcywgc2hvdWxkR3JhbmRmYXRoZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewotICAgICAgICBpZiAobV9tZW1vcnlT
dG9yZSkKLSAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFtdIHsgfSk7CiAgICAgICAg
IGlmIChtX3BlcnNpc3RlbnRTdG9yYWdlKQogICAgICAgICAgICAgbV9wZXJzaXN0ZW50U3RvcmFn
ZS0+Y2xlYXIoKTsKLSAgICAgICAgCiAgICAgICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4g
Y2FsbENvbXBsZXRpb25IYW5kbGVyT25NYWluVGhyZWFkID0gW2NvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBwb3N0
VGFza1JlcGx5KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgfTsKIAotICAg
ICAgICBpZiAoc2hvdWxkR3JhbmRmYXRoZXIgPT0gU2hvdWxkR3JhbmRmYXRoZXI6OlllcyAmJiBt
X21lbW9yeVN0b3JlKQotICAgICAgICAgICAgbV9tZW1vcnlTdG9yZS0+Z3JhbmRmYXRoZXJFeGlz
dGluZ1dlYnNpdGVEYXRhKFdURk1vdmUoY2FsbENvbXBsZXRpb25IYW5kbGVyT25NYWluVGhyZWFk
KSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNhbGxDb21wbGV0aW9uSGFuZGxlck9uTWFp
blRocmVhZCgpOworICAgICAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdn
cmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY2FsbENvbXBsZXRpb25IYW5kbGVyT25NYWluVGhyZWFk
KSk7CisKKyAgICAgICAgaWYgKG1fbWVtb3J5U3RvcmUpIHsKKyAgICAgICAgICAgIGlmIChzaG91
bGRHcmFuZGZhdGhlciA9PSBTaG91bGRHcmFuZGZhdGhlcjo6WWVzKQorICAgICAgICAgICAgICAg
IG1fbWVtb3J5U3RvcmUtPmdyYW5kZmF0aGVyRXhpc3RpbmdXZWJzaXRlRGF0YShbY2FsbGJhY2tB
Z2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKKyAgICAgICAg
ICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0Fn
Z3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOworICAgICAgICB9CiAgICAgfSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349986</attachid>
            <date>2018-09-17 18:18:00 -0700</date>
            <delta_ts>2018-09-21 09:25:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189684-20180917181759.patch</filename>
            <type>text/plain</type>
            <size>4888</size>
            <attacher name="Woodrow Wang">wwang153</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRiYmU2NDFiMGM3NmQzZGU4
YTNkYTQxNGIxYWEzNzVlYzY0NDQyN2EuLjVjZjYyNTA2NDQ0ZjI1ZDQyMzFmODc3NjlmODc4YTY1
ZDgzNmI3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTgtMDktMTcgIFdvb2Ryb3cg
V2FuZyAgPHdvb2Ryb3dfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYXIgcGVyc2lzdGVu
dCBzdG9yYWdlIGJldHdlZW4gdGVzdHMgZm9yIHJlc291cmNlTG9hZFN0YXRpc3RpY3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTY4NAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDQ1NDAwOTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29u
c2lzdGVudFN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KToKKworICAgICAgICBS
ZW1vdmUgZnVuY3Rpb24gb25seSBjYWxsZWQgaW4gdGVzdGluZyBmb3IgcmVzZXR0aW5nIHN0YXRp
c3RpY3MgdG8gY29uc2lzdGVudAorICAgICAgICBzdGF0ZS4gCisgICAgICAgIAorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNjaGVkdWxlQ2xlYXJJbk1l
bW9yeSk6IERlbGV0ZWQuCisKIDIwMTgtMDktMTQgIFdvb2Ryb3cgV2FuZyAgPHdvb2Ryb3dfd2Fu
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgcGVuZGluZyByZXNvdXJjZSBsb2FkIHN0YXRp
c3RpY3MnIHdyaXRlcyBhZnRlciB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXggN2YyM2U5MGZmN2M2
ZTJjZTRkNTQ3OTJjNjRhMGI5NjIzZjJlZmU4My4uNmVmM2JmNjU2MDM1OGRjZDc3YTJmNTQyZjQz
NmI0NjM2NTliYjQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC00NzYsNyArNDc2LDcgQEAgdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGEKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3RhdGlzdGljc1N0b3Jl
LT5yZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNh
bGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7Ci0gICAgc3RhdGlzdGljc1N0b3JlLT5z
Y2hlZHVsZUNsZWFySW5NZW1vcnkoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVn
YXRvci5jb3B5UmVmKCldIHsgfSk7CisgICAgc3RhdGlzdGljc1N0b3JlLT5zY2hlZHVsZUNsZWFy
SW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpTaG91bGRHcmFuZGZhdGhlcjo6Tm8sIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFj
a0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwogfQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZVJlbW92ZUFsbEZldGNoQ2FjaGVzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYs
IHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVJlbW92ZUZldGNoQ2FjaGVSZW1vdmFs
RnVuY3Rpb24gY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCA2YzUwODlhZmViNWRl
M2Y0ODU5Y2UxNGQwNjMxZWJjYTA3MjQwYTRkLi5hYjIxMTFlNjA0ODBmYmVjNjFhYjI4Mjk0ZWE4
ZmE5YTc3NjA3NzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNp
bmNsdWRlICJXZWJzaXRlRGF0YUZldGNoT3B0aW9uLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFT
dG9yZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJl
YWRDb3BpZXIuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaD4KQEAgLTc1OSw0MCArNzYwLDI1IEBAIHZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzY2hlZHVsZUNvb2tpZUJsb2NraW5nU3Rh
dGVSZXNldCgpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnNjaGVkdWxlQ2xlYXJJbk1lbW9yeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBw
b3N0VGFzayhbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oKSBtdXRhYmxlIHsKLQotICAgICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+IGNh
bGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCA9IFtjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICAgICAgcG9zdFRh
c2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIH07Ci0KLSAgICAg
ICAgaWYgKCFtX21lbW9yeVN0b3JlKSB7Ci0gICAgICAgICAgICBjYWxsQ29tcGxldGlvbkhhbmRs
ZXJPbk1haW5UaHJlYWQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAg
ICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFdURk1vdmUoY2FsbENvbXBsZXRpb25IYW5kbGVyT25N
YWluVGhyZWFkKSk7Ci0gICAgfSk7Ci19Ci0KIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFNob3VsZEdyYW5kZmF0
aGVyIHNob3VsZEdyYW5kZmF0aGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBwb3N0
VGFzayhbdGhpcywgc2hvdWxkR3JhbmRmYXRoZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewotICAgICAgICBpZiAobV9tZW1vcnlT
dG9yZSkKLSAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFtdIHsgfSk7CiAgICAgICAg
IGlmIChtX3BlcnNpc3RlbnRTdG9yYWdlKQogICAgICAgICAgICAgbV9wZXJzaXN0ZW50U3RvcmFn
ZS0+Y2xlYXIoKTsKLSAgICAgICAgCisKICAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiBjYWxsQ29tcGxldGlvbkhhbmRsZXJPbk1haW5UaHJlYWQgPSBbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIHBv
c3RUYXNrUmVwbHkoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICB9OwogCi0g
ICAgICAgIGlmIChzaG91bGRHcmFuZGZhdGhlciA9PSBTaG91bGRHcmFuZGZhdGhlcjo6WWVzICYm
IG1fbWVtb3J5U3RvcmUpCi0gICAgICAgICAgICBtX21lbW9yeVN0b3JlLT5ncmFuZGZhdGhlckV4
aXN0aW5nV2Vic2l0ZURhdGEoV1RGTW92ZShjYWxsQ29tcGxldGlvbkhhbmRsZXJPbk1haW5UaHJl
YWQpKTsKLSAgICAgICAgZWxzZQorICAgICAgICBpZiAobV9tZW1vcnlTdG9yZSkgeworICAgICAg
ICAgICAgbV9tZW1vcnlTdG9yZS0+Y2xlYXIoW3RoaXMsIHNob3VsZEdyYW5kZmF0aGVyLCBjYWxs
Q29tcGxldGlvbkhhbmRsZXJPbk1haW5UaHJlYWQgPSBXVEZNb3ZlKGNhbGxDb21wbGV0aW9uSGFu
ZGxlck9uTWFpblRocmVhZCldICgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChzaG91
bGRHcmFuZGZhdGhlciA9PSBTaG91bGRHcmFuZGZhdGhlcjo6WWVzKQorICAgICAgICAgICAgICAg
ICAgICBtX21lbW9yeVN0b3JlLT5ncmFuZGZhdGhlckV4aXN0aW5nV2Vic2l0ZURhdGEoV1RGTW92
ZShjYWxsQ29tcGxldGlvbkhhbmRsZXJPbk1haW5UaHJlYWQpKTsKKyAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgIGNhbGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVh
ZCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgY2FsbENv
bXBsZXRpb25IYW5kbGVyT25NYWluVGhyZWFkKCk7CiAgICAgfSk7CiB9Cg==
</data>
<flag name="review"
          id="367474"
          type_id="1"
          status="+"
          setter="cdumez"
    />
    <flag name="commit-queue"
          id="367504"
          type_id="3"
          status="-"
          setter="cdumez"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350032</attachid>
            <date>2018-09-18 10:30:07 -0700</date>
            <delta_ts>2018-09-18 14:35:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189684-20180918103006.patch</filename>
            <type>text/plain</type>
            <size>5012</size>
            <attacher name="Woodrow Wang">wwang153</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI3MTYxZWRmNGY1NDhiNTVi
MTEzOTYyOTcyNDE4ZjgxZTE3NWM1YjYuLmRiMTRkZWEwMTZlMGQ1Mzc3N2E5ZWZhODU3YWFhYTQ3
MTYyY2M1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTgtMDktMTcgIFdvb2Ryb3cg
V2FuZyAgPHdvb2Ryb3dfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYXIgcGVyc2lzdGVu
dCBzdG9yYWdlIGJldHdlZW4gdGVzdHMgZm9yIHJlc291cmNlTG9hZFN0YXRpc3RpY3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTY4NAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDQ1NDAwOTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29u
c2lzdGVudFN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KToKKworICAgICAgICBS
ZW1vdmUgZnVuY3Rpb24gb25seSBjYWxsZWQgaW4gdGVzdGluZyBmb3IgcmVzZXR0aW5nIHN0YXRp
c3RpY3MgdG8gY29uc2lzdGVudAorICAgICAgICBzdGF0ZS4gCisgICAgICAgIAorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNjaGVkdWxlQ2xlYXJJbk1l
bW9yeSk6IERlbGV0ZWQuCisKIDIwMTgtMDktMTQgIFdvb2Ryb3cgV2FuZyAgPHdvb2Ryb3dfd2Fu
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgcGVuZGluZyByZXNvdXJjZSBsb2FkIHN0YXRp
c3RpY3MnIHdyaXRlcyBhZnRlciB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXggN2YyM2U5MGZmN2M2
ZTJjZTRkNTQ3OTJjNjRhMGI5NjIzZjJlZmU4My4uNmVmM2JmNjU2MDM1OGRjZDc3YTJmNTQyZjQz
NmI0NjM2NTliYjQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC00NzYsNyArNDc2LDcgQEAgdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGEKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3RhdGlzdGljc1N0b3Jl
LT5yZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNh
bGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7Ci0gICAgc3RhdGlzdGljc1N0b3JlLT5z
Y2hlZHVsZUNsZWFySW5NZW1vcnkoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVn
YXRvci5jb3B5UmVmKCldIHsgfSk7CisgICAgc3RhdGlzdGljc1N0b3JlLT5zY2hlZHVsZUNsZWFy
SW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpTaG91bGRHcmFuZGZhdGhlcjo6Tm8sIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFj
a0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwogfQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZVJlbW92ZUFsbEZldGNoQ2FjaGVzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYs
IHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVJlbW92ZUZldGNoQ2FjaGVSZW1vdmFs
RnVuY3Rpb24gY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBjN2RiNjliMTVkMWQ0
OGQ3YTRkYTM3OGY5ODZjNDQ1YzAyZTMyYjM3Li4zZjQ4ZmU4NGZiOTY1MTNjNTY1OTUwZTdjMjhm
MTlmN2Y1ZTU0MWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNp
bmNsdWRlICJXZWJzaXRlRGF0YUZldGNoT3B0aW9uLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFT
dG9yZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJl
YWRDb3BpZXIuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaD4KQEAgLTc1OSw0MCArNzYwLDI3IEBAIHZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzY2hlZHVsZUNvb2tpZUJsb2NraW5nU3Rh
dGVSZXNldCgpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnNjaGVkdWxlQ2xlYXJJbk1lbW9yeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBw
b3N0VGFzayhbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oKSBtdXRhYmxlIHsKLQotICAgICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+IGNh
bGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCA9IFtjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICAgICAgcG9zdFRh
c2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIH07Ci0KLSAgICAg
ICAgaWYgKCFtX21lbW9yeVN0b3JlKSB7Ci0gICAgICAgICAgICBjYWxsQ29tcGxldGlvbkhhbmRs
ZXJPbk1haW5UaHJlYWQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAg
ICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFdURk1vdmUoY2FsbENvbXBsZXRpb25IYW5kbGVyT25N
YWluVGhyZWFkKSk7Ci0gICAgfSk7Ci19Ci0KIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFNob3VsZEdyYW5kZmF0
aGVyIHNob3VsZEdyYW5kZmF0aGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBwb3N0
VGFzayhbdGhpcywgc2hvdWxkR3JhbmRmYXRoZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewotICAgICAgICBpZiAobV9tZW1vcnlT
dG9yZSkKLSAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFtdIHsgfSk7CiAgICAgICAg
IGlmIChtX3BlcnNpc3RlbnRTdG9yYWdlKQogICAgICAgICAgICAgbV9wZXJzaXN0ZW50U3RvcmFn
ZS0+Y2xlYXIoKTsKLSAgICAgICAgCisKICAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiBjYWxsQ29tcGxldGlvbkhhbmRsZXJPbk1haW5UaHJlYWQgPSBbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIHBv
c3RUYXNrUmVwbHkoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICB9OwogCi0g
ICAgICAgIGlmIChzaG91bGRHcmFuZGZhdGhlciA9PSBTaG91bGRHcmFuZGZhdGhlcjo6WWVzICYm
IG1fbWVtb3J5U3RvcmUpCi0gICAgICAgICAgICBtX21lbW9yeVN0b3JlLT5ncmFuZGZhdGhlckV4
aXN0aW5nV2Vic2l0ZURhdGEoV1RGTW92ZShjYWxsQ29tcGxldGlvbkhhbmRsZXJPbk1haW5UaHJl
YWQpKTsKLSAgICAgICAgZWxzZQorICAgICAgICBpZiAobV9tZW1vcnlTdG9yZSkgeworICAgICAg
ICAgICAgbV9tZW1vcnlTdG9yZS0+Y2xlYXIoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgc2hvdWxkR3JhbmRmYXRoZXIsIGNhbGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRo
cmVhZCA9IFdURk1vdmUoY2FsbENvbXBsZXRpb25IYW5kbGVyT25NYWluVGhyZWFkKV0gKCkgbXV0
YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKHNob3VsZEdyYW5kZmF0aGVyID09IFNob3VsZEdy
YW5kZmF0aGVyOjpZZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKG1fbWVtb3J5U3Rv
cmUpOworICAgICAgICAgICAgICAgICAgICBpZiAobV9tZW1vcnlTdG9yZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmdyYW5kZmF0aGVyRXhpc3RpbmdXZWJzaXRlRGF0
YShXVEZNb3ZlKGNhbGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCkpOworICAgICAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBjYWxsQ29tcGxldGlvbkhhbmRsZXJP
bk1haW5UaHJlYWQoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgIGNhbGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCgpOwogICAgIH0pOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350059</attachid>
            <date>2018-09-18 14:34:53 -0700</date>
            <delta_ts>2018-09-18 17:38:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189684-20180918143452.patch</filename>
            <type>text/plain</type>
            <size>5183</size>
            <attacher name="Woodrow Wang">wwang153</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI3MTYxZWRmNGY1NDhiNTVi
MTEzOTYyOTcyNDE4ZjgxZTE3NWM1YjYuLmRiMTRkZWEwMTZlMGQ1Mzc3N2E5ZWZhODU3YWFhYTQ3
MTYyY2M1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTgtMDktMTcgIFdvb2Ryb3cg
V2FuZyAgPHdvb2Ryb3dfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYXIgcGVyc2lzdGVu
dCBzdG9yYWdlIGJldHdlZW4gdGVzdHMgZm9yIHJlc291cmNlTG9hZFN0YXRpc3RpY3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTY4NAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDQ1NDAwOTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29u
c2lzdGVudFN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KToKKworICAgICAgICBS
ZW1vdmUgZnVuY3Rpb24gb25seSBjYWxsZWQgaW4gdGVzdGluZyBmb3IgcmVzZXR0aW5nIHN0YXRp
c3RpY3MgdG8gY29uc2lzdGVudAorICAgICAgICBzdGF0ZS4gCisgICAgICAgIAorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNjaGVkdWxlQ2xlYXJJbk1l
bW9yeSk6IERlbGV0ZWQuCisKIDIwMTgtMDktMTQgIFdvb2Ryb3cgV2FuZyAgPHdvb2Ryb3dfd2Fu
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgcGVuZGluZyByZXNvdXJjZSBsb2FkIHN0YXRp
c3RpY3MnIHdyaXRlcyBhZnRlciB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXggN2YyM2U5MGZmN2M2
ZTJjZTRkNTQ3OTJjNjRhMGI5NjIzZjJlZmU4My4uNmVmM2JmNjU2MDM1OGRjZDc3YTJmNTQyZjQz
NmI0NjM2NTliYjQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC00NzYsNyArNDc2LDcgQEAgdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGEKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3RhdGlzdGljc1N0b3Jl
LT5yZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNh
bGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7Ci0gICAgc3RhdGlzdGljc1N0b3JlLT5z
Y2hlZHVsZUNsZWFySW5NZW1vcnkoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVn
YXRvci5jb3B5UmVmKCldIHsgfSk7CisgICAgc3RhdGlzdGljc1N0b3JlLT5zY2hlZHVsZUNsZWFy
SW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpTaG91bGRHcmFuZGZhdGhlcjo6Tm8sIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFj
a0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwogfQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZVJlbW92ZUFsbEZldGNoQ2FjaGVzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYs
IHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVJlbW92ZUZldGNoQ2FjaGVSZW1vdmFs
RnVuY3Rpb24gY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBjN2RiNjliMTVkMWQ0
OGQ3YTRkYTM3OGY5ODZjNDQ1YzAyZTMyYjM3Li4zZTI3ZjUyNTNlOTNjOTcwZTQyZDE0ZTQ4NzZj
YmMxOTFiYTlkNDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNp
bmNsdWRlICJXZWJzaXRlRGF0YUZldGNoT3B0aW9uLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFT
dG9yZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJl
YWRDb3BpZXIuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaD4KQEAgLTc1OSw0MCArNzYwLDI5IEBAIHZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzY2hlZHVsZUNvb2tpZUJsb2NraW5nU3Rh
dGVSZXNldCgpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnNjaGVkdWxlQ2xlYXJJbk1lbW9yeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBw
b3N0VGFzayhbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oKSBtdXRhYmxlIHsKLQotICAgICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+IGNh
bGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCA9IFtjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICAgICAgcG9zdFRh
c2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIH07Ci0KLSAgICAg
ICAgaWYgKCFtX21lbW9yeVN0b3JlKSB7Ci0gICAgICAgICAgICBjYWxsQ29tcGxldGlvbkhhbmRs
ZXJPbk1haW5UaHJlYWQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAg
ICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFdURk1vdmUoY2FsbENvbXBsZXRpb25IYW5kbGVyT25N
YWluVGhyZWFkKSk7Ci0gICAgfSk7Ci19Ci0KIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFNob3VsZEdyYW5kZmF0
aGVyIHNob3VsZEdyYW5kZmF0aGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBwb3N0
VGFzayhbdGhpcywgc2hvdWxkR3JhbmRmYXRoZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewotICAgICAgICBpZiAobV9tZW1vcnlT
dG9yZSkKLSAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFtdIHsgfSk7CiAgICAgICAg
IGlmIChtX3BlcnNpc3RlbnRTdG9yYWdlKQogICAgICAgICAgICAgbV9wZXJzaXN0ZW50U3RvcmFn
ZS0+Y2xlYXIoKTsKLSAgICAgICAgCisKICAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiBjYWxsQ29tcGxldGlvbkhhbmRsZXJPbk1haW5UaHJlYWQgPSBbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIHBv
c3RUYXNrUmVwbHkoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICB9OwogCi0g
ICAgICAgIGlmIChzaG91bGRHcmFuZGZhdGhlciA9PSBTaG91bGRHcmFuZGZhdGhlcjo6WWVzICYm
IG1fbWVtb3J5U3RvcmUpCi0gICAgICAgICAgICBtX21lbW9yeVN0b3JlLT5ncmFuZGZhdGhlckV4
aXN0aW5nV2Vic2l0ZURhdGEoV1RGTW92ZShjYWxsQ29tcGxldGlvbkhhbmRsZXJPbk1haW5UaHJl
YWQpKTsKLSAgICAgICAgZWxzZQorICAgICAgICBpZiAobV9tZW1vcnlTdG9yZSkgeworICAgICAg
ICAgICAgbV9tZW1vcnlTdG9yZS0+Y2xlYXIoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgc2hvdWxkR3JhbmRmYXRoZXIsIGNhbGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRo
cmVhZCA9IFdURk1vdmUoY2FsbENvbXBsZXRpb25IYW5kbGVyT25NYWluVGhyZWFkKV0gKCkgbXV0
YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKHNob3VsZEdyYW5kZmF0aGVyID09IFNob3VsZEdy
YW5kZmF0aGVyOjpZZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fbWVtb3J5U3RvcmUp
CisgICAgICAgICAgICAgICAgICAgICAgICBtX21lbW9yeVN0b3JlLT5ncmFuZGZhdGhlckV4aXN0
aW5nV2Vic2l0ZURhdGEoV1RGTW92ZShjYWxsQ29tcGxldGlvbkhhbmRsZXJPbk1haW5UaHJlYWQp
KTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgUkVM
RUFTRV9MT0coUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgIldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6c2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudCBtX21lbW9yeVN0b3Jl
IGlzIG51bGwgd2hlbiB0cnlpbmcgdG8gZ3JhbmRmYXRoZXIgZGF0YS4iKTsKKworICAgICAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBjYWxsQ29tcGxldGlvbkhhbmRsZXJP
bk1haW5UaHJlYWQoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgIGNhbGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCgpOwogICAgIH0pOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350082</attachid>
            <date>2018-09-18 17:39:13 -0700</date>
            <delta_ts>2018-09-19 10:14:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189684-20180918173912.patch</filename>
            <type>text/plain</type>
            <size>5541</size>
            <attacher name="Woodrow Wang">wwang153</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlhZTZkNzhhYmM2OGQxMzAw
MWI4NjMwMDM1ZGYwZWNkMGRjZWFmNWIuLjNhMGNkZTQxZTIxZDU1ZmY5YjMxZjNkOTgxODFjOWJi
ZjYwNzUwYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTgtMDktMTcgIFdvb2Ryb3cg
V2FuZyAgPHdvb2Ryb3dfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYXIgcGVyc2lzdGVu
dCBzdG9yYWdlIGJldHdlZW4gdGVzdHMgZm9yIHJlc291cmNlTG9hZFN0YXRpc3RpY3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTY4NAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDQ1NDAwOTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29u
c2lzdGVudFN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KToKKworICAgICAgICBS
ZW1vdmUgZnVuY3Rpb24gb25seSBjYWxsZWQgaW4gdGVzdGluZyBmb3IgcmVzZXR0aW5nIHN0YXRp
c3RpY3MgdG8gY29uc2lzdGVudAorICAgICAgICBzdGF0ZS4gCisgICAgICAgIAorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNjaGVkdWxlQ2xlYXJJbk1l
bW9yeSk6IERlbGV0ZWQuCisKIDIwMTgtMDktMTQgIFdvb2Ryb3cgV2FuZyAgPHdvb2Ryb3dfd2Fu
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgcGVuZGluZyByZXNvdXJjZSBsb2FkIHN0YXRp
c3RpY3MnIHdyaXRlcyBhZnRlciB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXggN2YyM2U5MGZmN2M2
ZTJjZTRkNTQ3OTJjNjRhMGI5NjIzZjJlZmU4My4uNmVmM2JmNjU2MDM1OGRjZDc3YTJmNTQyZjQz
NmI0NjM2NTliYjQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC00NzYsNyArNDc2LDcgQEAgdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGEKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3RhdGlzdGljc1N0b3Jl
LT5yZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNh
bGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7Ci0gICAgc3RhdGlzdGljc1N0b3JlLT5z
Y2hlZHVsZUNsZWFySW5NZW1vcnkoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVn
YXRvci5jb3B5UmVmKCldIHsgfSk7CisgICAgc3RhdGlzdGljc1N0b3JlLT5zY2hlZHVsZUNsZWFy
SW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpTaG91bGRHcmFuZGZhdGhlcjo6Tm8sIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFj
a0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwogfQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZVJlbW92ZUFsbEZldGNoQ2FjaGVzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYs
IHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVJlbW92ZUZldGNoQ2FjaGVSZW1vdmFs
RnVuY3Rpb24gY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBjN2RiNjliMTVkMWQ0
OGQ3YTRkYTM3OGY5ODZjNDQ1YzAyZTMyYjM3Li44ODNhMTEwNWRiOGQyODE2ZGU1OTE5NzhlOTc2
Yjk5MjZhNDJlMzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNp
bmNsdWRlICJXZWJzaXRlRGF0YUZldGNoT3B0aW9uLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFT
dG9yZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJl
YWRDb3BpZXIuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaD4KQEAgLTc1OSw0MSArNzYwLDMzIEBAIHZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzY2hlZHVsZUNvb2tpZUJsb2NraW5nU3Rh
dGVSZXNldCgpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnNjaGVkdWxlQ2xlYXJJbk1lbW9yeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBw
b3N0VGFzayhbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oKSBtdXRhYmxlIHsKLQotICAgICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+IGNh
bGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCA9IFtjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICAgICAgcG9zdFRh
c2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIH07Ci0KLSAgICAg
ICAgaWYgKCFtX21lbW9yeVN0b3JlKSB7Ci0gICAgICAgICAgICBjYWxsQ29tcGxldGlvbkhhbmRs
ZXJPbk1haW5UaHJlYWQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAg
ICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFdURk1vdmUoY2FsbENvbXBsZXRpb25IYW5kbGVyT25N
YWluVGhyZWFkKSk7Ci0gICAgfSk7Ci19Ci0KIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFNob3VsZEdyYW5kZmF0
aGVyIHNob3VsZEdyYW5kZmF0aGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBwb3N0
VGFzayhbdGhpcywgc2hvdWxkR3JhbmRmYXRoZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewotICAgICAgICBpZiAobV9tZW1vcnlT
dG9yZSkKLSAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFtdIHsgfSk7CiAgICAgICAg
IGlmIChtX3BlcnNpc3RlbnRTdG9yYWdlKQogICAgICAgICAgICAgbV9wZXJzaXN0ZW50U3RvcmFn
ZS0+Y2xlYXIoKTsKLSAgICAgICAgCisKICAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiBjYWxsQ29tcGxldGlvbkhhbmRsZXJPbk1haW5UaHJlYWQgPSBbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIHBv
c3RUYXNrUmVwbHkoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICB9OwogCi0g
ICAgICAgIGlmIChzaG91bGRHcmFuZGZhdGhlciA9PSBTaG91bGRHcmFuZGZhdGhlcjo6WWVzICYm
IG1fbWVtb3J5U3RvcmUpCi0gICAgICAgICAgICBtX21lbW9yeVN0b3JlLT5ncmFuZGZhdGhlckV4
aXN0aW5nV2Vic2l0ZURhdGEoV1RGTW92ZShjYWxsQ29tcGxldGlvbkhhbmRsZXJPbk1haW5UaHJl
YWQpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY2FsbENvbXBsZXRpb25IYW5kbGVyT25N
YWluVGhyZWFkKCk7CisgICAgICAgIGlmIChtX21lbW9yeVN0b3JlKSB7CisgICAgICAgICAgICBt
X21lbW9yeVN0b3JlLT5jbGVhcihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBzaG91bGRHcmFuZGZhdGhlciwgY2FsbENvbXBsZXRpb25IYW5kbGVyT25NYWluVGhyZWFkID0g
V1RGTW92ZShjYWxsQ29tcGxldGlvbkhhbmRsZXJPbk1haW5UaHJlYWQpXSAoKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgICAgICBpZiAoc2hvdWxkR3JhbmRmYXRoZXIgPT0gU2hvdWxkR3JhbmRmYXRo
ZXI6OlllcykgeworICAgICAgICAgICAgICAgICAgICBpZiAobV9tZW1vcnlTdG9yZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmdyYW5kZmF0aGVyRXhpc3RpbmdXZWJz
aXRlRGF0YShXVEZNb3ZlKGNhbGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCkpOworICAg
ICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xP
RyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50IEFmdGVyIGJlaW5nIGNsZWFyZWQs
IG1fbWVtb3J5U3RvcmUgaXMgbnVsbCB3aGVuIHRyeWluZyB0byBncmFuZGZhdGhlciBkYXRhLiIp
OworCisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGNhbGxDb21w
bGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgaWYgKHNob3VsZEdyYW5kZmF0aGVyID09IFNob3VsZEdyYW5kZmF0
aGVyOjpZZXMpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0coUmVzb3VyY2VMb2FkU3RhdGlz
dGljcywgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2NoZWR1bGVDbGVhckluTWVt
b3J5QW5kUGVyc2lzdGVudCBCZWZvcmUgYmVpbmcgY2xlYXJlZCwgbV9tZW1vcnlTdG9yZSBpcyBu
dWxsIHdoZW4gdHJ5aW5nIHRvIGdyYW5kZmF0aGVyIGRhdGEuIik7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgY2FsbENvbXBsZXRpb25IYW5kbGVyT25NYWluVGhyZWFkKCk7CiAg
ICAgfSk7CiB9CiAK
</data>
<flag name="commit-queue"
          id="367562"
          type_id="3"
          status="-"
          setter="cdumez"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350130</attachid>
            <date>2018-09-19 10:18:22 -0700</date>
            <delta_ts>2018-09-19 14:32:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189684-20180919101822.patch</filename>
            <type>text/plain</type>
            <size>5219</size>
            <attacher name="Woodrow Wang">wwang153</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlhZTZkNzhhYmM2OGQxMzAw
MWI4NjMwMDM1ZGYwZWNkMGRjZWFmNWIuLjNhMGNkZTQxZTIxZDU1ZmY5YjMxZjNkOTgxODFjOWJi
ZjYwNzUwYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTgtMDktMTcgIFdvb2Ryb3cg
V2FuZyAgPHdvb2Ryb3dfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYXIgcGVyc2lzdGVu
dCBzdG9yYWdlIGJldHdlZW4gdGVzdHMgZm9yIHJlc291cmNlTG9hZFN0YXRpc3RpY3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTY4NAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDQ1NDAwOTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29u
c2lzdGVudFN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KToKKworICAgICAgICBS
ZW1vdmUgZnVuY3Rpb24gb25seSBjYWxsZWQgaW4gdGVzdGluZyBmb3IgcmVzZXR0aW5nIHN0YXRp
c3RpY3MgdG8gY29uc2lzdGVudAorICAgICAgICBzdGF0ZS4gCisgICAgICAgIAorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNjaGVkdWxlQ2xlYXJJbk1l
bW9yeSk6IERlbGV0ZWQuCisKIDIwMTgtMDktMTQgIFdvb2Ryb3cgV2FuZyAgPHdvb2Ryb3dfd2Fu
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgcGVuZGluZyByZXNvdXJjZSBsb2FkIHN0YXRp
c3RpY3MnIHdyaXRlcyBhZnRlciB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXggN2YyM2U5MGZmN2M2
ZTJjZTRkNTQ3OTJjNjRhMGI5NjIzZjJlZmU4My4uNmVmM2JmNjU2MDM1OGRjZDc3YTJmNTQyZjQz
NmI0NjM2NTliYjQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC00NzYsNyArNDc2LDcgQEAgdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGEKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3RhdGlzdGljc1N0b3Jl
LT5yZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNh
bGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7Ci0gICAgc3RhdGlzdGljc1N0b3JlLT5z
Y2hlZHVsZUNsZWFySW5NZW1vcnkoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVn
YXRvci5jb3B5UmVmKCldIHsgfSk7CisgICAgc3RhdGlzdGljc1N0b3JlLT5zY2hlZHVsZUNsZWFy
SW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpTaG91bGRHcmFuZGZhdGhlcjo6Tm8sIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFj
a0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwogfQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZVJlbW92ZUFsbEZldGNoQ2FjaGVzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYs
IHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVJlbW92ZUZldGNoQ2FjaGVSZW1vdmFs
RnVuY3Rpb24gY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBjN2RiNjliMTVkMWQ0
OGQ3YTRkYTM3OGY5ODZjNDQ1YzAyZTMyYjM3Li5iOGQ0MDY2NGZmZTE1YWE5YjljOGQ3NjUyNTBk
YjY4MzdhMWYwYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTc1OSw0MSArNzU5LDMxIEBA
IHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzY2hlZHVsZUNvb2tpZUJsb2Nr
aW5nU3RhdGVSZXNldCgpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OnNjaGVkdWxlQ2xlYXJJbk1lbW9yeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
LSAgICBwb3N0VGFzayhbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLQotICAgICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+IGNhbGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCA9IFtjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICAgICAg
cG9zdFRhc2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIH07Ci0K
LSAgICAgICAgaWYgKCFtX21lbW9yeVN0b3JlKSB7Ci0gICAgICAgICAgICBjYWxsQ29tcGxldGlv
bkhhbmRsZXJPbk1haW5UaHJlYWQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
Ci0gICAgICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFdURk1vdmUoY2FsbENvbXBsZXRpb25IYW5k
bGVyT25NYWluVGhyZWFkKSk7Ci0gICAgfSk7Ci19Ci0KIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFNob3VsZEdy
YW5kZmF0aGVyIHNob3VsZEdyYW5kZmF0aGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAg
ICBwb3N0VGFzayhbdGhpcywgc2hvdWxkR3JhbmRmYXRoZXIsIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewotICAgICAgICBpZiAobV9t
ZW1vcnlTdG9yZSkKLSAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFtdIHsgfSk7CiAg
ICAgICAgIGlmIChtX3BlcnNpc3RlbnRTdG9yYWdlKQogICAgICAgICAgICAgbV9wZXJzaXN0ZW50
U3RvcmFnZS0+Y2xlYXIoKTsKLSAgICAgICAgCisKICAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiBjYWxsQ29tcGxldGlvbkhhbmRsZXJPbk1haW5UaHJlYWQgPSBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAg
ICAgIHBvc3RUYXNrUmVwbHkoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICB9
OwotCi0gICAgICAgIGlmIChzaG91bGRHcmFuZGZhdGhlciA9PSBTaG91bGRHcmFuZGZhdGhlcjo6
WWVzICYmIG1fbWVtb3J5U3RvcmUpCi0gICAgICAgICAgICBtX21lbW9yeVN0b3JlLT5ncmFuZGZh
dGhlckV4aXN0aW5nV2Vic2l0ZURhdGEoV1RGTW92ZShjYWxsQ29tcGxldGlvbkhhbmRsZXJPbk1h
aW5UaHJlYWQpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY2FsbENvbXBsZXRpb25IYW5k
bGVyT25NYWluVGhyZWFkKCk7CisgICAgICAgIENvbXBsZXRpb25IYW5kbGVyQ2FsbGluZ1Njb3Bl
IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyKFdURk1vdmUoY2FsbENvbXBsZXRpb25IYW5kbGVyT25N
YWluVGhyZWFkKSk7CisKKyAgICAgICAgaWYgKG1fbWVtb3J5U3RvcmUpIHsKKyAgICAgICAgICAg
IG1fbWVtb3J5U3RvcmUtPmNsZWFyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIHNob3VsZEdyYW5kZmF0aGVyLCBjb21wbGV0aW9uSGFuZGxlckNhbGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXJDYWxsZXIpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBp
ZiAoc2hvdWxkR3JhbmRmYXRoZXIgPT0gU2hvdWxkR3JhbmRmYXRoZXI6OlllcykgeworICAgICAg
ICAgICAgICAgICAgICBpZiAobV9tZW1vcnlTdG9yZSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1fbWVtb3J5U3RvcmUtPmdyYW5kZmF0aGVyRXhpc3RpbmdXZWJzaXRlRGF0YShjb21wbGV0aW9u
SGFuZGxlckNhbGxlci5yZWxlYXNlKCkpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPRyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCAi
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQ
ZXJzaXN0ZW50IEFmdGVyIGJlaW5nIGNsZWFyZWQsIG1fbWVtb3J5U3RvcmUgaXMgbnVsbCB3aGVu
IHRyeWluZyB0byBncmFuZGZhdGhlciBkYXRhLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHNob3VsZEdyYW5k
ZmF0aGVyID09IFNob3VsZEdyYW5kZmF0aGVyOjpZZXMpCisgICAgICAgICAgICAgICAgUkVMRUFT
RV9MT0coUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6c2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudCBCZWZvcmUgYmVpbmcgY2xl
YXJlZCwgbV9tZW1vcnlTdG9yZSBpcyBudWxsIHdoZW4gdHJ5aW5nIHRvIGdyYW5kZmF0aGVyIGRh
dGEuIik7CisgICAgICAgIH0KICAgICB9KTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350147</attachid>
            <date>2018-09-19 13:27:42 -0700</date>
            <delta_ts>2018-09-19 15:08:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189684-20180919132742.patch</filename>
            <type>text/plain</type>
            <size>5361</size>
            <attacher name="Woodrow Wang">wwang153</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlhZTZkNzhhYmM2OGQxMzAw
MWI4NjMwMDM1ZGYwZWNkMGRjZWFmNWIuLjNhMGNkZTQxZTIxZDU1ZmY5YjMxZjNkOTgxODFjOWJi
ZjYwNzUwYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTgtMDktMTcgIFdvb2Ryb3cg
V2FuZyAgPHdvb2Ryb3dfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYXIgcGVyc2lzdGVu
dCBzdG9yYWdlIGJldHdlZW4gdGVzdHMgZm9yIHJlc291cmNlTG9hZFN0YXRpc3RpY3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTY4NAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDQ1NDAwOTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29u
c2lzdGVudFN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KToKKworICAgICAgICBS
ZW1vdmUgZnVuY3Rpb24gb25seSBjYWxsZWQgaW4gdGVzdGluZyBmb3IgcmVzZXR0aW5nIHN0YXRp
c3RpY3MgdG8gY29uc2lzdGVudAorICAgICAgICBzdGF0ZS4gCisgICAgICAgIAorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNjaGVkdWxlQ2xlYXJJbk1l
bW9yeSk6IERlbGV0ZWQuCisKIDIwMTgtMDktMTQgIFdvb2Ryb3cgV2FuZyAgPHdvb2Ryb3dfd2Fu
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgcGVuZGluZyByZXNvdXJjZSBsb2FkIHN0YXRp
c3RpY3MnIHdyaXRlcyBhZnRlciB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXggN2YyM2U5MGZmN2M2
ZTJjZTRkNTQ3OTJjNjRhMGI5NjIzZjJlZmU4My4uNmVmM2JmNjU2MDM1OGRjZDc3YTJmNTQyZjQz
NmI0NjM2NTliYjQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC00NzYsNyArNDc2LDcgQEAgdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGEKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3RhdGlzdGljc1N0b3Jl
LT5yZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNh
bGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7Ci0gICAgc3RhdGlzdGljc1N0b3JlLT5z
Y2hlZHVsZUNsZWFySW5NZW1vcnkoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVn
YXRvci5jb3B5UmVmKCldIHsgfSk7CisgICAgc3RhdGlzdGljc1N0b3JlLT5zY2hlZHVsZUNsZWFy
SW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpTaG91bGRHcmFuZGZhdGhlcjo6Tm8sIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFj
a0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwogfQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZVJlbW92ZUFsbEZldGNoQ2FjaGVzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYs
IHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVJlbW92ZUZldGNoQ2FjaGVSZW1vdmFs
RnVuY3Rpb24gY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBjN2RiNjliMTVkMWQ0
OGQ3YTRkYTM3OGY5ODZjNDQ1YzAyZTMyYjM3Li4zMTA5MDU0NGRiYTJmZGJmMzJiZGE3YmE2MWM5
ODgzNjI4MmJmZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTc1OSw0MSArNzU5LDMxIEBA
IHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzY2hlZHVsZUNvb2tpZUJsb2Nr
aW5nU3RhdGVSZXNldCgpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OnNjaGVkdWxlQ2xlYXJJbk1lbW9yeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
LSAgICBwb3N0VGFzayhbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLQotICAgICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+IGNhbGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCA9IFtjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICAgICAg
cG9zdFRhc2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIH07Ci0K
LSAgICAgICAgaWYgKCFtX21lbW9yeVN0b3JlKSB7Ci0gICAgICAgICAgICBjYWxsQ29tcGxldGlv
bkhhbmRsZXJPbk1haW5UaHJlYWQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
Ci0gICAgICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFdURk1vdmUoY2FsbENvbXBsZXRpb25IYW5k
bGVyT25NYWluVGhyZWFkKSk7Ci0gICAgfSk7Ci19Ci0KIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFNob3VsZEdy
YW5kZmF0aGVyIHNob3VsZEdyYW5kZmF0aGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAg
ICBwb3N0VGFzayhbdGhpcywgc2hvdWxkR3JhbmRmYXRoZXIsIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewotICAgICAgICBpZiAobV9t
ZW1vcnlTdG9yZSkKLSAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFtdIHsgfSk7Cisg
ICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgc2hvdWxk
R3JhbmRmYXRoZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildICgpIG11dGFibGUgewogICAgICAgICBpZiAobV9wZXJzaXN0ZW50U3RvcmFnZSkKICAgICAg
ICAgICAgIG1fcGVyc2lzdGVudFN0b3JhZ2UtPmNsZWFyKCk7Ci0gICAgICAgIAorCiAgICAgICAg
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4gY2FsbENvbXBsZXRpb25IYW5kbGVyT25NYWluVGhy
ZWFkID0gW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICBwb3N0VGFza1JlcGx5KFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKICAgICAgICAgfTsKLQotICAgICAgICBpZiAoc2hvdWxkR3JhbmRmYXRoZXIgPT0g
U2hvdWxkR3JhbmRmYXRoZXI6OlllcyAmJiBtX21lbW9yeVN0b3JlKQotICAgICAgICAgICAgbV9t
ZW1vcnlTdG9yZS0+Z3JhbmRmYXRoZXJFeGlzdGluZ1dlYnNpdGVEYXRhKFdURk1vdmUoY2FsbENv
bXBsZXRpb25IYW5kbGVyT25NYWluVGhyZWFkKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGNhbGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCgpOworICAgICAgICBDb21wbGV0aW9u
SGFuZGxlckNhbGxpbmdTY29wZSBjb21wbGV0aW9uSGFuZGxlckNhbGxlcihXVEZNb3ZlKGNhbGxD
b21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCkpOworCisgICAgICAgIGlmIChtX21lbW9yeVN0
b3JlKSB7CisgICAgICAgICAgICBtX21lbW9yeVN0b3JlLT5jbGVhcihbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IHByb3RlY3RlZFRoaXMuY29weVJlZigpLCBzaG91bGRHcmFuZGZhdGhlciwgY29tcGxl
dGlvbkhhbmRsZXJDYWxsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyKV0gKCkg
bXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKHNob3VsZEdyYW5kZmF0aGVyID09IFNob3Vs
ZEdyYW5kZmF0aGVyOjpZZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fbWVtb3J5U3Rv
cmUpCisgICAgICAgICAgICAgICAgICAgICAgICBtX21lbW9yeVN0b3JlLT5ncmFuZGZhdGhlckV4
aXN0aW5nV2Vic2l0ZURhdGEoY29tcGxldGlvbkhhbmRsZXJDYWxsZXIucmVsZWFzZSgpKTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9M
T0coUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6c2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudCBBZnRlciBiZWluZyBjbGVhcmVk
LCBtX21lbW9yeVN0b3JlIGlzIG51bGwgd2hlbiB0cnlpbmcgdG8gZ3JhbmRmYXRoZXIgZGF0YS4i
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIGlmIChzaG91bGRHcmFuZGZhdGhlciA9PSBTaG91bGRHcmFuZGZhdGhlcjo6
WWVzKQorICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HKFJlc291cmNlTG9hZFN0YXRpc3RpY3Ms
ICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFu
ZFBlcnNpc3RlbnQgQmVmb3JlIGJlaW5nIGNsZWFyZWQsIG1fbWVtb3J5U3RvcmUgaXMgbnVsbCB3
aGVuIHRyeWluZyB0byBncmFuZGZhdGhlciBkYXRhLiIpOworICAgICAgICB9CiAgICAgfSk7CiB9
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350151</attachid>
            <date>2018-09-19 15:08:17 -0700</date>
            <delta_ts>2018-09-21 09:25:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189684-20180919150816.patch</filename>
            <type>text/plain</type>
            <size>5388</size>
            <attacher name="Woodrow Wang">wwang153</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlhZTZkNzhhYmM2OGQxMzAw
MWI4NjMwMDM1ZGYwZWNkMGRjZWFmNWIuLjNhMGNkZTQxZTIxZDU1ZmY5YjMxZjNkOTgxODFjOWJi
ZjYwNzUwYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTgtMDktMTcgIFdvb2Ryb3cg
V2FuZyAgPHdvb2Ryb3dfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYXIgcGVyc2lzdGVu
dCBzdG9yYWdlIGJldHdlZW4gdGVzdHMgZm9yIHJlc291cmNlTG9hZFN0YXRpc3RpY3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTY4NAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDQ1NDAwOTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29u
c2lzdGVudFN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KToKKworICAgICAgICBS
ZW1vdmUgZnVuY3Rpb24gb25seSBjYWxsZWQgaW4gdGVzdGluZyBmb3IgcmVzZXR0aW5nIHN0YXRp
c3RpY3MgdG8gY29uc2lzdGVudAorICAgICAgICBzdGF0ZS4gCisgICAgICAgIAorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNjaGVkdWxlQ2xlYXJJbk1l
bW9yeSk6IERlbGV0ZWQuCisKIDIwMTgtMDktMTQgIFdvb2Ryb3cgV2FuZyAgPHdvb2Ryb3dfd2Fu
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgcGVuZGluZyByZXNvdXJjZSBsb2FkIHN0YXRp
c3RpY3MnIHdyaXRlcyBhZnRlciB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXggN2YyM2U5MGZmN2M2
ZTJjZTRkNTQ3OTJjNjRhMGI5NjIzZjJlZmU4My4uNmVmM2JmNjU2MDM1OGRjZDc3YTJmNTQyZjQz
NmI0NjM2NTliYjQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC00NzYsNyArNDc2LDcgQEAgdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGEKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3RhdGlzdGljc1N0b3Jl
LT5yZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNh
bGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7Ci0gICAgc3RhdGlzdGljc1N0b3JlLT5z
Y2hlZHVsZUNsZWFySW5NZW1vcnkoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVn
YXRvci5jb3B5UmVmKCldIHsgfSk7CisgICAgc3RhdGlzdGljc1N0b3JlLT5zY2hlZHVsZUNsZWFy
SW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpTaG91bGRHcmFuZGZhdGhlcjo6Tm8sIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFj
a0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwogfQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZVJlbW92ZUFsbEZldGNoQ2FjaGVzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYs
IHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVJlbW92ZUZldGNoQ2FjaGVSZW1vdmFs
RnVuY3Rpb24gY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBjN2RiNjliMTVkMWQ0
OGQ3YTRkYTM3OGY5ODZjNDQ1YzAyZTMyYjM3Li5kMmQ3YWM0YjAzZmJhYjlmOThiNDY5ZDlmMjEw
OTIzZDBmYzRmOGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTc1OSw0MSArNzU5LDMwIEBA
IHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzY2hlZHVsZUNvb2tpZUJsb2Nr
aW5nU3RhdGVSZXNldCgpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OnNjaGVkdWxlQ2xlYXJJbk1lbW9yeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
LSAgICBwb3N0VGFzayhbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLQotICAgICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+IGNhbGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCA9IFtjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICAgICAg
cG9zdFRhc2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIH07Ci0K
LSAgICAgICAgaWYgKCFtX21lbW9yeVN0b3JlKSB7Ci0gICAgICAgICAgICBjYWxsQ29tcGxldGlv
bkhhbmRsZXJPbk1haW5UaHJlYWQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
Ci0gICAgICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFdURk1vdmUoY2FsbENvbXBsZXRpb25IYW5k
bGVyT25NYWluVGhyZWFkKSk7Ci0gICAgfSk7Ci19Ci0KIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFNob3VsZEdy
YW5kZmF0aGVyIHNob3VsZEdyYW5kZmF0aGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAg
ICBwb3N0VGFzayhbdGhpcywgc2hvdWxkR3JhbmRmYXRoZXIsIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewotICAgICAgICBpZiAobV9t
ZW1vcnlTdG9yZSkKLSAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmNsZWFyKFtdIHsgfSk7Cisg
ICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgc2hvdWxk
R3JhbmRmYXRoZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildICgpIG11dGFibGUgewogICAgICAgICBpZiAobV9wZXJzaXN0ZW50U3RvcmFnZSkKICAgICAg
ICAgICAgIG1fcGVyc2lzdGVudFN0b3JhZ2UtPmNsZWFyKCk7Ci0gICAgICAgIAotICAgICAgICBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+IGNhbGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVh
ZCA9IFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11
dGFibGUgeworCisgICAgICAgIENvbXBsZXRpb25IYW5kbGVyQ2FsbGluZ1Njb3BlIGNvbXBsZXRp
b25IYW5kbGVyQ2FsbGVyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICAgICAgcG9zdFRhc2tSZXBseShXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIH07CisgICAgICAgIH0pOwogCi0gICAgICAgIGlm
IChzaG91bGRHcmFuZGZhdGhlciA9PSBTaG91bGRHcmFuZGZhdGhlcjo6WWVzICYmIG1fbWVtb3J5
U3RvcmUpCi0gICAgICAgICAgICBtX21lbW9yeVN0b3JlLT5ncmFuZGZhdGhlckV4aXN0aW5nV2Vi
c2l0ZURhdGEoV1RGTW92ZShjYWxsQ29tcGxldGlvbkhhbmRsZXJPbk1haW5UaHJlYWQpKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgY2FsbENvbXBsZXRpb25IYW5kbGVyT25NYWluVGhyZWFk
KCk7CisgICAgICAgIGlmIChtX21lbW9yeVN0b3JlKSB7CisgICAgICAgICAgICBtX21lbW9yeVN0
b3JlLT5jbGVhcihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IHByb3RlY3RlZFRoaXMuY29weVJlZigp
LCBzaG91bGRHcmFuZGZhdGhlciwgY29tcGxldGlvbkhhbmRsZXJDYWxsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyQ2FsbGVyKV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYg
KHNob3VsZEdyYW5kZmF0aGVyID09IFNob3VsZEdyYW5kZmF0aGVyOjpZZXMpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKG1fbWVtb3J5U3RvcmUpCisgICAgICAgICAgICAgICAgICAgICAgICBt
X21lbW9yeVN0b3JlLT5ncmFuZGZhdGhlckV4aXN0aW5nV2Vic2l0ZURhdGEoY29tcGxldGlvbkhh
bmRsZXJDYWxsZXIucmVsZWFzZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0coUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgIldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVy
c2lzdGVudCBBZnRlciBiZWluZyBjbGVhcmVkLCBtX21lbW9yeVN0b3JlIGlzIG51bGwgd2hlbiB0
cnlpbmcgdG8gZ3JhbmRmYXRoZXIgZGF0YS4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzaG91bGRHcmFuZGZh
dGhlciA9PSBTaG91bGRHcmFuZGZhdGhlcjo6WWVzKQorICAgICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQgQmVmb3JlIGJlaW5nIGNsZWFy
ZWQsIG1fbWVtb3J5U3RvcmUgaXMgbnVsbCB3aGVuIHRyeWluZyB0byBncmFuZGZhdGhlciBkYXRh
LiIpOworICAgICAgICB9CiAgICAgfSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350279</attachid>
            <date>2018-09-20 16:43:29 -0700</date>
            <delta_ts>2018-09-21 09:17:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189684-20180920164328.patch</filename>
            <type>text/plain</type>
            <size>8726</size>
            <attacher name="Woodrow Wang">wwang153</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDViOWFkM2Q5NDk0YWI4MTMw
ZmJkZWQ5NDYyNTc1MzZhYTIwOTQ2MDUuLmM4NWJmNzhkZWRkNDRjNTQ1MGNkYmZhNDU5MGY3YmM4
N2FhOGJmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTgtMDktMjAgIFdvb2Ryb3cg
V2FuZyAgPHdvb2Ryb3dfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYXIgcGVyc2lzdGVu
dCBzdG9yYWdlIGJldHdlZW4gdGVzdHMgZm9yIHJlc291cmNlTG9hZFN0YXRpc3RpY3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTY4NAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDQ1NDAwOTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMg
RHVtZXouCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVm
LmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29uc2lz
dGVudFN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ2xvc2Up
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcmV2YWxlbnRE
b21haW5zVG9CbG9ja0Nvb2tpZXNGb3IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OnNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQpOgor
CisgICAgICAgIFJlbW92ZSBmdW5jdGlvbiBvbmx5IGNhbGxlZCBpbiB0ZXN0aW5nIGZvciByZXNl
dHRpbmcgc3RhdGlzdGljcyB0byBjb25zaXN0ZW50CisgICAgICAgIHN0YXRlLiAKKworICAgICAg
ICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNjaGVkdWxlQ2xlYXJJ
bk1lbW9yeSk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnVw
ZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0Zvcik6CisgICAgICAgIChXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKToKKwogMjAx
OC0wOS0xNCAgV29vZHJvdyBXYW5nICA8d29vZHJvd193YW5nQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDbGVhciBwZW5kaW5nIHJlc291cmNlIGxvYWQgc3RhdGlzdGljcycgd3JpdGVzIGFmdGVyIHRl
c3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVE
YXRhU3RvcmVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRl
RGF0YVN0b3JlUmVmLmNwcAppbmRleCAyNDY0YjBiZGE0NTZkYTViOWZkZTI5YmUwMWI5YWVlZTVk
YjZlMDY2Li4wZWYyOTQ0MzY4OTgwMzk2ZWJlM2UwYzFiZjMxMmI2MGNjMDRiMmZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5jcHAKQEAgLTQ4NCw3ICs0ODQsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRp
c3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYQogICAg
ICAgICByZXR1cm47CiAKICAgICBzdGF0aXN0aWNzU3RvcmUtPnJlc2V0UGFyYW1ldGVyc1RvRGVm
YXVsdFZhbHVlcyhbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlS
ZWYoKV0geyB9KTsKLSAgICBzdGF0aXN0aWNzU3RvcmUtPnNjaGVkdWxlQ2xlYXJJbk1lbW9yeShb
Y2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsK
KyAgICBzdGF0aXN0aWNzU3RvcmUtPnNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNob3VsZEdyYW5kZmF0aGVy
OjpObywgW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCld
IHsgfSk7CiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlUmVtb3ZlQWxsRmV0Y2hDYWNoZXMo
V0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgdm9pZCogY29udGV4dCwgV0tXZWJz
aXRlRGF0YVN0b3JlUmVtb3ZlRmV0Y2hDYWNoZVJlbW92YWxGdW5jdGlvbiBjYWxsYmFjaykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwCmluZGV4IDRlOTkxOTM0OWJlZTU5YTE4N2E3OWI1NmQ4YzJkMzQ5ZDUzNDA4YjYu
LjgxMGRhZjkxZDRjMzI1OGUwZTMzMDA0YWYyMDBlZDM4ZWJlOTY3YzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cApAQCAtMjY1LDYgKzI2NSwxNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENsb3Nl
KElQQzo6Q29ubmVjdGlvbiYpCiAgICAgICAgIGNhbGxiYWNrKGZhbHNlKTsKICAgICBtX3dyaXRl
QmxvYlRvRmlsZVBhdGhDYWxsYmFja01hcC5jbGVhcigpOwogCisgICAgZm9yIChhdXRvJiBjYWxs
YmFjayA6IG1fcmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0NhbGxiYWNrTWFwLnZhbHVlcygpKQorICAg
ICAgICBjYWxsYmFjaygpOworICAgIG1fcmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0NhbGxiYWNrTWFw
LmNsZWFyKCk7CisKKyAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogbV91cGRhdGVCbG9ja0Nvb2tp
ZXNDYWxsYmFja01hcC52YWx1ZXMoKSkKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICBtX3VwZGF0
ZUJsb2NrQ29va2llc0NhbGxiYWNrTWFwLmNsZWFyKCk7CisgICAgCiAgICAgLy8gVGhpcyBtYXkg
Y2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KICAgICBuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKTsKIH0K
QEAgLTM5Miw3ICs0MDAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnVwZGF0ZVByZXZh
bGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNlc3Npb25JRAogICAgIH0KICAgICAK
ICAgICBhdXRvIGNhbGxiYWNrSWQgPSBnZW5lcmF0ZUNhbGxiYWNrSUQoKTsKLSAgICBhdXRvIGFk
ZFJlc3VsdCA9IG1fdXBkYXRlQmxvY2tDb29raWVzQ2FsbGJhY2tNYXAuYWRkKGNhbGxiYWNrSWQs
IFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRva2VuID0gdGhyb3R0bGVyKCkuYmFj
a2dyb3VuZEFjdGl2aXR5VG9rZW4oKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fdXBkYXRl
QmxvY2tDb29raWVzQ2FsbGJhY2tNYXAuYWRkKGNhbGxiYWNrSWQsIFtwcm90ZWN0ZWRQcm9jZXNz
UG9vbCA9IG1ha2VSZWYobV9wcm9jZXNzUG9vbCksIHRva2VuID0gdGhyb3R0bGVyKCkuYmFja2dy
b3VuZEFjdGl2aXR5VG9rZW4oKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAg
ICB9KTsKICAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggMTFiZTA0NTcyZjJlNWIxNWUzMjMwNDliZDVkZWIy
MDMwNjgyMmRkNC4uZmE1ZWYyMTUyNGJjODQ1OTZjOGZkMjg0ZTVhMTZmNjgyNTYwYWY3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuY3BwCkBAIC03NTksNDEgKzc1OSwzMCBAQCB2b2lkIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6c2NoZWR1bGVDb29raWVCbG9ja2luZ1N0YXRlUmVzZXQoKQog
fQogI2VuZGlmCiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzY2hlZHVs
ZUNsZWFySW5NZW1vcnkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgcG9zdFRhc2soW3Ro
aXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0
YWJsZSB7Ci0KLSAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiBjYWxsQ29tcGxldGlv
bkhhbmRsZXJPbk1haW5UaHJlYWQgPSBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIHBvc3RUYXNrUmVwbHkoV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICB9OwotCi0gICAgICAgIGlmICghbV9t
ZW1vcnlTdG9yZSkgewotICAgICAgICAgICAgY2FsbENvbXBsZXRpb25IYW5kbGVyT25NYWluVGhy
ZWFkKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBtX21lbW9y
eVN0b3JlLT5jbGVhcihXVEZNb3ZlKGNhbGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCkp
OwotICAgIH0pOwotfQotCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2No
ZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChTaG91bGRHcmFuZGZhdGhlciBzaG91bGRH
cmFuZGZhdGhlciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgcG9zdFRhc2soW3RoaXMs
IHNob3VsZEdyYW5kZmF0aGVyLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKG1fbWVtb3J5U3RvcmUpCi0gICAg
ICAgICAgICBtX21lbW9yeVN0b3JlLT5jbGVhcihbXSB7IH0pOworICAgIHBvc3RUYXNrKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHNob3VsZEdyYW5kZmF0aGVyLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKG1fcGVyc2lzdGVudFN0b3JhZ2UpCiAgICAgICAgICAgICBtX3BlcnNpc3Rl
bnRTdG9yYWdlLT5jbGVhcigpOwotICAgICAgICAKLSAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiBjYWxsQ29tcGxldGlvbkhhbmRsZXJPbk1haW5UaHJlYWQgPSBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKworICAgICAg
ICBDb21wbGV0aW9uSGFuZGxlckNhbGxpbmdTY29wZSBjb21wbGV0aW9uSGFuZGxlckNhbGxlcihb
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxl
IHsKICAgICAgICAgICAgIHBvc3RUYXNrUmVwbHkoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwotICAgICAgICB9OworICAgICAgICB9KTsKIAotICAgICAgICBpZiAoc2hvdWxkR3JhbmRmYXRo
ZXIgPT0gU2hvdWxkR3JhbmRmYXRoZXI6OlllcyAmJiBtX21lbW9yeVN0b3JlKQotICAgICAgICAg
ICAgbV9tZW1vcnlTdG9yZS0+Z3JhbmRmYXRoZXJFeGlzdGluZ1dlYnNpdGVEYXRhKFdURk1vdmUo
Y2FsbENvbXBsZXRpb25IYW5kbGVyT25NYWluVGhyZWFkKSk7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIGNhbGxDb21wbGV0aW9uSGFuZGxlck9uTWFpblRocmVhZCgpOworICAgICAgICBpZiAo
bV9tZW1vcnlTdG9yZSkgeworICAgICAgICAgICAgbV9tZW1vcnlTdG9yZS0+Y2xlYXIoW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBwcm90ZWN0ZWRUaGlzLmNvcHlSZWYoKSwgc2hvdWxkR3JhbmRmYXRo
ZXIsIGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlckNh
bGxlcildICgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChzaG91bGRHcmFuZGZhdGhl
ciA9PSBTaG91bGRHcmFuZGZhdGhlcjo6WWVzKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICht
X21lbW9yeVN0b3JlKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9tZW1vcnlTdG9yZS0+Z3Jh
bmRmYXRoZXJFeGlzdGluZ1dlYnNpdGVEYXRhKGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVh
c2UoKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAg
IFJFTEVBU0VfTE9HKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsICJXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OnNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQgQWZ0ZXIgYmVp
bmcgY2xlYXJlZCwgbV9tZW1vcnlTdG9yZSBpcyBudWxsIHdoZW4gdHJ5aW5nIHRvIGdyYW5kZmF0
aGVyIGRhdGEuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoc2hvdWxkR3JhbmRmYXRoZXIgPT0gU2hvdWxkR3Jh
bmRmYXRoZXI6OlllcykKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPRyhSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLCAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzY2hlZHVsZUNsZWFy
SW5NZW1vcnlBbmRQZXJzaXN0ZW50IEJlZm9yZSBiZWluZyBjbGVhcmVkLCBtX21lbW9yeVN0b3Jl
IGlzIG51bGwgd2hlbiB0cnlpbmcgdG8gZ3JhbmRmYXRoZXIgZGF0YS4iKTsKKyAgICAgICAgfQog
ICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDMwODcxOGFhNGFhMzVhMGIyZjcyMTJl
ZDAxYjczNzFmZDJiZjc0MzUuLjM2YWFlNWJhZTdlYjk3NmQ3MzhlMzliNjhiOWI1MjNhYTE3YjRm
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xMjU1LDcgKzEyNTUsNyBAQCB2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0Zvcihjb25zdCBW
ZWN0b3I8U3RyaQogCiAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygp
KSB7CiAgICAgICAgIGlmIChhdXRvKiBwcm9jZXNzID0gcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9j
ZXNzKCkpCi0gICAgICAgICAgICBwcm9jZXNzLT51cGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9j
a0Nvb2tpZXNGb3IobV9zZXNzaW9uSUQsIGRvbWFpbnNUb0Jsb2NrLCBzaG91bGRDbGVhckZpcnN0
LCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9
KTsKKyAgICAgICAgICAgIHByb2Nlc3MtPnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29v
a2llc0ZvcihtX3Nlc3Npb25JRCwgZG9tYWluc1RvQmxvY2ssIHNob3VsZENsZWFyRmlyc3QsIFtw
cm9jZXNzUG9vbCwgY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlS
ZWYoKV0geyB9KTsKICAgICB9CiB9CiAKQEAgLTEzMDEsNyArMTMwMSw3IEBAIHZvaWQgV2Vic2l0
ZURhdGFTdG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmCiAgICAgCiAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IHByb2Nlc3NQ
b29scygpKSB7CiAgICAgICAgIGlmIChhdXRvIG5ldHdvcmtQcm9jZXNzID0gcHJvY2Vzc1Bvb2wt
Pm5ldHdvcmtQcm9jZXNzKCkpCi0gICAgICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+cmVtb3ZlQWxs
U3RvcmFnZUFjY2VzcyhtX3Nlc3Npb25JRCwgW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNr
QWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7CisgICAgICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+
cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhtX3Nlc3Npb25JRCwgW3Byb2Nlc3NQb29sLCBjYWxsYmFj
a0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwogICAgIH0K
IH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>