<?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>211739</bug_id>
          
          <creation_ts>2020-05-11 12:55:23 -0700</creation_ts>
          <short_desc>[iOS] Rebuild MobileGestalt cache if needed</short_desc>
          <delta_ts>2020-05-12 16:00:55 -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>WebKit Misc.</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="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1651390</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-05-11 12:55:23 -0700</bug_when>
    <thetext>Rebuild the MobileGestalt cache in the UI process if the MobileGestalt cache is stale. This should be done before starting a new WebContent process. If the cache is not rebuilt, every MobileGestalt query in the WebContent process will fail, since access to the daemon is denied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651402</commentid>
    <comment_count>1</comment_count>
      <attachid>399047</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-05-11 13:13:35 -0700</bug_when>
    <thetext>Created attachment 399047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651404</commentid>
    <comment_count>2</comment_count>
      <attachid>399047</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-11 13:21:50 -0700</bug_when>
    <thetext>Comment on attachment 399047
Patch

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

&gt; Source/WebCore/PAL/pal/spi/ios/MobileGestaltSPI.h:84
&gt; +bool _MGCacheValid();

Need to include &lt;MobileGestalt/MobileGestaltPrivate.h&gt; in this header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651412</commentid>
    <comment_count>3</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-05-11 13:38:39 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 399047 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399047&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/PAL/pal/spi/ios/MobileGestaltSPI.h:84
&gt; &gt; +bool _MGCacheValid();
&gt; 
&gt; Need to include &lt;MobileGestalt/MobileGestaltPrivate.h&gt; in this header.

I added the include, but it seems the file does not exist in the SDK.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651415</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-11 13:41:44 -0700</bug_when>
    <thetext>(In reply to Per Arne Vollan from comment #3)
&gt; I added the include, but it seems the file does not exist in the SDK.

I guess despite its name it’s an &quot;internal&quot; header not a &quot;private&quot; SPI one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651420</commentid>
    <comment_count>5</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-05-11 13:50:14 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; (In reply to Per Arne Vollan from comment #3)
&gt; &gt; I added the include, but it seems the file does not exist in the SDK.
&gt; 
&gt; I guess despite its name it’s an &quot;internal&quot; header not a &quot;private&quot; SPI one.

Ah, I see!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651434</commentid>
    <comment_count>6</comment_count>
      <attachid>399047</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-05-11 13:59:41 -0700</bug_when>
    <thetext>Comment on attachment 399047
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:123
&gt; +SOFT_LINK_LIBRARY(libMobileGestalt)

How does the call to _MGCacheValid() work if the library is soft-linked? Don&apos;t we need to hard link to make the call?

(What&apos;s our goal in soft linking here?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651457</commentid>
    <comment_count>7</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-05-11 14:31:19 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #6)
&gt; Comment on attachment 399047 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399047&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:123
&gt; &gt; +SOFT_LINK_LIBRARY(libMobileGestalt)
&gt; 
&gt; How does the call to _MGCacheValid() work if the library is soft-linked?
&gt; Don&apos;t we need to hard link to make the call?
&gt; 
&gt; (What&apos;s our goal in soft linking here?)

Ah, that&apos;s a good point. _MGCacheValid() should be soft-linked as well, so that embedding apps don&apos;t need to hard link to MobileGestalt. I will update the patch.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651459</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-05-11 14:36:42 -0700</bug_when>
    <thetext>But we&apos;re going to call it right away, right? What&apos;s the point of soft linking?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651468</commentid>
    <comment_count>9</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-05-11 14:50:09 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #8)
&gt; But we&apos;re going to call it right away, right? What&apos;s the point of soft
&gt; linking?

Yes, so in that sense, soft-linking is not strictly needed, although I had to add soft-linking to fix a link error where the MobileGestaltHelperProxy class was undefined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651471</commentid>
    <comment_count>10</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-05-11 14:56:54 -0700</bug_when>
    <thetext>(In reply to Per Arne Vollan from comment #9)
&gt; (In reply to Geoffrey Garen from comment #8)
&gt; &gt; But we&apos;re going to call it right away, right? What&apos;s the point of soft
&gt; &gt; linking?
&gt; 
&gt; Yes, so in that sense, soft-linking is not strictly needed, although I had
&gt; to add soft-linking to fix a link error where the MobileGestaltHelperProxy
&gt; class was undefined.

For performance reasons, maybe it makes sense to not soft-link _MGCacheValid, but only MobileGestaltHelperProxy? Then the library will only be dynamically loaded if the cache is not valid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651475</commentid>
    <comment_count>11</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-05-11 15:13:49 -0700</bug_when>
    <thetext>&gt; For performance reasons, maybe it makes sense to not soft-link
&gt; _MGCacheValid, but only MobileGestaltHelperProxy? Then the library will only
&gt; be dynamically loaded if the cache is not valid.

That sounds reasonable, if they&apos;re separate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651505</commentid>
    <comment_count>12</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-05-11 16:10:51 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #11)
&gt; &gt; For performance reasons, maybe it makes sense to not soft-link
&gt; &gt; _MGCacheValid, but only MobileGestaltHelperProxy? Then the library will only
&gt; &gt; be dynamically loaded if the cache is not valid.
&gt; 
&gt; That sounds reasonable, if they&apos;re separate.

Ok, sounds good! Keeping patch as-is, then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651521</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-11 16:40:02 -0700</bug_when>
    <thetext>(In reply to Per Arne Vollan from comment #10)
&gt; For performance reasons, maybe it makes sense to not soft-link
&gt; _MGCacheValid, but only MobileGestaltHelperProxy? Then the library will only
&gt; be dynamically loaded if the cache is not valid.

Wait, what? That’s not how I understand linking.

If we link to a framework, there’s no point in also &quot;soft linking&quot; the framework.

If we &quot;soft link&quot; to a framework, we can’t just call a function in the framework. The build of our framework will fail..

What am I missing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651742</commentid>
    <comment_count>14</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-05-12 08:47:08 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #13)
&gt; (In reply to Per Arne Vollan from comment #10)
&gt; &gt; For performance reasons, maybe it makes sense to not soft-link
&gt; &gt; _MGCacheValid, but only MobileGestaltHelperProxy? Then the library will only
&gt; &gt; be dynamically loaded if the cache is not valid.
&gt; 
&gt; Wait, what? That’s not how I understand linking.
&gt; 
&gt; If we link to a framework, there’s no point in also &quot;soft linking&quot; the
&gt; framework.
&gt; 

In this case, even if we already link to libMobileGestalt, we have to soft-link the class MobileGestaltHelperProxy, since it is not exported by the dynamic library libMobileGestalt.

&gt; If we &quot;soft link&quot; to a framework, we can’t just call a function in the
&gt; framework. The build of our framework will fail..
&gt; 
&gt; What am I missing?

You are right. Both symbols _MGCacheValid and MobileGestaltHelperProxy are in the same dynamic library libMobileGestalt, so it probably does not make much sense to only soft-link MobileGestaltHelperProxy. If the dynamic library has not been loaded by the time _MGCacheValid is called, it has to be loaded then, regardless of linking method. So there is probably no performance benefit in keeping _MGCacheValid hard-linked. The class MobileGestaltHelperProxy has to be soft-linked, since it is not exported by the library. I will update the patch to soft-link both symbols.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651745</commentid>
    <comment_count>15</comment_count>
      <attachid>399129</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-05-12 08:52:10 -0700</bug_when>
    <thetext>Created attachment 399129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651804</commentid>
    <comment_count>16</comment_count>
      <attachid>399129</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-12 10:43:17 -0700</bug_when>
    <thetext>Comment on attachment 399129
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:125
&gt; +SOFT_LINK_LIBRARY(libMobileGestalt)
&gt; +SOFT_LINK_CLASS(libMobileGestalt, MobileGestaltHelperProxy);
&gt; +SOFT_LINK(libMobileGestalt, _MGCacheValid, bool, (), ());

I just noticed that both the WebCore and WebKitLegacy frameworks already link to MobileGestalt (WK_MOBILE_GESTALT_LDFLAGS). So even after all this conversation, I am not sure that it’s super-valuable to do soft linking instead for the WebKit framework.

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:129
&gt; +@interface MobileGestaltHelperProxy : NSObject
&gt; +- (BOOL) proxyRebuildCache;
&gt; +@end

Best practice is to put this in MobileGestaltSPI.h header in PAL instead of here.

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:494
&gt; +        auto proxy = adoptNS([allocMobileGestaltHelperProxyInstance() init]);
&gt; +        [proxy proxyRebuildCache];

Could even consider doing this as a one-liner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651809</commentid>
    <comment_count>17</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-05-12 10:49:07 -0700</bug_when>
    <thetext>&gt; If the dynamic
&gt; library has not been loaded by the time _MGCacheValid is called, it has to
&gt; be loaded then, regardless of linking method. So there is probably no
&gt; performance benefit in keeping _MGCacheValid hard-linked.

In general, the performance benefit of hard linking (and weak linking), as compared to soft linking, is that the linkage can be computed ahead of time, so you don&apos;t pay a linkage cost at application startup.

If we soft link libMobileGestalt, we will pay the cost of running the linker (dlopen + dlsym + other linker overhead) the first time the app makes a WKWebView.

&gt; The class
&gt; MobileGestaltHelperProxy has to be soft-linked, since it is not exported by
&gt; the library. I will update the patch to soft-link both symbols.

Can you clarify &quot;not exported&quot;? Does that just mean not declared in a header? Generally, if an SPI symbol is not declared in a header, we declare it ourselves and then invoke it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651851</commentid>
    <comment_count>18</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-05-12 12:21:12 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #16)
&gt; Comment on attachment 399129 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399129&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:125
&gt; &gt; +SOFT_LINK_LIBRARY(libMobileGestalt)
&gt; &gt; +SOFT_LINK_CLASS(libMobileGestalt, MobileGestaltHelperProxy);
&gt; &gt; +SOFT_LINK(libMobileGestalt, _MGCacheValid, bool, (), ());
&gt; 
&gt; I just noticed that both the WebCore and WebKitLegacy frameworks already
&gt; link to MobileGestalt (WK_MOBILE_GESTALT_LDFLAGS). So even after all this
&gt; conversation, I am not sure that it’s super-valuable to do soft linking
&gt; instead for the WebKit framework.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:129
&gt; &gt; +@interface MobileGestaltHelperProxy : NSObject
&gt; &gt; +- (BOOL) proxyRebuildCache;
&gt; &gt; +@end
&gt; 
&gt; Best practice is to put this in MobileGestaltSPI.h header in PAL instead of
&gt; here.
&gt; 

Good point! Will do.

&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:494
&gt; &gt; +        auto proxy = adoptNS([allocMobileGestaltHelperProxyInstance() init]);
&gt; &gt; +        [proxy proxyRebuildCache];
&gt; 
&gt; Could even consider doing this as a one-liner.

Will fix.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651854</commentid>
    <comment_count>19</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-05-12 12:25:42 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #17)
&gt; &gt; If the dynamic
&gt; &gt; library has not been loaded by the time _MGCacheValid is called, it has to
&gt; &gt; be loaded then, regardless of linking method. So there is probably no
&gt; &gt; performance benefit in keeping _MGCacheValid hard-linked.
&gt; 
&gt; In general, the performance benefit of hard linking (and weak linking), as
&gt; compared to soft linking, is that the linkage can be computed ahead of time,
&gt; so you don&apos;t pay a linkage cost at application startup.
&gt; 
&gt; If we soft link libMobileGestalt, we will pay the cost of running the linker
&gt; (dlopen + dlsym + other linker overhead) the first time the app makes a
&gt; WKWebView.
&gt; 

Do you think not soft-linking _MGCacheValid would be faster than soft-linking in this case, even if the dynamic library is already loaded? If so, there might still be a performance benefit of not soft-linking _MGCacheValid, but only MobileGestaltHelperProxy.

Would you prefer to not soft link _MGCacheValid (just MobileGestaltHelperProxy)?

&gt; &gt; The class
&gt; &gt; MobileGestaltHelperProxy has to be soft-linked, since it is not exported by
&gt; &gt; the library. I will update the patch to soft-link both symbols.
&gt; 
&gt; Can you clarify &quot;not exported&quot;? Does that just mean not declared in a
&gt; header? Generally, if an SPI symbol is not declared in a header, we declare
&gt; it ourselves and then invoke it.

By &apos;not exported&apos;, I mean that the symbol is not visible to apps which are hard-linking the library. In Xcode, I think that .tbd files are used by the linker to determine which symbols are available in a dylib, but I could be mistaken. The symbol MobileGestaltHelperProxy is not present in the MobileGestalt .tbd file, which means it has to be soft-linked, while _MGCacheValid is present in the .tbd file, and does not need to be soft-linked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651863</commentid>
    <comment_count>20</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-12 12:32:23 -0700</bug_when>
    <thetext>(In reply to Per Arne Vollan from comment #19)
&gt; Do you think not soft-linking _MGCacheValid would be faster than
&gt; soft-linking in this case, even if the dynamic library is already loaded?

Yes. Normal linking is always faster than soft linking.

I finally understand now what&apos;s going on. Dynamically getting a non-exported internal class like MobileGestaltHelperProxy isn’t really &quot;soft linking&quot; and I think it might be better to not use the soft linking macros. Just use NSClassFromString, objc_lookUpClass, or objc_getClass directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651868</commentid>
    <comment_count>21</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-05-12 12:39:49 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #20)
&gt; (In reply to Per Arne Vollan from comment #19)
&gt; &gt; Do you think not soft-linking _MGCacheValid would be faster than
&gt; &gt; soft-linking in this case, even if the dynamic library is already loaded?
&gt; 
&gt; Yes. Normal linking is always faster than soft linking.
&gt; 
&gt; I finally understand now what&apos;s going on. Dynamically getting a non-exported
&gt; internal class like MobileGestaltHelperProxy isn’t really &quot;soft linking&quot; and
&gt; I think it might be better to not use the soft linking macros. Just use
&gt; NSClassFromString, objc_lookUpClass, or objc_getClass directly.

Ah, I see! Will change.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651891</commentid>
    <comment_count>22</comment_count>
      <attachid>399163</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-05-12 13:23:50 -0700</bug_when>
    <thetext>Created attachment 399163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651997</commentid>
    <comment_count>23</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-12 15:59:51 -0700</bug_when>
    <thetext>Committed r261584: &lt;https://trac.webkit.org/changeset/261584&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399163.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651999</commentid>
    <comment_count>24</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-12 16:00:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/63158277&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399047</attachid>
            <date>2020-05-11 13:13:35 -0700</date>
            <delta_ts>2020-05-12 08:52:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211739-20200511131335.patch</filename>
            <type>text/plain</type>
            <size>3702</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwkocmV2aXNpb24gMjYxNDkxKQorKysgU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA1
LTExICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9T
XSBSZWJ1aWxkIE1vYmlsZUdlc3RhbHQgY2FjaGUgaWYgbmVlZGVkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE3MzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgU1BJIHRvIGNoZWNrIGlmIE1vYmls
ZUdlc3RhbHQgY2FjaGUgaXMgdmFsaWQuCisKKyAgICAgICAgKiBwYWwvc3BpL2lvcy9Nb2JpbGVH
ZXN0YWx0U1BJLmg6CisKIDIwMjAtMDUtMTEgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBtZWNoYW5pc20gdG8gdHVybiBvbiBhY2Nlc3NpYmls
aXR5IGlzb2xhdGVkIHRyZWUgbW9kZSBmcm9tIFdlYktpdFRlc3RSdW5uZXIuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvTW9iaWxlR2VzdGFsdFNQSS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9Nb2JpbGVHZXN0YWx0U1BJLmgJKHJl
dmlzaW9uIDI2MTQ3OCkKKysrIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9Nb2JpbGVH
ZXN0YWx0U1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTgxLDYgKzgxLDggQEAgU0ludDMyIE1HR2V0
U0ludDMyQW5zd2VyKENGU3RyaW5nUmVmIHF1ZQogRmxvYXQzMiBNR0dldEZsb2F0MzJBbnN3ZXIo
Q0ZTdHJpbmdSZWYgcXVlc3Rpb24sIEZsb2F0MzIgZGVmYXVsdFZhbHVlKTsKICNlbmRpZgogCiti
b29sIF9NR0NhY2hlVmFsaWQoKTsKKwogV1RGX0VYVEVSTl9DX0VORAogCiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjE0ODUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA1LTExICBQZXIgQXJuZSBWb2xsYW4g
IDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBSZWJ1aWxkIE1vYmlsZUdlc3Rh
bHQgY2FjaGUgaWYgbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTE3MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIHBhdGNoIHdhcyB3cml0dGVuIGJ5IEdlb2ZmIEdhcmVuIGFuZCBteXNl
bGYuIFJlYnVpbGQgdGhlIE1vYmlsZUdlc3RhbHQgY2FjaGUgaW4gdGhlIFVJIHByb2Nlc3MgaWYg
dGhlCisgICAgICAgIE1vYmlsZUdlc3RhbHQgY2FjaGUgaXMgc3RhbGUuIFRoaXMgc2hvdWxkIGJl
IGRvbmUgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IFdlYkNvbnRlbnQgcHJvY2Vzcy4gSWYgdGhlIGNh
Y2hlCisgICAgICAgIGlzIG5vdCByZWJ1aWx0LCBldmVyeSBNb2JpbGVHZXN0YWx0IHF1ZXJ5IGlu
IHRoZSBXZWJDb250ZW50IHByb2Nlc3Mgd2lsbCBmYWlsLCBzaW5jZSBhY2Nlc3MgdG8gdGhlIGRh
ZW1vbgorICAgICAgICBpcyBkZW5pZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBzaW5jZSB0
ZXN0aW5nIHRoaXMgaXMgbm90IHRyaXZpYWwuIEl0IHdvdWxkIGludm9sdmUgZGVsZXRpbmcgdGhl
IE1vYmlsZUdlc3RhbHQgY2FjaGUgYW5kCisgICAgICAgIG1ha2luZyBzdXJlIGl0IGlzIHJlYnVp
bHQgYWZ0ZXJ3YXJkcy4gVGhpcyBjb3VsZCBiZSBhbiBBUEkgdGVzdCwgYnV0IEFQSSB0ZXN0cyBh
cmUgbm90IHN1cHBvcnRlZCBvbiBpT1MKKyAgICAgICAgZGV2aWNlcy4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjAtMDUt
MTEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjI1MzI2Nyk6IGlzc3VlcyBvbiB0b3VjaHN0YXJ0L3RvdWNoZW5kL3RvdWNobW92
ZSAocG9pbnRlcmRvd24vcG9pbnRlcnVwL3BvaW50ZXJtb3ZlKSBldmVudHMKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bQkocmV2aXNpb24gMjYxNDc5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTE5LDYgKzExOSwxNSBAQCBT
T0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoQmFja0JvYXJkU2VyCiBTT0ZUX0xJTksoQmFja0Jv
YXJkU2VydmljZXMsIEJLU0Rpc3BsYXlCcmlnaHRuZXNzR2V0Q3VycmVudCwgZmxvYXQsICgpLCAo
KSk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCitTT0ZUX0xJTktfTElCUkFS
WShsaWJNb2JpbGVHZXN0YWx0KQorU09GVF9MSU5LX0NMQVNTKGxpYk1vYmlsZUdlc3RhbHQsIE1v
YmlsZUdlc3RhbHRIZWxwZXJQcm94eSk7CisKK0BpbnRlcmZhY2UgTW9iaWxlR2VzdGFsdEhlbHBl
clByb3h5IDogTlNPYmplY3QKKy0gKEJPT0wpIHByb3h5UmVidWlsZENhY2hlOworQGVuZAorI2Vu
ZGlmCisKICNkZWZpbmUgV0VCUFJPQ0VTU1BPT0xfUkVMRUFTRV9MT0coY2hhbm5lbCwgZm10LCAu
Li4pIFJFTEVBU0VfTE9HKGNoYW5uZWwsICIlcCAtIFdlYlByb2Nlc3NQb29sOjoiIGZtdCwgdGhp
cywgIyNfX1ZBX0FSR1NfXykKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00NzcsNiArNDg2LDEz
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICAgICAgICAgICAg
IHBhcmFtZXRlcnMuZW5jb2RlZEdsb2JhbFByZWZlcmVuY2VzID0gU3RyaW5nKFtkYXRhIGJhc2U2
NEVuY29kZWRTdHJpbmdXaXRoT3B0aW9uczowXSk7CiAgICAgfQogI2VuZGlmCisKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorICAgIGlmICghX01HQ2FjaGVWYWxpZCgpKSB7CisgICAgICAgIGF1
dG8gcHJveHkgPSBhZG9wdE5TKFthbGxvY01vYmlsZUdlc3RhbHRIZWxwZXJQcm94eUluc3RhbmNl
KCkgaW5pdF0pOworICAgICAgICBbcHJveHkgcHJveHlSZWJ1aWxkQ2FjaGVdOworICAgIH0KKyNl
bmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3Jr
UHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399129</attachid>
            <date>2020-05-12 08:52:10 -0700</date>
            <delta_ts>2020-05-12 10:43:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211739-20200512085209.patch</filename>
            <type>text/plain</type>
            <size>2591</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjE1MDApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA1LTExICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBSZWJ1aWxkIE1vYmls
ZUdlc3RhbHQgY2FjaGUgaWYgbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTE3MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHdhcyB3cml0dGVuIGJ5IEdlb2ZmIEdhcmVuIGFu
ZCBteXNlbGYuIFJlYnVpbGQgdGhlIE1vYmlsZUdlc3RhbHQgY2FjaGUgaW4gdGhlIFVJIHByb2Nl
c3MgaWYgdGhlCisgICAgICAgIE1vYmlsZUdlc3RhbHQgY2FjaGUgaXMgc3RhbGUuIFRoaXMgc2hv
dWxkIGJlIGRvbmUgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IFdlYkNvbnRlbnQgcHJvY2Vzcy4gSWYg
dGhlIGNhY2hlCisgICAgICAgIGlzIG5vdCByZWJ1aWx0LCBldmVyeSBNb2JpbGVHZXN0YWx0IHF1
ZXJ5IGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3Mgd2lsbCBmYWlsLCBzaW5jZSBhY2Nlc3MgdG8g
dGhlIGRhZW1vbgorICAgICAgICBpcyBkZW5pZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBz
aW5jZSB0ZXN0aW5nIHRoaXMgaXMgbm90IHRyaXZpYWwuIEl0IHdvdWxkIGludm9sdmUgZGVsZXRp
bmcgdGhlIE1vYmlsZUdlc3RhbHQgY2FjaGUgYW5kCisgICAgICAgIG1ha2luZyBzdXJlIGl0IGlz
IHJlYnVpbHQgYWZ0ZXJ3YXJkcy4gVGhpcyBjb3VsZCBiZSBhbiBBUEkgdGVzdCwgYnV0IEFQSSB0
ZXN0cyBhcmUgbm90IHN1cHBvcnRlZCBvbiBpT1MKKyAgICAgICAgZGV2aWNlcy4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIw
MjAtMDUtMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIHNvbWUgdW5uZWNlc3NhcnkgaW5kaXJlY3Rpb24gd2hlbiBnZXR0aW5nIERvY3Vt
ZW504oCZcyBFZGl0b3IKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjYxNTAwKQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBj
b3B5KQpAQCAtMTE5LDYgKzExOSwxNiBAQCBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoQmFj
a0JvYXJkU2VyCiBTT0ZUX0xJTksoQmFja0JvYXJkU2VydmljZXMsIEJLU0Rpc3BsYXlCcmlnaHRu
ZXNzR2V0Q3VycmVudCwgZmxvYXQsICgpLCAoKSk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCitTT0ZUX0xJTktfTElCUkFSWShsaWJNb2JpbGVHZXN0YWx0KQorU09GVF9MSU5L
X0NMQVNTKGxpYk1vYmlsZUdlc3RhbHQsIE1vYmlsZUdlc3RhbHRIZWxwZXJQcm94eSk7CitTT0ZU
X0xJTksobGliTW9iaWxlR2VzdGFsdCwgX01HQ2FjaGVWYWxpZCwgYm9vbCwgKCksICgpKTsKKwor
QGludGVyZmFjZSBNb2JpbGVHZXN0YWx0SGVscGVyUHJveHkgOiBOU09iamVjdAorLSAoQk9PTCkg
cHJveHlSZWJ1aWxkQ2FjaGU7CitAZW5kCisjZW5kaWYKKwogI2RlZmluZSBXRUJQUk9DRVNTUE9P
TF9SRUxFQVNFX0xPRyhjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0coY2hhbm5lbCwgIiVw
IC0gV2ViUHJvY2Vzc1Bvb2w6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTQ3Nyw2ICs0ODcsMTMgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1Jbml0aWFsaXplVwogICAgICAgICAgICAgcGFyYW1ldGVycy5lbmNvZGVkR2xvYmFsUHJl
ZmVyZW5jZXMgPSBTdHJpbmcoW2RhdGEgYmFzZTY0RW5jb2RlZFN0cmluZ1dpdGhPcHRpb25zOjBd
KTsKICAgICB9CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKCFf
TUdDYWNoZVZhbGlkKCkpIHsKKyAgICAgICAgYXV0byBwcm94eSA9IGFkb3B0TlMoW2FsbG9jTW9i
aWxlR2VzdGFsdEhlbHBlclByb3h5SW5zdGFuY2UoKSBpbml0XSk7CisgICAgICAgIFtwcm94eSBw
cm94eVJlYnVpbGRDYWNoZV07CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQo=
</data>
<flag name="review"
          id="414548"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399163</attachid>
            <date>2020-05-12 13:23:50 -0700</date>
            <delta_ts>2020-05-12 15:59:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211739-20200512132349.patch</filename>
            <type>text/plain</type>
            <size>3403</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwkocmV2aXNpb24gMjYxNTAwKQorKysgU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA1
LTEyICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9T
XSBSZWJ1aWxkIE1vYmlsZUdlc3RhbHQgY2FjaGUgaWYgbmVlZGVkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE3MzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBBZGQgU1BJIHRvIGNoZWNrIGlmIE1vYmlsZUdl
c3RhbHQgY2FjaGUgaXMgdmFsaWQsIGFuZCBkZWNsYXJlIE1vYmlsZUdlc3RhbHRIZWxwZXJQcm94
eSBjbGFzcy4KKworICAgICAgICAqIHBhbC9zcGkvaW9zL01vYmlsZUdlc3RhbHRTUEkuaDoKKwog
MjAyMC0wNS0xMSAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIG1lY2hhbmlzbSB0byB0dXJuIG9uIGFjY2Vzc2liaWxpdHkgaXNvbGF0ZWQgdHJl
ZSBtb2RlIGZyb20gV2ViS2l0VGVzdFJ1bm5lci4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2lvcy9Nb2JpbGVHZXN0YWx0U1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvaW9zL01vYmlsZUdlc3RhbHRTUEkuaAkocmV2aXNpb24gMjYxNTU5KQor
KysgU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL01vYmlsZUdlc3RhbHRTUEkuaAkod29y
a2luZyBjb3B5KQpAQCAtNjUsNiArNjUsMTIgQEAgdHlwZWRlZiBlbnVtIHsKIAogI2VuZGlmCiAK
KyNpZmRlZiBfX09CSkNfXworQGludGVyZmFjZSBNb2JpbGVHZXN0YWx0SGVscGVyUHJveHkgOiBO
U09iamVjdAorLSAoQk9PTCkgcHJveHlSZWJ1aWxkQ2FjaGU7CitAZW5kCisjZW5kaWYKKwogV1RG
X0VYVEVSTl9DX0JFR0lOCiAKIENGVHlwZVJlZiBNR0NvcHlBbnN3ZXIoQ0ZTdHJpbmdSZWYgcXVl
c3Rpb24sIENGRGljdGlvbmFyeVJlZiBvcHRpb25zKTsKQEAgLTgxLDYgKzg3LDggQEAgU0ludDMy
IE1HR2V0U0ludDMyQW5zd2VyKENGU3RyaW5nUmVmIHF1ZQogRmxvYXQzMiBNR0dldEZsb2F0MzJB
bnN3ZXIoQ0ZTdHJpbmdSZWYgcXVlc3Rpb24sIEZsb2F0MzIgZGVmYXVsdFZhbHVlKTsKICNlbmRp
ZgogCitib29sIF9NR0NhY2hlVmFsaWQoKTsKKwogV1RGX0VYVEVSTl9DX0VORAogCiAjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjE1NzIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA1LTEyICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBSZWJ1aWxkIE1vYmls
ZUdlc3RhbHQgY2FjaGUgaWYgbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTE3MzkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBUaGlzIHBhdGNoIHdhcyB3cml0dGVuIGJ5IEdlb2ZmIEdhcmVuIGFuZCBt
eXNlbGYuIFJlYnVpbGQgdGhlIE1vYmlsZUdlc3RhbHQgY2FjaGUgaW4gdGhlIFVJIHByb2Nlc3Mg
aWYgdGhlCisgICAgICAgIE1vYmlsZUdlc3RhbHQgY2FjaGUgaXMgc3RhbGUuIFRoaXMgc2hvdWxk
IGJlIGRvbmUgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IFdlYkNvbnRlbnQgcHJvY2Vzcy4gSWYgdGhl
IGNhY2hlCisgICAgICAgIGlzIG5vdCByZWJ1aWx0LCBldmVyeSBNb2JpbGVHZXN0YWx0IHF1ZXJ5
IGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3Mgd2lsbCBmYWlsLCBzaW5jZSBhY2Nlc3MgdG8gdGhl
IGRhZW1vbgorICAgICAgICBpcyBkZW5pZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBzaW5j
ZSB0ZXN0aW5nIHRoaXMgaXMgbm90IHRyaXZpYWwuIEl0IHdvdWxkIGludm9sdmUgZGVsZXRpbmcg
dGhlIE1vYmlsZUdlc3RhbHQgY2FjaGUgYW5kCisgICAgICAgIG1ha2luZyBzdXJlIGl0IGlzIHJl
YnVpbHQgYWZ0ZXJ3YXJkcy4gVGhpcyBjb3VsZCBiZSBhbiBBUEkgdGVzdCwgYnV0IEFQSSB0ZXN0
cyBhcmUgbm90IHN1cHBvcnRlZCBvbiBpT1MKKyAgICAgICAgZGV2aWNlcy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjAt
MDUtMTIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHVEtdIFJld29yayBkcmFnIGFuZCBkcm9wIGhhbmRsaW5nIGluIHByZXBhcmF0aW9uIGZv
ciBHVEs0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQb29sQ29jb2EubW0JKHJldmlzaW9uIDI2MTU1OSkKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAg
LTQ3Nyw2ICs0NzcsMTEgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
VwogICAgICAgICAgICAgcGFyYW1ldGVycy5lbmNvZGVkR2xvYmFsUHJlZmVyZW5jZXMgPSBTdHJp
bmcoW2RhdGEgYmFzZTY0RW5jb2RlZFN0cmluZ1dpdGhPcHRpb25zOjBdKTsKICAgICB9CiAjZW5k
aWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKCFfTUdDYWNoZVZhbGlkKCkp
CisgICAgICAgIFthZG9wdE5TKFtbb2JqY19nZXRDbGFzcygiTW9iaWxlR2VzdGFsdEhlbHBlclBy
b3h5IikgYWxsb2NdIGluaXRdKSBwcm94eVJlYnVpbGRDYWNoZV07CisjZW5kaWYKIH0KIAogdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>