<?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>211075</bug_id>
          
          <creation_ts>2020-04-27 07:14:39 -0700</creation_ts>
          <short_desc>[Cocoa] Global preferences are not accessible in the WebContent process when CFPrefs direct mode is enabled</short_desc>
          <delta_ts>2020-05-27 12:35:18 -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>REOPENED</bug_status>
          <resolution></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>dbates</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1645987</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-04-27 07:14:39 -0700</bug_when>
    <thetext>Global preferences in the domain &apos;kCFPreferencesAnyApplication&apos; are not readable in the WebContent process when CFPrefs direct mode is enabled. Fix this by transferring a select set of global preferences to the WebContent process on startup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645992</commentid>
    <comment_count>1</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-04-27 07:33:13 -0700</bug_when>
    <thetext>rdar://problem/61866711</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645994</commentid>
    <comment_count>2</comment_count>
      <attachid>397679</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-04-27 07:34:21 -0700</bug_when>
    <thetext>Created attachment 397679
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646026</commentid>
    <comment_count>3</comment_count>
      <attachid>397679</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-04-27 09:06:02 -0700</bug_when>
    <thetext>Comment on attachment 397679
Patch

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

&gt; Source/WebKit/ChangeLog:10
&gt; +        Global preferences in the domain &apos;kCFPreferencesAnyApplication&apos; are not readable in the WebContent process when CFPrefs direct mode
&gt; +        is enabled. Fix this by transferring a select set of global preferences to the WebContent process on startup.

Do we have a sandbox rule already to allow reading global preference files? How about managed preferences?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646032</commentid>
    <comment_count>4</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-04-27 09:09:03 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #3)
&gt; Comment on attachment 397679 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=397679&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:10
&gt; &gt; +        Global preferences in the domain &apos;kCFPreferencesAnyApplication&apos; are not readable in the WebContent process when CFPrefs direct mode
&gt; &gt; +        is enabled. Fix this by transferring a select set of global preferences to the WebContent process on startup.
&gt; 
&gt; Do we have a sandbox rule already to allow reading global preference files?
&gt; How about managed preferences?

Yes, these rules are currently present in the WebContent process&apos; sandbox.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646535</commentid>
    <comment_count>5</comment_count>
      <attachid>397848</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-04-28 09:55:12 -0700</bug_when>
    <thetext>Created attachment 397848
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646549</commentid>
    <comment_count>6</comment_count>
      <attachid>397848</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-04-28 10:19:04 -0700</bug_when>
    <thetext>Comment on attachment 397848
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:481
&gt; +    for (size_t i = 0; i &lt; WTF_ARRAY_LENGTH(keys); ++i) {

I learned from Darin yesterday that in modern C++ (or Objective-C++) we can just do: std::size(keys).

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:489
&gt; +        auto data = retainPtr([NSKeyedArchiver archivedDataWithRootObject:(__bridge NSMutableDictionary *)globalPreferencesDictionary.get() requiringSecureCoding:YES error:&amp;e]);

I suggest logging if we have an error here. These can be the source of difficult problems to track down otherwise! :-)

&gt; Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:182
&gt; +    if (err)

Ditto: I&apos;d log this error so we can find it if something is going wrong. It should be very rare.

&gt; Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:184
&gt; +    for (NSString *key in globalPreferencesDictionary) {

I think you can do:

[globalPreferencesDictionary enumerateKeysAndObjectsUsingBlock: ^(NSString *key, id value, BOOL* stop) {
    if (value)
       CFPreferencesSetAppValue(static_cast&lt;CFStringRef&gt;(key), static_cast&lt;CFPropertyListRef&gt;(value), CFSTR(&quot;kCFPreferencesAnyApplication&quot;));
}];</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646574</commentid>
    <comment_count>7</comment_count>
      <attachid>397860</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-04-28 11:29:39 -0700</bug_when>
    <thetext>Created attachment 397860
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646584</commentid>
    <comment_count>8</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-04-28 11:49:58 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #6)
&gt; Comment on attachment 397848 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=397848&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:481
&gt; &gt; +    for (size_t i = 0; i &lt; WTF_ARRAY_LENGTH(keys); ++i) {
&gt; 
&gt; I learned from Darin yesterday that in modern C++ (or Objective-C++) we can
&gt; just do: std::size(keys).
&gt; 

Fixed.

&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:489
&gt; &gt; +        auto data = retainPtr([NSKeyedArchiver archivedDataWithRootObject:(__bridge NSMutableDictionary *)globalPreferencesDictionary.get() requiringSecureCoding:YES error:&amp;e]);
&gt; 
&gt; I suggest logging if we have an error here. These can be the source of
&gt; difficult problems to track down otherwise! :-)
&gt; 
&gt; &gt; Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:182
&gt; &gt; +    if (err)
&gt; 
&gt; Ditto: I&apos;d log this error so we can find it if something is going wrong. It
&gt; should be very rare.
&gt; 

Done.

&gt; &gt; Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:184
&gt; &gt; +    for (NSString *key in globalPreferencesDictionary) {
&gt; 
&gt; I think you can do:
&gt; 
&gt; [globalPreferencesDictionary enumerateKeysAndObjectsUsingBlock: ^(NSString
&gt; *key, id value, BOOL* stop) {
&gt;     if (value)
&gt;        CFPreferencesSetAppValue(static_cast&lt;CFStringRef&gt;(key),
&gt; static_cast&lt;CFPropertyListRef&gt;(value),
&gt; CFSTR(&quot;kCFPreferencesAnyApplication&quot;));
&gt; }];

That&apos;s much better.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646611</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-28 12:29:12 -0700</bug_when>
    <thetext>Committed r260840: &lt;https://trac.webkit.org/changeset/260840&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397860.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646647</commentid>
    <comment_count>10</comment_count>
      <attachid>397860</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-28 13:12:01 -0700</bug_when>
    <thetext>Comment on attachment 397860
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:479
&gt; +        CFSTR(&quot;AppleLanguages&quot;),
&gt; +        CFSTR(&quot;AppleLanguagesSchemaVersion&quot;),
&gt; +        CFSTR(&quot;AppleLocale&quot;)

Do we need to respond to dynamic changes for any of these?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646651</commentid>
    <comment_count>11</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-04-28 13:20:38 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #10)
&gt; Comment on attachment 397860 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=397860&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:479
&gt; &gt; +        CFSTR(&quot;AppleLanguages&quot;),
&gt; &gt; +        CFSTR(&quot;AppleLanguagesSchemaVersion&quot;),
&gt; &gt; +        CFSTR(&quot;AppleLocale&quot;)
&gt; 
&gt; Do we need to respond to dynamic changes for any of these?

That&apos;s already handled :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646678</commentid>
    <comment_count>12</comment_count>
      <attachid>397848</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-04-28 14:30:03 -0700</bug_when>
    <thetext>Comment on attachment 397848
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:479
&gt; +        CFSTR(&quot;AppleLocale&quot;)

Bug caught my eye because of the title. I don&apos;t know what CFPREFS_DIRECT_MODE is, but if it effects WebKit Internal debug and experimental flags toggled via Settings app then this list is not enough. Would it effect WebKitDebugVisibleDebugOverlayRegions? If it does then that would significantly effect my workflow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646683</commentid>
    <comment_count>13</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-04-28 14:40:47 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #12)
&gt; Comment on attachment 397848 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=397848&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:479
&gt; &gt; +        CFSTR(&quot;AppleLocale&quot;)
&gt; 
&gt; Bug caught my eye because of the title. I don&apos;t know what
&gt; CFPREFS_DIRECT_MODE is, but if it effects WebKit Internal debug and
&gt; experimental flags toggled via Settings app then this list is not enough.
&gt; Would it effect WebKitDebugVisibleDebugOverlayRegions? If it does then that
&gt; would significantly effect my workflow.

In CFPrefs direct mode, preferences are accessed directly through preference files. I don&apos;t think it would affect WebKitDebugVisibleDebugOverlayRegions, etc, but I will have to confirm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656518</commentid>
    <comment_count>14</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-05-27 12:35:18 -0700</bug_when>
    <thetext>Reverted r260840 for reason:

This patch is no longer needed after preferences root cause has been fixed.

Committed r262207: &lt;https://trac.webkit.org/changeset/262207&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397679</attachid>
            <date>2020-04-27 07:34:21 -0700</date>
            <delta_ts>2020-04-28 09:55:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211075-20200427073421.patch</filename>
            <type>text/plain</type>
            <size>9418</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjA2NjkpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDIwLTA0LTI3ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEdsb2JhbCBwcmVm
ZXJlbmNlcyBhcmUgbm90IGFjY2Vzc2libGUgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyB3aGVu
IENGUHJlZnMgZGlyZWN0IG1vZGUgaXMgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDc1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82
MTg2NjcxMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBHbG9iYWwgcHJlZmVyZW5jZXMgaW4gdGhlIGRvbWFpbiAna0NGUHJlZmVyZW5jZXNBbnlBcHBs
aWNhdGlvbicgYXJlIG5vdCByZWFkYWJsZSBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHdoZW4g
Q0ZQcmVmcyBkaXJlY3QgbW9kZQorICAgICAgICBpcyBlbmFibGVkLiBGaXggdGhpcyBieSB0cmFu
c2ZlcnJpbmcgYSBzZWxlY3Qgc2V0IG9mIGdsb2JhbCBwcmVmZXJlbmNlcyB0byB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzIG9uIHN0YXJ0dXAuCisKKyAgICAgICAgQVBJIHRlc3Q6IFdlYktpdC5HbG9i
YWxQcmVmZXJlbmNlcworCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6c2V0R2xvYmFsUHJlZmVyZW5jZXMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKwogMjAyMC0w
NC0yNCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmluZyB3ZWJzaXRlIGRhdGEgZm9yIGEgZG9tYWluIHNob3VsZCBkZWxldGUgY29ycmVz
cG9uZGluZyBJVFAgZW50cnkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNjA2NjkpCisrKyBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTk1LDYgKzE5NSw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZW5jb2QKICAgICBlbmNvZGVyIDw8IG1lZGlhRXh0ZW5zaW9uSGFuZGxlczsKICNp
ZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKICAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2Vz
RXh0ZW5zaW9uSGFuZGxlOworICAgIGVuY29kZXIgPDwgZW5jb2RlZEdsb2JhbFByZWZlcmVuY2Vz
OwogI2VuZGlmCiAjZW5kaWYKIApAQCAtNTQ5LDYgKzU1MCwxMiBAQCBib29sIFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgaWYgKCFwcmVmZXJlbmNlc0V4dGVuc2lvbkhh
bmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHBhcmFtZXRlcnMucHJlZmVyZW5jZXNF
eHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSk7CisK
KyAgICBPcHRpb25hbDxTdHJpbmc+IGVuY29kZWRHbG9iYWxQcmVmZXJlbmNlczsKKyAgICBkZWNv
ZGVyID4+IGVuY29kZWRHbG9iYWxQcmVmZXJlbmNlczsKKyAgICBpZiAoIWVuY29kZWRHbG9iYWxQ
cmVmZXJlbmNlcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMuZW5jb2Rl
ZEdsb2JhbFByZWZlcmVuY2VzID0gV1RGTW92ZSgqZW5jb2RlZEdsb2JhbFByZWZlcmVuY2VzKTsK
ICNlbmRpZgogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI2MDY2OSkKKysrIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBj
b3B5KQpAQCAtMjMyLDYgKzIzMiw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzIHsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBtZWRpYUV4dGVuc2lvbkhh
bmRsZXM7IC8vIEZJWE1FKDIwNzcxNik6IFJlbW92ZSB3aGVuIEdQVSBwcm9jZXNzIGlzIGNvbXBs
ZXRlLgogI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQogICAgIE9wdGlvbmFsPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZT4gcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7CisgICAgU3Ry
aW5nIGVuY29kZWRHbG9iYWxQcmVmZXJlbmNlczsKICNlbmRpZgogI2VuZGlmCiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbQkocmV2aXNpb24gMjYwNjY5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDU0LDEzICs0NTQsMzUg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplVwogICAgICAgICAgICAg
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cChzZXJ2aWNlc1tpXSwg
V1RGOjpudWxsb3B0LCBwYXJhbWV0ZXJzLm1lZGlhRXh0ZW5zaW9uSGFuZGxlc1tpXSk7CiAgICAg
fQogCi0jaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpICYmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBpZiAoX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgewog
ICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5k
bGU7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAo
ImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iLCBXVEY6Om51bGxvcHQsIHByZWZlcmVuY2VzRXh0
ZW5zaW9uSGFuZGxlKTsKICAgICAgICAgcGFyYW1ldGVycy5wcmVmZXJlbmNlc0V4dGVuc2lvbkhh
bmRsZSA9IFdURk1vdmUocHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUpOwogICAgIH0KICNlbmRp
ZgorICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9j
XSBpbml0V2l0aFN1aXRlTmFtZTpAImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iXSk7Cisg
ICAgYXV0byBnbG9iYWxQcmVmZXJlbmNlc0RpY3Rpb25hcnkgPSBhZG9wdE5TKFtbTlNNdXRhYmxl
RGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOworICAgIHN0YXRpYyBOU1N0cmluZyoga2V5c1tdID0g
eworICAgICAgICBAIkFwcGxlTGFuZ3VhZ2VzIiwKKyAgICAgICAgQCJBcHBsZUxhbmd1YWdlc1Nj
aGVtYVZlcnNpb24iLAorICAgICAgICBAIkFwcGxlTG9jYWxlIgorICAgIH07CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpOyArK2kpIHsKKyAgICAgICAg
aWQgdmFsdWUgPSBbdXNlckRlZmF1bHRzIG9iamVjdEZvcktleTprZXlzW2ldXTsKKyAgICAgICAg
aWYgKCF2YWx1ZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBbZ2xvYmFsUHJlZmVy
ZW5jZXNEaWN0aW9uYXJ5IHNldFZhbHVlOnZhbHVlIGZvcktleTprZXlzW2ldXTsKKyAgICB9Cisg
ICAgaWYgKFtnbG9iYWxQcmVmZXJlbmNlc0RpY3Rpb25hcnkgY291bnRdID4gMCkgeworICAgICAg
ICBOU0Vycm9yICplID0gbmlsOworICAgICAgICBhdXRvIGRhdGEgPSByZXRhaW5QdHIoW05TS2V5
ZWRBcmNoaXZlciBhcmNoaXZlZERhdGFXaXRoUm9vdE9iamVjdDpnbG9iYWxQcmVmZXJlbmNlc0Rp
Y3Rpb25hcnkuZ2V0KCkgcmVxdWlyaW5nU2VjdXJlQ29kaW5nOllFUyBlcnJvcjomZV0pOworICAg
ICAgICBBU1NFUlQoIWUpOworICAgICAgICBpZiAoIWUpCisgICAgICAgICAgICBwYXJhbWV0ZXJz
LmVuY29kZWRHbG9iYWxQcmVmZXJlbmNlcyA9IFN0cmluZyhbZGF0YSBiYXNlNjRFbmNvZGVkU3Ry
aW5nV2l0aE9wdGlvbnM6MF0pOworICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkocmV2aXNpb24gMjYwNjY5KQorKysg
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTY2LDYgKzE2NiwzMiBAQCBzdGF0aWMgaWQgTlNBcHBsaWNhdGlvbkFjY2Vz
c2liaWxpdHlGb2N1CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RF
KQorc3RhdGljIHZvaWQgc2V0R2xvYmFsUHJlZmVyZW5jZXMoY29uc3QgU3RyaW5nJiBlbmNvZGVk
R2xvYmFsUHJlZmVyZW5jZXMpCit7CisgICAgaWYgKGVuY29kZWRHbG9iYWxQcmVmZXJlbmNlcy5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gZGVmYXVsdHMgPSBhZG9wdE5T
KFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3VpdGVOYW1lOkAia0NGUHJlZmVyZW5j
ZXNBbnlBcHBsaWNhdGlvbiJdKTsKKyAgICBhdXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05T
RGF0YSBhbGxvY10gaW5pdFdpdGhCYXNlNjRFbmNvZGVkU3RyaW5nOmVuY29kZWRHbG9iYWxQcmVm
ZXJlbmNlcyBvcHRpb25zOjBdKTsKKyAgICBpZiAoIWVuY29kZWREYXRhKQorICAgICAgICByZXR1
cm47CisKKyAgICBOU0Vycm9yICplcnIgPSBuaWw7CisgICAgYXV0byBjbGFzc2VzID0gW05TU2V0
IHNldFdpdGhBcnJheTpAW1tOU1N0cmluZyBjbGFzc10sIFtOU051bWJlciBjbGFzc10sIFtOU0Rh
dGUgY2xhc3NdLCBbTlNEaWN0aW9uYXJ5IGNsYXNzXSwgW05TQXJyYXkgY2xhc3NdLCBbTlNEYXRh
IGNsYXNzXV1dOworICAgIGlkIGdsb2JhbFByZWZlcmVuY2VzRGljdGlvbmFyeSA9IFtOU0tleWVk
VW5hcmNoaXZlciB1bmFyY2hpdmVkT2JqZWN0T2ZDbGFzc2VzOmNsYXNzZXMgZnJvbURhdGE6ZW5j
b2RlZERhdGEuZ2V0KCkgZXJyb3I6JmVycl07CisgICAgQVNTRVJUKCFlcnIpOworICAgIGlmIChl
cnIpCisgICAgICAgIHJldHVybjsKKyAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4gZ2xvYmFsUHJl
ZmVyZW5jZXNEaWN0aW9uYXJ5KSB7CisgICAgICAgIGlkIHZhbHVlID0gZ2xvYmFsUHJlZmVyZW5j
ZXNEaWN0aW9uYXJ5W2tleV07CisgICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgW2RlZmF1bHRzIHNldE9iamVjdDp2YWx1ZSBmb3JLZXk6a2V5XTsKKyAg
ICB9Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAg
Ly8gTWFwIExhdW5jaCBTZXJ2aWNlcyBkYXRhYmFzZS4gVGhpcyBzaG91bGQgYmUgZG9uZSBhcyBl
YXJseSBhcyBwb3NzaWJsZSwgYXMgdGhlIG1hcHBpbmcgd2lsbCBmYWlsCkBAIC0zNDQsNiArMzcw
LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcgogICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMucHJlZmVyZW5j
ZXNFeHRlbnNpb25IYW5kbGUpOwogICAgICAgICBfQ0ZQcmVmc1NldERpcmVjdE1vZGVFbmFibGVk
KGZhbHNlKTsKICAgICB9CisgICAgc2V0R2xvYmFsUHJlZmVyZW5jZXMocGFyYW1ldGVycy5lbmNv
ZGVkR2xvYmFsUHJlZmVyZW5jZXMpOwogI2VuZGlmCiAgICAgICAgIAogICAgIFdlYkNvcmU6OnNs
ZWVwRGlzYWJsZXJDbGllbnQoKSA9IG1ha2VVbmlxdWU8V2ViU2xlZXBEaXNhYmxlckNsaWVudD4o
KTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI2MDc1MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDEzIEBACisyMDIwLTA0LTI3ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxl
LmNvbT4KKworICAgICAgICBbQ29jb2FdIEdsb2JhbCBwcmVmZXJlbmNlcyBhcmUgbm90IGFjY2Vz
c2libGUgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyB3aGVuIENGUHJlZnMgZGlyZWN0IG1vZGUg
aXMgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjExMDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbToKKyAg
ICAgICAgKFRFU1QpOgorCiAyMDIwLTA0LTI3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLNF0gTWFrZSBpdCBwb3NzaWJsZSB0byBidWls
ZCB3aXRoIEdUSzQgd2l0aG91dCBlcnJvcnMKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L1ByZWZlcmVuY2VDaGFuZ2VzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByZWZlcmVuY2VDaGFuZ2VzLm1tCShyZXZpc2lvbiAyNjA2
NjkpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdl
cy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjc2LDQgKzI3NiwzNCBAQCBURVNUKFdlYktpdCwgUHJl
ZmVyZW5jZU9ic2VydmVyU3RhcnRlZE9uCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKIH0KIAorVEVTVChXZWJLaXQsIEdsb2JhbFByZWZlcmVuY2VzKQoreworICAgIE5TU3Ry
aW5nICpnbG9iYWxEb21haW4gPSBAImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iOworICAg
IE5TU3RyaW5nICpnbG9iYWxLZXkgPSBAIkFwcGxlTGFuZ3VhZ2VzIjsKKworICAgIE5TQXJyYXkg
Kmxhbmd1YWdlcyA9IEBbQCJlbi1VUyIsIEAibmItVVMiXTsKKworICAgIGF1dG8gdXNlckRlZmF1
bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpn
bG9iYWxEb21haW5dKTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpsYW5ndWFn
ZXMgZm9yS2V5Omdsb2JhbEtleV07CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFdLUmV0YWluUHRy
PFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3Jl
YXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVU
ZXN0IikpOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgPSAoV0tQcm9jZXNz
UG9vbCAqKWNvbnRleHQuZ2V0KCk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOworCisg
ICAgYXV0byBwcmVmZXJlbmNlVmFsdWUgPSBbJl0geworICAgICAgICBOU1N0cmluZyAqanMgPSBb
TlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFByZWZl
cmVuY2VWYWx1ZShcIiVAXCIsXCIlQFwiKSIsIGdsb2JhbERvbWFpbiwgZ2xvYmFsS2V5XTsKKyAg
ICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOwor
ICAgIH07CisKKyAgICBhdXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJlbmNlVmFsdWUoKTsKKyAg
ICBhdXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCYXNl
NjRFbmNvZGVkU3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9uczowXSk7CisgICAgQVNTRVJUX1RS
VUUoZW5jb2RlZERhdGEpOworICAgIE5TRXJyb3IgKmVyciA9IG5pbDsKKyAgICBhdXRvIG9iamVj
dCA9IHJldGFpblB0cihbTlNLZXllZFVuYXJjaGl2ZXIgdW5hcmNoaXZlZE9iamVjdE9mQ2xhc3M6
W05TT2JqZWN0IGNsYXNzXSBmcm9tRGF0YTplbmNvZGVkRGF0YS5nZXQoKSBlcnJvcjomZXJyXSk7
CisgICAgQVNTRVJUX1RSVUUoIWVycik7CisgICAgQVNTRVJUX1RSVUUob2JqZWN0KTsKKyAgICBB
U1NFUlRfVFJVRShbb2JqZWN0IGlzRXF1YWw6bGFuZ3VhZ2VzXSk7Cit9CisKICNlbmRpZiAvLyBX
S19IQVZFX0NfU1BJCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397848</attachid>
            <date>2020-04-28 09:55:12 -0700</date>
            <delta_ts>2020-04-28 10:19:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211075-20200428095512.patch</filename>
            <type>text/plain</type>
            <size>9745</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjA4MjYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDIwLTA0LTI4ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEdsb2JhbCBwcmVm
ZXJlbmNlcyBhcmUgbm90IGFjY2Vzc2libGUgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyB3aGVu
IENGUHJlZnMgZGlyZWN0IG1vZGUgaXMgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDc1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82
MTg2NjcxMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBHbG9iYWwgcHJlZmVyZW5jZXMgaW4gdGhlIGRvbWFpbiAna0NGUHJlZmVyZW5jZXNBbnlBcHBs
aWNhdGlvbicgYXJlIG5vdCByZWFkYWJsZSBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHdoZW4g
Q0ZQcmVmcyBkaXJlY3QgbW9kZQorICAgICAgICBpcyBlbmFibGVkLiBGaXggdGhpcyBieSB0cmFu
c2ZlcnJpbmcgYSBzZWxlY3Qgc2V0IG9mIGdsb2JhbCBwcmVmZXJlbmNlcyB0byB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzIG9uIHN0YXJ0dXAuCisKKyAgICAgICAgQVBJIHRlc3Q6IFdlYktpdC5HbG9i
YWxQcmVmZXJlbmNlcworCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6c2V0R2xvYmFsUHJlZmVyZW5jZXMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKwogMjAyMC0w
NC0yOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10g
TWFya2VkIHRleHQgZWRpdG9yIHN0YXRlIG9ubHkgbmVlZHMgdG8gYmUgc2V0IHdoZW4gbGF5b3V0
IGlzIHVwLXRvLWRhdGUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNjA4MjYpCisrKyBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTk0LDYgKzE5NCw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2QKICAgICBlbmNvZGVyIDw8IG1lZGlhRXh0ZW5zaW9uSGFuZGxlczsKICNpZiBF
TkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKICAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzRXh0
ZW5zaW9uSGFuZGxlczsKKyAgICBlbmNvZGVyIDw8IGVuY29kZWRHbG9iYWxQcmVmZXJlbmNlczsK
ICNlbmRpZgogI2VuZGlmCiAKQEAgLTU0Miw2ICs1NDMsMTIgQEAgYm9vbCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZAogICAgIGlmICghcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5k
bGVzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcGFyYW1ldGVycy5wcmVmZXJlbmNlc0V4
dGVuc2lvbkhhbmRsZXMgPSBXVEZNb3ZlKCpwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZXMpOwor
CisgICAgT3B0aW9uYWw8U3RyaW5nPiBlbmNvZGVkR2xvYmFsUHJlZmVyZW5jZXM7CisgICAgZGVj
b2RlciA+PiBlbmNvZGVkR2xvYmFsUHJlZmVyZW5jZXM7CisgICAgaWYgKCFlbmNvZGVkR2xvYmFs
UHJlZmVyZW5jZXMpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBwYXJhbWV0ZXJzLmVuY29k
ZWRHbG9iYWxQcmVmZXJlbmNlcyA9IFdURk1vdmUoKmVuY29kZWRHbG9iYWxQcmVmZXJlbmNlcyk7
CiAjZW5kaWYKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyNjA4MjYpCisrKyBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIzMSw2ICsyMzEsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyB7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgbWVkaWFFeHRlbnNpb25I
YW5kbGVzOyAvLyBGSVhNRSgyMDc3MTYpOiBSZW1vdmUgd2hlbiBHUFUgcHJvY2VzcyBpcyBjb21w
bGV0ZS4KICNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKICAgICBPcHRpb25hbDxTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheT4gcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGVzOwor
ICAgIFN0cmluZyBlbmNvZGVkR2xvYmFsUHJlZmVyZW5jZXM7CiAjZW5kaWYKICNlbmRpZgogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0JKHJldmlzaW9uIDI2MDgyNikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1Miw3ICs0
NTIsOCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAgICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKHNlcnZpY2Vz
W2ldLCBXVEY6Om51bGxvcHQsIHBhcmFtZXRlcnMubWVkaWFFeHRlbnNpb25IYW5kbGVzW2ldKTsK
ICAgICB9CiAKLSNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkgJiYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIGlmIChfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KSB7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IHByZWZlcmVuY2VzRXh0
ZW5zaW9uSGFuZGxlczsKICAgICAgICAgCkBAIC00NzAsNiArNDcxLDI3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICAgICAgICAgcGFyYW1ldGVycy5wcmVmZXJl
bmNlc0V4dGVuc2lvbkhhbmRsZXMgPSBXVEZNb3ZlKHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxl
cyk7CiAgICAgfQogI2VuZGlmCisKKyAgICBhdXRvIGdsb2JhbFByZWZlcmVuY2VzRGljdGlvbmFy
eSA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAwLCBudWxscHRyLCBudWxscHRyKSk7CisgICAgc3RhdGljIENGU3RyaW5nUmVmIGtleXNbXSA9
IHsKKyAgICAgICAgQ0ZTVFIoIkFwcGxlTGFuZ3VhZ2VzIiksCisgICAgICAgIENGU1RSKCJBcHBs
ZUxhbmd1YWdlc1NjaGVtYVZlcnNpb24iKSwKKyAgICAgICAgQ0ZTVFIoIkFwcGxlTG9jYWxlIikK
KyAgICB9OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChrZXlz
KTsgKytpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5
QXBwVmFsdWUoa2V5c1tpXSwgQ0ZTVFIoImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iKSkp
OworICAgICAgICBpZiAoIXZhbHVlKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIENG
RGljdGlvbmFyeUFkZFZhbHVlKGdsb2JhbFByZWZlcmVuY2VzRGljdGlvbmFyeS5nZXQoKSwga2V5
c1tpXSwgdmFsdWUuZ2V0KCkpOworICAgIH0KKyAgICBpZiAoQ0ZEaWN0aW9uYXJ5R2V0Q291bnQo
Z2xvYmFsUHJlZmVyZW5jZXNEaWN0aW9uYXJ5LmdldCgpKSA+IDApIHsKKyAgICAgICAgTlNFcnJv
ciAqZSA9IG5pbDsKKyAgICAgICAgYXV0byBkYXRhID0gcmV0YWluUHRyKFtOU0tleWVkQXJjaGl2
ZXIgYXJjaGl2ZWREYXRhV2l0aFJvb3RPYmplY3Q6KF9fYnJpZGdlIE5TTXV0YWJsZURpY3Rpb25h
cnkgKilnbG9iYWxQcmVmZXJlbmNlc0RpY3Rpb25hcnkuZ2V0KCkgcmVxdWlyaW5nU2VjdXJlQ29k
aW5nOllFUyBlcnJvcjomZV0pOworICAgICAgICBBU1NFUlQoIWUpOworICAgICAgICBpZiAoIWUp
CisgICAgICAgICAgICBwYXJhbWV0ZXJzLmVuY29kZWRHbG9iYWxQcmVmZXJlbmNlcyA9IFN0cmlu
ZyhbZGF0YSBiYXNlNjRFbmNvZGVkU3RyaW5nV2l0aE9wdGlvbnM6MF0pOworICAgIH0KKyNlbmRp
ZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJv
Y2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQkocmV2aXNpb24gMjYwODI2KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTY1LDggKzE2NSwzNyBAQCBzdGF0
aWMgaWQgTlNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlGb2N1CiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorc3RhdGljIHZvaWQgc2V0R2xvYmFsUHJlZmVyZW5j
ZXMoY29uc3QgU3RyaW5nJiBlbmNvZGVkR2xvYmFsUHJlZmVyZW5jZXMpCit7CisgICAgaWYgKGVu
Y29kZWRHbG9iYWxQcmVmZXJlbmNlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8gZW5jb2RlZERhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJhc2U2
NEVuY29kZWRTdHJpbmc6ZW5jb2RlZEdsb2JhbFByZWZlcmVuY2VzIG9wdGlvbnM6MF0pOworICAg
IGlmICghZW5jb2RlZERhdGEpCisgICAgICAgIHJldHVybjsKKworICAgIE5TRXJyb3IgKmVyciA9
IG5pbDsKKyAgICBhdXRvIGNsYXNzZXMgPSBbTlNTZXQgc2V0V2l0aEFycmF5OkBbW05TU3RyaW5n
IGNsYXNzXSwgW05TTnVtYmVyIGNsYXNzXSwgW05TRGF0ZSBjbGFzc10sIFtOU0RpY3Rpb25hcnkg
Y2xhc3NdLCBbTlNBcnJheSBjbGFzc10sIFtOU0RhdGEgY2xhc3NdXV07CisgICAgaWQgZ2xvYmFs
UHJlZmVyZW5jZXNEaWN0aW9uYXJ5ID0gW05TS2V5ZWRVbmFyY2hpdmVyIHVuYXJjaGl2ZWRPYmpl
Y3RPZkNsYXNzZXM6Y2xhc3NlcyBmcm9tRGF0YTplbmNvZGVkRGF0YS5nZXQoKSBlcnJvcjomZXJy
XTsKKyAgICBBU1NFUlQoIWVycik7CisgICAgaWYgKGVycikKKyAgICAgICAgcmV0dXJuOworICAg
IGZvciAoTlNTdHJpbmcgKmtleSBpbiBnbG9iYWxQcmVmZXJlbmNlc0RpY3Rpb25hcnkpIHsKKyAg
ICAgICAgaWQgdmFsdWUgPSBnbG9iYWxQcmVmZXJlbmNlc0RpY3Rpb25hcnlba2V5XTsKKyAgICAg
ICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBDRlByZWZlcmVu
Y2VzU2V0QXBwVmFsdWUoc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KGtleSksIHN0YXRpY19jYXN0
PENGUHJvcGVydHlMaXN0UmVmPih2YWx1ZSksIENGU1RSKCJrQ0ZQcmVmZXJlbmNlc0FueUFwcGxp
Y2F0aW9uIikpOworICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycykKIHsKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyAgICBzZXRHbG9iYWxQ
cmVmZXJlbmNlcyhwYXJhbWV0ZXJzLmVuY29kZWRHbG9iYWxQcmVmZXJlbmNlcyk7CisjZW5kaWYK
KwogICAgIC8vIE1hcCBMYXVuY2ggU2VydmljZXMgZGF0YWJhc2UuIFRoaXMgc2hvdWxkIGJlIGRv
bmUgYXMgZWFybHkgYXMgcG9zc2libGUsIGFzIHRoZSBtYXBwaW5nIHdpbGwgZmFpbAogICAgIC8v
IGlmICdjb20uYXBwbGUubHNkLm1hcGRiJyBpcyBiZWluZyBhY2Nlc3NlZCBiZWZvcmUgdGhpcy4K
ICAgICBpZiAocGFyYW1ldGVycy5tYXBEQkV4dGVuc2lvbkhhbmRsZSkgewpAQCAtMTc5LDcgKzIw
OCw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKICAgICAgICAg
QVNTRVJUX1VOVVNFRChvaywgb2spOwogICAgIH0KIAotCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICAgICBpZiAocGFyYW1ldGVycy5ydW5uaW5nYm9hcmRFeHRlbnNpb25IYW5kbGUpIHsKICAg
ICAgICAgYXV0byBleHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZSgq
cGFyYW1ldGVycy5ydW5uaW5nYm9hcmRFeHRlbnNpb25IYW5kbGUpKTsKSW5kZXg6IFRvb2xzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MDgyNikK
KysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDIw
LTA0LTI4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBb
Q29jb2FdIEdsb2JhbCBwcmVmZXJlbmNlcyBhcmUgbm90IGFjY2Vzc2libGUgaW4gdGhlIFdlYkNv
bnRlbnQgcHJvY2VzcyB3aGVuIENGUHJlZnMgZGlyZWN0IG1vZGUgaXMgZW5hYmxlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDc1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbToKKyAgICAgICAgKFRFU1QpOgorCiAy
MDIwLTA0LTI4ICBDbGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0xpbnV4XSBSZXBsYWNlIC0tZ2VvbWV0cnkgd2l0aCAtLWZ1bGxzY3JlZW4gd2hlbiB1
c2luZyBNaW5pQnJvd3NlciBmb3IgV2ViRHJpdmVyIHRlc3RzCkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbQkocmV2
aXNpb24gMjYwODI2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVy
ZW5jZUNoYW5nZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI3Niw0ICsyNzYsMzYgQEAgVEVTVChX
ZWJLaXQsIFByZWZlcmVuY2VPYnNlcnZlclN0YXJ0ZWRPbgogICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CiB9CiAKK1RFU1QoV2ViS2l0LCBHbG9iYWxQcmVmZXJlbmNlcykKK3sK
KyAgICBOU1N0cmluZyAqZ2xvYmFsRG9tYWluID0gQCJrQ0ZQcmVmZXJlbmNlc0FueUFwcGxpY2F0
aW9uIjsKKyAgICBOU1N0cmluZyAqZ2xvYmFsS2V5ID0gQCJBcHBsZUxhbmd1YWdlcyI7CisKKyAg
ICBOU0FycmF5ICpsYW5ndWFnZXMgPSBAW0AiZW4tVVMiLCBAIm5iLVVTIl07CisKKyAgICBDRlBy
ZWZlcmVuY2VzU2V0QXBwVmFsdWUoc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KGdsb2JhbEtleSks
IHN0YXRpY19jYXN0PENGQXJyYXlSZWY+KGxhbmd1YWdlcyksIHN0YXRpY19jYXN0PENGU3RyaW5n
UmVmPihnbG9iYWxEb21haW4pKTsKKworICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhb
W05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpnbG9iYWxEb21haW5dKTsK
KyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpsYW5ndWFnZXMgZm9yS2V5Omdsb2Jh
bEtleV07CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4g
Y29udGV4dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvcklu
amVjdGVkQnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOworICAgIGNv
bmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgPSAoV0tQcm9jZXNzUG9vbCAqKWNvbnRleHQu
Z2V0KCk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOworCisgICAgYXV0byBwcmVmZXJl
bmNlVmFsdWUgPSBbJl0geworICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFByZWZlcmVuY2VWYWx1ZShcIiVA
XCIsXCIlQFwiKSIsIGdsb2JhbERvbWFpbiwgZ2xvYmFsS2V5XTsKKyAgICAgICAgcmV0dXJuIFt3
ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOworICAgIH07CisKKyAgICBh
dXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJlbmNlVmFsdWUoKTsKKyAgICBhdXRvIGVuY29kZWRE
YXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCYXNlNjRFbmNvZGVkU3RyaW5n
OmVuY29kZWRTdHJpbmcgb3B0aW9uczowXSk7CisgICAgQVNTRVJUX1RSVUUoZW5jb2RlZERhdGEp
OworICAgIE5TRXJyb3IgKmVyciA9IG5pbDsKKyAgICBhdXRvIG9iamVjdCA9IHJldGFpblB0cihb
TlNLZXllZFVuYXJjaGl2ZXIgdW5hcmNoaXZlZE9iamVjdE9mQ2xhc3M6W05TT2JqZWN0IGNsYXNz
XSBmcm9tRGF0YTplbmNvZGVkRGF0YS5nZXQoKSBlcnJvcjomZXJyXSk7CisgICAgQVNTRVJUX1RS
VUUoIWVycik7CisgICAgQVNTRVJUX1RSVUUob2JqZWN0KTsKKyAgICBBU1NFUlRfVFJVRShbb2Jq
ZWN0IGlzRXF1YWw6bGFuZ3VhZ2VzXSk7Cit9CisKICNlbmRpZiAvLyBXS19IQVZFX0NfU1BJCg==
</data>
<flag name="review"
          id="413214"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397860</attachid>
            <date>2020-04-28 11:29:39 -0700</date>
            <delta_ts>2020-04-28 12:29:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211075-20200428112938.patch</filename>
            <type>text/plain</type>
            <size>9968</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjA4MjYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDIwLTA0LTI4ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEdsb2JhbCBwcmVm
ZXJlbmNlcyBhcmUgbm90IGFjY2Vzc2libGUgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyB3aGVu
IENGUHJlZnMgZGlyZWN0IG1vZGUgaXMgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDc1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82
MTg2NjcxMT4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAg
IEdsb2JhbCBwcmVmZXJlbmNlcyBpbiB0aGUgZG9tYWluICdrQ0ZQcmVmZXJlbmNlc0FueUFwcGxp
Y2F0aW9uJyBhcmUgbm90IHJlYWRhYmxlIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3Mgd2hlbiBD
RlByZWZzIGRpcmVjdCBtb2RlCisgICAgICAgIGlzIGVuYWJsZWQuIEZpeCB0aGlzIGJ5IHRyYW5z
ZmVycmluZyBhIHNlbGVjdCBzZXQgb2YgZ2xvYmFsIHByZWZlcmVuY2VzIHRvIHRoZSBXZWJDb250
ZW50IHByb2Nlc3Mgb24gc3RhcnR1cC4KKworICAgICAgICBBUEkgdGVzdDogV2ViS2l0Lkdsb2Jh
bFByZWZlcmVuY2VzCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
OgorICAgICAgICAoV2ViS2l0OjpzZXRHbG9iYWxQcmVmZXJlbmNlcyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTA0
LTI4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBN
YXJrZWQgdGV4dCBlZGl0b3Igc3RhdGUgb25seSBuZWVkcyB0byBiZSBzZXQgd2hlbiBsYXlvdXQg
aXMgdXAtdG8tZGF0ZQpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDI2MDgyNikKKysrIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xOTQsNiArMTk0LDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZAogICAgIGVuY29kZXIgPDwgbWVkaWFFeHRlbnNpb25IYW5kbGVzOwogI2lmIEVO
QUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQogICAgIGVuY29kZXIgPDwgcHJlZmVyZW5jZXNFeHRl
bnNpb25IYW5kbGVzOworICAgIGVuY29kZXIgPDwgZW5jb2RlZEdsb2JhbFByZWZlcmVuY2VzOwog
I2VuZGlmCiAjZW5kaWYKIApAQCAtNTQyLDYgKzU0MywxMiBAQCBib29sIFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgaWYgKCFwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRs
ZXMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0
ZW5zaW9uSGFuZGxlcyA9IFdURk1vdmUoKnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlcyk7CisK
KyAgICBPcHRpb25hbDxTdHJpbmc+IGVuY29kZWRHbG9iYWxQcmVmZXJlbmNlczsKKyAgICBkZWNv
ZGVyID4+IGVuY29kZWRHbG9iYWxQcmVmZXJlbmNlczsKKyAgICBpZiAoIWVuY29kZWRHbG9iYWxQ
cmVmZXJlbmNlcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMuZW5jb2Rl
ZEdsb2JhbFByZWZlcmVuY2VzID0gV1RGTW92ZSgqZW5jb2RlZEdsb2JhbFByZWZlcmVuY2VzKTsK
ICNlbmRpZgogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI2MDgyNikKKysrIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBj
b3B5KQpAQCAtMjMxLDYgKzIzMSw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzIHsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBtZWRpYUV4dGVuc2lvbkhh
bmRsZXM7IC8vIEZJWE1FKDIwNzcxNik6IFJlbW92ZSB3aGVuIEdQVSBwcm9jZXNzIGlzIGNvbXBs
ZXRlLgogI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQogICAgIE9wdGlvbmFsPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZUFycmF5PiBwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZXM7Cisg
ICAgU3RyaW5nIGVuY29kZWRHbG9iYWxQcmVmZXJlbmNlczsKICNlbmRpZgogI2VuZGlmCiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbQkocmV2aXNpb24gMjYwODI2KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDUyLDcgKzQ1
Miw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICAgICAgICAg
ICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoc2VydmljZXNb
aV0sIFdURjo6bnVsbG9wdCwgcGFyYW1ldGVycy5tZWRpYUV4dGVuc2lvbkhhbmRsZXNbaV0pOwog
ICAgIH0KIAotI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKSAmJiBQTEFURk9STShJT1Nf
RkFNSUxZKQorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgaWYgKF9BWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
IHsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgcHJlZmVyZW5jZXNFeHRl
bnNpb25IYW5kbGVzOwogICAgICAgICAKQEAgLTQ3MCw2ICs0NzEsMjkgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplVwogICAgICAgICBwYXJhbWV0ZXJzLnByZWZlcmVu
Y2VzRXh0ZW5zaW9uSGFuZGxlcyA9IFdURk1vdmUocHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGVz
KTsKICAgICB9CiAjZW5kaWYKKworICAgIGF1dG8gZ2xvYmFsUHJlZmVyZW5jZXNEaWN0aW9uYXJ5
ID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IDAsIG51bGxwdHIsIG51bGxwdHIpKTsKKyAgICBzdGF0aWMgQ0ZTdHJpbmdSZWYga2V5c1tdID0g
eworICAgICAgICBDRlNUUigiQXBwbGVMYW5ndWFnZXMiKSwKKyAgICAgICAgQ0ZTVFIoIkFwcGxl
TGFuZ3VhZ2VzU2NoZW1hVmVyc2lvbiIpLAorICAgICAgICBDRlNUUigiQXBwbGVMb2NhbGUiKQor
ICAgIH07CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGQ6OnNpemUoa2V5cyk7ICsraSkg
eworICAgICAgICBhdXRvIHZhbHVlID0gYWRvcHRDRihDRlByZWZlcmVuY2VzQ29weUFwcFZhbHVl
KGtleXNbaV0sIENGU1RSKCJrQ0ZQcmVmZXJlbmNlc0FueUFwcGxpY2F0aW9uIikpKTsKKyAgICAg
ICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBDRkRpY3Rpb25h
cnlBZGRWYWx1ZShnbG9iYWxQcmVmZXJlbmNlc0RpY3Rpb25hcnkuZ2V0KCksIGtleXNbaV0sIHZh
bHVlLmdldCgpKTsKKyAgICB9CisgICAgaWYgKENGRGljdGlvbmFyeUdldENvdW50KGdsb2JhbFBy
ZWZlcmVuY2VzRGljdGlvbmFyeS5nZXQoKSkgPiAwKSB7CisgICAgICAgIE5TRXJyb3IgKmUgPSBu
aWw7CisgICAgICAgIGF1dG8gZGF0YSA9IHJldGFpblB0cihbTlNLZXllZEFyY2hpdmVyIGFyY2hp
dmVkRGF0YVdpdGhSb290T2JqZWN0OihfX2JyaWRnZSBOU011dGFibGVEaWN0aW9uYXJ5ICopZ2xv
YmFsUHJlZmVyZW5jZXNEaWN0aW9uYXJ5LmdldCgpIHJlcXVpcmluZ1NlY3VyZUNvZGluZzpZRVMg
ZXJyb3I6JmVdKTsKKyAgICAgICAgaWYgKGUpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJGYWlsZWQgdG8gYXJjaGl2ZSBnbG9i
YWwgcHJlZmVyZW5jZXMgZGljdGlvbmFyeSB3aXRoIE5TS2V5ZWRBcmNoaXZlci4iKTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICBwYXJhbWV0ZXJzLmVuY29kZWRHbG9iYWxQcmVmZXJlbmNl
cyA9IFN0cmluZyhbZGF0YSBiYXNlNjRFbmNvZGVkU3RyaW5nV2l0aE9wdGlvbnM6MF0pOworICAg
IH0KKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVO
ZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQkocmV2aXNpb24gMjYwODI2KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTY1LDggKzE2NSwz
NyBAQCBzdGF0aWMgaWQgTlNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlGb2N1CiB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorc3RhdGljIHZvaWQgc2V0R2xvYmFs
UHJlZmVyZW5jZXMoY29uc3QgU3RyaW5nJiBlbmNvZGVkR2xvYmFsUHJlZmVyZW5jZXMpCit7Cisg
ICAgaWYgKGVuY29kZWRHbG9iYWxQcmVmZXJlbmNlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8gZW5jb2RlZERhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0
V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6ZW5jb2RlZEdsb2JhbFByZWZlcmVuY2VzIG9wdGlvbnM6
MF0pOworICAgIGlmICghZW5jb2RlZERhdGEpCisgICAgICAgIHJldHVybjsKKworICAgIE5TRXJy
b3IgKmVyciA9IG5pbDsKKyAgICBhdXRvIGNsYXNzZXMgPSBbTlNTZXQgc2V0V2l0aEFycmF5OkBb
W05TU3RyaW5nIGNsYXNzXSwgW05TTnVtYmVyIGNsYXNzXSwgW05TRGF0ZSBjbGFzc10sIFtOU0Rp
Y3Rpb25hcnkgY2xhc3NdLCBbTlNBcnJheSBjbGFzc10sIFtOU0RhdGEgY2xhc3NdXV07CisgICAg
aWQgZ2xvYmFsUHJlZmVyZW5jZXNEaWN0aW9uYXJ5ID0gW05TS2V5ZWRVbmFyY2hpdmVyIHVuYXJj
aGl2ZWRPYmplY3RPZkNsYXNzZXM6Y2xhc3NlcyBmcm9tRGF0YTplbmNvZGVkRGF0YS5nZXQoKSBl
cnJvcjomZXJyXTsKKyAgICBpZiAoZXJyKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byB1bmFyY2hpdmUgZ2xvYmFsIHByZWZl
cmVuY2VzIGRpY3Rpb25hcnkgd2l0aCBOU0tleWVkVW5hcmNoaXZlci4iKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBbZ2xvYmFsUHJlZmVyZW5jZXNEaWN0aW9uYXJ5IGVudW1lcmF0ZUtl
eXNBbmRPYmplY3RzVXNpbmdCbG9jazogXihOU1N0cmluZyAqa2V5LCBpZCB2YWx1ZSwgQk9PTCog
c3RvcCkgeworICAgICAgICBpZiAodmFsdWUpCisgICAgICAgICAgICBDRlByZWZlcmVuY2VzU2V0
QXBwVmFsdWUoc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KGtleSksIHN0YXRpY19jYXN0PENGUHJv
cGVydHlMaXN0UmVmPih2YWx1ZSksIENGU1RSKCJrQ0ZQcmVmZXJlbmNlc0FueUFwcGxpY2F0aW9u
IikpOworICAgIH1dOworfQorI2VuZGlmCisKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQogeworI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorICAgIHNldEdsb2JhbFByZWZl
cmVuY2VzKHBhcmFtZXRlcnMuZW5jb2RlZEdsb2JhbFByZWZlcmVuY2VzKTsKKyNlbmRpZgorCiAg
ICAgLy8gTWFwIExhdW5jaCBTZXJ2aWNlcyBkYXRhYmFzZS4gVGhpcyBzaG91bGQgYmUgZG9uZSBh
cyBlYXJseSBhcyBwb3NzaWJsZSwgYXMgdGhlIG1hcHBpbmcgd2lsbCBmYWlsCiAgICAgLy8gaWYg
J2NvbS5hcHBsZS5sc2QubWFwZGInIGlzIGJlaW5nIGFjY2Vzc2VkIGJlZm9yZSB0aGlzLgogICAg
IGlmIChwYXJhbWV0ZXJzLm1hcERCRXh0ZW5zaW9uSGFuZGxlKSB7CkBAIC0xNzksNyArMjA4LDYg
QEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcgogICAgICAgICBBU1NF
UlRfVU5VU0VEKG9rLCBvayk7CiAgICAgfQogCi0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIGlmIChwYXJhbWV0ZXJzLnJ1bm5pbmdib2FyZEV4dGVuc2lvbkhhbmRsZSkgewogICAgICAg
ICBhdXRvIGV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKCpwYXJh
bWV0ZXJzLnJ1bm5pbmdib2FyZEV4dGVuc2lvbkhhbmRsZSkpOwpJbmRleDogVG9vbHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjYwODI2KQorKysg
VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDQt
MjggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2Nv
YV0gR2xvYmFsIHByZWZlcmVuY2VzIGFyZSBub3QgYWNjZXNzaWJsZSBpbiB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHdoZW4gQ0ZQcmVmcyBkaXJlY3QgbW9kZSBpcyBlbmFibGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNzUKKworICAgICAgICBS
ZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMubW06CisgICAgICAgIChURVNUKToKKwogMjAyMC0w
NC0yOCAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtMaW51eF0gUmVwbGFjZSAtLWdlb21ldHJ5IHdpdGggLS1mdWxsc2NyZWVuIHdoZW4gdXNpbmcg
TWluaUJyb3dzZXIgZm9yIFdlYkRyaXZlciB0ZXN0cwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMubW0JKHJldmlzaW9u
IDI2MDgyNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByZWZlcmVuY2VD
aGFuZ2VzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNzYsNCArMjc2LDM2IEBAIFRFU1QoV2ViS2l0
LCBQcmVmZXJlbmNlT2JzZXJ2ZXJTdGFydGVkT24KICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOwogfQogCitURVNUKFdlYktpdCwgR2xvYmFsUHJlZmVyZW5jZXMpCit7CisgICAg
TlNTdHJpbmcgKmdsb2JhbERvbWFpbiA9IEAia0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiI7
CisgICAgTlNTdHJpbmcgKmdsb2JhbEtleSA9IEAiQXBwbGVMYW5ndWFnZXMiOworCisgICAgTlNB
cnJheSAqbGFuZ3VhZ2VzID0gQFtAImVuLVVTIiwgQCJuYi1VUyJdOworCisgICAgQ0ZQcmVmZXJl
bmNlc1NldEFwcFZhbHVlKHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihnbG9iYWxLZXkpLCBzdGF0
aWNfY2FzdDxDRkFycmF5UmVmPihsYW5ndWFnZXMpLCBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4o
Z2xvYmFsRG9tYWluKSk7CisKKyAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1Vz
ZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6Z2xvYmFsRG9tYWluXSk7CisgICAg
W3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6bGFuZ3VhZ2VzIGZvcktleTpnbG9iYWxLZXld
OworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRl
eHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3Rl
ZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKKyAgICBjb25maWd1
cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgp
OworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKworICAgIGF1dG8gcHJlZmVyZW5jZVZh
bHVlID0gWyZdIHsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCIlQFwiLFwi
JUBcIikiLCBnbG9iYWxEb21haW4sIGdsb2JhbEtleV07CisgICAgICAgIHJldHVybiBbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OmpzXTsKKyAgICB9OworCisgICAgYXV0byBl
bmNvZGVkU3RyaW5nID0gcHJlZmVyZW5jZVZhbHVlKCk7CisgICAgYXV0byBlbmNvZGVkRGF0YSA9
IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzplbmNv
ZGVkU3RyaW5nIG9wdGlvbnM6MF0pOworICAgIEFTU0VSVF9UUlVFKGVuY29kZWREYXRhKTsKKyAg
ICBOU0Vycm9yICplcnIgPSBuaWw7CisgICAgYXV0byBvYmplY3QgPSByZXRhaW5QdHIoW05TS2V5
ZWRVbmFyY2hpdmVyIHVuYXJjaGl2ZWRPYmplY3RPZkNsYXNzOltOU09iamVjdCBjbGFzc10gZnJv
bURhdGE6ZW5jb2RlZERhdGEuZ2V0KCkgZXJyb3I6JmVycl0pOworICAgIEFTU0VSVF9UUlVFKCFl
cnIpOworICAgIEFTU0VSVF9UUlVFKG9iamVjdCk7CisgICAgQVNTRVJUX1RSVUUoW29iamVjdCBp
c0VxdWFsOmxhbmd1YWdlc10pOworfQorCiAjZW5kaWYgLy8gV0tfSEFWRV9DX1NQSQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>