<?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>212783</bug_id>
          
          <creation_ts>2020-06-04 14:44:22 -0700</creation_ts>
          <short_desc>[Cocoa] CFPrefs synchronization does not always work for global preference changes</short_desc>
          <delta_ts>2020-06-10 14:21:49 -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>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1659333</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-06-04 14:44:22 -0700</bug_when>
    <thetext>In CFPrefs direct mode, synchronization of global preference changes from the UI process to the WebContent process does not always work. This is caused by the KVO notification being sent to the incorrect NSUserDefault object, which leads us to believe a non-global preference was changed. Since a global preference change always leads to some NSUserDefaults object receiving the notification, we can work around this by checking if the preference being changed really belongs to the domain of the NSUserDefaults object, or if it is a global preference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659335</commentid>
    <comment_count>1</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-06-04 14:44:59 -0700</bug_when>
    <thetext>rdar://problem/63862153</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659344</commentid>
    <comment_count>2</comment_count>
      <attachid>401078</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-06-04 15:03:25 -0700</bug_when>
    <thetext>Created attachment 401078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659346</commentid>
    <comment_count>3</comment_count>
      <attachid>401078</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-06-04 15:07:48 -0700</bug_when>
    <thetext>Comment on attachment 401078
Patch

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        This is caused by the KVO notification being sent to the incorrect NSUserDefault object, which leads us to believe a non-global preference

It&apos;s not incorrect! Global changes affect all domains. We&apos;re just inferring too much :D

&gt; Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:923
&gt; +        if (domain.isEmpty())

I think you need to merge this with my change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659354</commentid>
    <comment_count>4</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-06-04 15:18:00 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #3)
&gt; Comment on attachment 401078 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=401078&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:9
&gt; &gt; +        This is caused by the KVO notification being sent to the incorrect NSUserDefault object, which leads us to believe a non-global preference
&gt; 
&gt; It&apos;s not incorrect! Global changes affect all domains. We&apos;re just inferring
&gt; too much :D
&gt; 

Right :)

&gt; &gt; Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:923
&gt; &gt; +        if (domain.isEmpty())
&gt; 
&gt; I think you need to merge this with my change.

Ah, yes, this needs a rebase.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659810</commentid>
    <comment_count>5</comment_count>
      <attachid>401203</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-06-05 14:58:30 -0700</bug_when>
    <thetext>Created attachment 401203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660234</commentid>
    <comment_count>6</comment_count>
      <attachid>401343</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-06-08 09:10:18 -0700</bug_when>
    <thetext>Created attachment 401343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660258</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-08 10:40:30 -0700</bug_when>
    <thetext>Committed r262724: &lt;https://trac.webkit.org/changeset/262724&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401343.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661232</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-06-10 11:04:57 -0700</bug_when>
    <thetext>*** Bug 212627 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661246</commentid>
    <comment_count>9</comment_count>
      <attachid>401203</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-10 11:26:21 -0700</bug_when>
    <thetext>Comment on attachment 401203
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/PreferenceObserver.mm:72
&gt; +        if (!m_observer)
&gt; +            return;

Don’t we want &quot;continue&quot; here instead of return? If we want return, then why not do this outside the loop?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661358</commentid>
    <comment_count>10</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-06-10 14:21:49 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; Comment on attachment 401203 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=401203&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/PreferenceObserver.mm:72
&gt; &gt; +        if (!m_observer)
&gt; &gt; +            return;
&gt; 
&gt; Don’t we want &quot;continue&quot; here instead of return? If we want return, then why
&gt; not do this outside the loop?

You&apos;re right! This check should be moved outside the loop.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401078</attachid>
            <date>2020-06-04 15:03:25 -0700</date>
            <delta_ts>2020-06-05 14:58:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212783-20200604150324.patch</filename>
            <type>text/plain</type>
            <size>13728</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjIzODApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA2LTA0ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIENGUHJlZnMgc3lu
Y2hyb25pemF0aW9uIGRvZXMgbm90IGFsd2F5cyB3b3JrIGZvciBnbG9iYWwgcHJlZmVyZW5jZSBj
aGFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTI3ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
biBDRlByZWZzIGRpcmVjdCBtb2RlLCBzeW5jaHJvbml6YXRpb24gb2YgZ2xvYmFsIHByZWZlcmVu
Y2UgY2hhbmdlcyBmcm9tIHRoZSBVSSBwcm9jZXNzIHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3Mg
ZG9lcyBub3QgYWx3YXlzIHdvcmsuCisgICAgICAgIFRoaXMgaXMgY2F1c2VkIGJ5IHRoZSBLVk8g
bm90aWZpY2F0aW9uIGJlaW5nIHNlbnQgdG8gdGhlIGluY29ycmVjdCBOU1VzZXJEZWZhdWx0IG9i
amVjdCwgd2hpY2ggbGVhZHMgdXMgdG8gYmVsaWV2ZSBhIG5vbi1nbG9iYWwgcHJlZmVyZW5jZQor
ICAgICAgICB3YXMgY2hhbmdlZC4gU2luY2UgYSBnbG9iYWwgcHJlZmVyZW5jZSBjaGFuZ2UgYWx3
YXlzIGxlYWRzIHRvIHNvbWUgTlNVc2VyRGVmYXVsdHMgb2JqZWN0IHJlY2VpdmluZyB0aGUgbm90
aWZpY2F0aW9uLCB3ZSBjYW4gd29yayBhcm91bmQKKyAgICAgICAgdGhpcyBieSBjaGVja2luZyBp
ZiB0aGUgcHJlZmVyZW5jZSBiZWluZyBjaGFuZ2VkIHJlYWxseSBiZWxvbmdzIHRvIHRoZSBkb21h
aW4gb2YgdGhlIE5TVXNlckRlZmF1bHRzIG9iamVjdCwgb3IgaWYgaXQgaXMgYSBnbG9iYWwgcHJl
ZmVyZW5jZS4KKworICAgICAgICBBUEkgdGVzdHM6IFdlYktpdC5HbG9iYWxQcmVmZXJlbmNlQ2hh
bmdlcyBhbmQgV2ViS2l0Lkdsb2JhbFByZWZlcmVuY2VDaGFuZ2VzVXNpbmdEZWZhdWx0c1dyaXRl
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLm1tOgorICAg
ICAgICAoLVtXS1VzZXJEZWZhdWx0cyBfbm90aWZ5T2JzZXJ2ZXJzT2ZDaGFuZ2VGcm9tVmFsdWVz
Rm9yS2V5czp0b1ZhbHVlc0ZvcktleXM6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpub3Rp
ZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgorCiAyMDIwLTA2LTAxICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxVUkUgKHIyMjA5MzEpOiAhbV9m
dW5jdGlvbiBpbiB+Q29tcGxldGlvbkhhbmRsZXIoKSBhZnRlciBzd2l0Y2ggdGFicwpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZl
ci5tbQkocmV2aXNpb24gMjYyMzgwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
UHJlZmVyZW5jZU9ic2VydmVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCwxNiBAQCAt
ICh2b2lkKV9ub3RpZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21WYWx1CiAgICAgICAgICAgICBlbmNv
ZGVkU3RyaW5nID0gW2RhdGEgYmFzZTY0RW5jb2RlZFN0cmluZ1dpdGhPcHRpb25zOjBdOwogICAg
ICAgICB9CiAKLSAgICAgICAgaWYgKG1fb2JzZXJ2ZXIpCisgICAgICAgIGlmICghbV9vYnNlcnZl
cikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIGF1dG8gZ2xvYmFsVmFs
dWUgPSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5VmFsdWUoKF9fYnJpZGdlIENGU3RyaW5nUmVm
KWtleSwga0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiwga0NGUHJlZmVyZW5jZXNDdXJyZW50
VXNlciwga0NGUHJlZmVyZW5jZXNBbnlIb3N0KSk7CisgICAgICAgIGF1dG8gZG9tYWluVmFsdWUg
PSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5VmFsdWUoKF9fYnJpZGdlIENGU3RyaW5nUmVmKWtl
eSwgKF9fYnJpZGdlIENGU3RyaW5nUmVmKW1fc3VpdGVOYW1lLCBrQ0ZQcmVmZXJlbmNlc0N1cnJl
bnRVc2VyLCBrQ0ZQcmVmZXJlbmNlc0FueUhvc3QpKTsKKyAgICAgICAgCisgICAgICAgIGlmIChn
bG9iYWxWYWx1ZSAmJiBbbmV3VmFsdWUgaXNFcXVhbDooX19icmlkZ2UgaWQpZ2xvYmFsVmFsdWUu
Z2V0KCldKQorICAgICAgICAgICAgW21fb2JzZXJ2ZXIgcHJlZmVyZW5jZURpZENoYW5nZTpuaWwg
a2V5OmtleSBlbmNvZGVkVmFsdWU6ZW5jb2RlZFN0cmluZ107CisKKyAgICAgICAgaWYgKGRvbWFp
blZhbHVlICYmIFtuZXdWYWx1ZSBpc0VxdWFsOihfX2JyaWRnZSBpZClkb21haW5WYWx1ZS5nZXQo
KV0pCiAgICAgICAgICAgICBbbV9vYnNlcnZlciBwcmVmZXJlbmNlRGlkQ2hhbmdlOm1fc3VpdGVO
YW1lIGtleTprZXkgZW5jb2RlZFZhbHVlOmVuY29kZWRTdHJpbmddOwogICAgIH0KIH0KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQkocmV2aXNpb24gMjYyMzgwKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtOTE5LDkgKzkxOSwxMSBAQCB2b2lk
IFdlYlByb2Nlc3M6OnNldE1lZGlhTUlNRVR5cGVzKGNvbnN0CiAjaWYgRU5BQkxFKENGUFJFRlNf
RElSRUNUX01PREUpCiB2b2lkIFdlYlByb2Nlc3M6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChj
b25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IE9wdGlvbmFsPFN0
cmluZz4mIGVuY29kZWRWYWx1ZSkKIHsKLSAgICBhdXRvIGRlZmF1bHRzID0gYWRvcHROUyhbW05T
VXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpkb21haW5dKTsKICAgICBpZiAo
IWVuY29kZWRWYWx1ZS5oYXNWYWx1ZSgpKSB7Ci0gICAgICAgIFtkZWZhdWx0cyBzZXRPYmplY3Q6
bmlsIGZvcktleTprZXldOworICAgICAgICBpZiAoZG9tYWluLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgIENGUHJlZmVyZW5jZXNTZXRWYWx1ZShrZXkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgbnVs
bHB0ciwga0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiwga0NGUHJlZmVyZW5jZXNDdXJyZW50
VXNlciwga0NGUHJlZmVyZW5jZXNBbnlIb3N0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Q0ZQcmVmZXJlbmNlc1NldFZhbHVlKGtleS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBudWxscHRy
LCBkb21haW4uY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwga0NGUHJlZmVyZW5jZXNDdXJyZW50VXNl
ciwga0NGUHJlZmVyZW5jZXNBbnlIb3N0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBh
dXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCYXNlNjRF
bmNvZGVkU3RyaW5nOiplbmNvZGVkVmFsdWUgb3B0aW9uczowXSk7CkBAIC05MzMsNyArOTM1LDEw
IEBAIHZvaWQgV2ViUHJvY2Vzczo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2UKICAgICBBU1NFUlQo
IWVycik7CiAgICAgaWYgKGVycikKICAgICAgICAgcmV0dXJuOwotICAgIFtkZWZhdWx0cyBzZXRP
YmplY3Q6b2JqZWN0IGZvcktleTprZXldOworICAgIGlmIChkb21haW4uaXNFbXB0eSgpKQorICAg
ICAgICBDRlByZWZlcmVuY2VzU2V0VmFsdWUoa2V5LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIChf
X2JyaWRnZSBDRlByb3BlcnR5TGlzdFJlZilvYmplY3QsIGtDRlByZWZlcmVuY2VzQW55QXBwbGlj
YXRpb24sIGtDRlByZWZlcmVuY2VzQ3VycmVudFVzZXIsIGtDRlByZWZlcmVuY2VzQW55SG9zdCk7
CisgICAgZWxzZQorICAgICAgICBDRlByZWZlcmVuY2VzU2V0VmFsdWUoa2V5LmNyZWF0ZUNGU3Ry
aW5nKCkuZ2V0KCksIChfX2JyaWRnZSBDRlByb3BlcnR5TGlzdFJlZilvYmplY3QsIGRvbWFpbi5j
cmVhdGVDRlN0cmluZygpLmdldCgpLCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRVc2VyLCBrQ0ZQcmVm
ZXJlbmNlc0FueUhvc3QpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OnVuYmxvY2tQcmVmZXJlbmNl
U2VydmljZShTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYmIGhhbmRsZUFycmF5KQpJbmRl
eDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNp
b24gMjYyNTcyKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMjAtMDYtMDQgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgor
CisgICAgICAgIFtDb2NvYV0gQ0ZQcmVmcyBzeW5jaHJvbml6YXRpb24gZG9lcyBub3QgYWx3YXlz
IHdvcmsgZm9yIGdsb2JhbCBwcmVmZXJlbmNlIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjc4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0d28gQVBJIHRlc3RzLCBhbmQgYWRkIHNv
bWUgc3luY2hyb25pemF0aW9uIHRvIGF2b2lkIGZsYWtpbmVzcy4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByZWZlcmVuY2VDaGFuZ2VzLm1tOgorICAgICAgICAoLVtX
S1Rlc3RQcmVmZXJlbmNlT2JzZXJ2ZXIgcHJlZmVyZW5jZURpZENoYW5nZTprZXk6ZW5jb2RlZFZh
bHVlOl0pOgorICAgICAgICAoVEVTVCk6CisgICAgICAgIChzaGFyZWRJbnN0YW5jZU1ldGhvZE92
ZXJyaWRlKToKKwogMjAyMC0wNi0wNCAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9w
ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBJbXByb3ZlIHdhdGNobGlzdCBsb2dpYyBmb3IgY29t
bWVudHMgb24gcGF0Y2hlcyB0b3VjaGluZyBpbXBvcnRlZCBXUFQgdGVzdHMuCkluZGV4OiBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdl
cy5tbQkocmV2aXNpb24gMjYyMzgwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvUHJlZmVyZW5jZUNoYW5nZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAK
IAogI2ltcG9ydCA8d3RmL09iakNSdW50aW1lRXh0cmFzLmg+CiAKLXN0YXRpYyBib29sIGRvbmUg
PSBmYWxzZTsKK3N0YXRpYyBib29sIHJlY2VpdmVkUHJlZmVyZW5jZU5vdGlmaWNhdGlvbiA9IGZh
bHNlOwogCiBAaW50ZXJmYWNlIFdLVGVzdFByZWZlcmVuY2VPYnNlcnZlciA6IFdLUHJlZmVyZW5j
ZU9ic2VydmVyCiAtICh2b2lkKXByZWZlcmVuY2VEaWRDaGFuZ2U6KE5TU3RyaW5nICopZG9tYWlu
IGtleTooTlNTdHJpbmcgKilrZXkgZW5jb2RlZFZhbHVlOihOU1N0cmluZyAqKWVuY29kZWRWYWx1
ZTsKQEAgLTQyLDE3ICs0MiwxOCBAQCAtICh2b2lkKXByZWZlcmVuY2VEaWRDaGFuZ2U6KE5TU3Ry
aW5nICopCiBAaW1wbGVtZW50YXRpb24gV0tUZXN0UHJlZmVyZW5jZU9ic2VydmVyCiAtICh2b2lk
KXByZWZlcmVuY2VEaWRDaGFuZ2U6KE5TU3RyaW5nICopZG9tYWluIGtleTooTlNTdHJpbmcgKilr
ZXkgZW5jb2RlZFZhbHVlOihOU1N0cmluZyAqKWVuY29kZWRWYWx1ZQogewotICAgIGRvbmUgPSB0
cnVlOworICAgIHJlY2VpdmVkUHJlZmVyZW5jZU5vdGlmaWNhdGlvbiA9IHRydWU7CiAgICAgW3N1
cGVyIHByZWZlcmVuY2VEaWRDaGFuZ2U6ZG9tYWluIGtleTprZXkgZW5jb2RlZFZhbHVlOmVuY29k
ZWRWYWx1ZV07CiB9CiBAZW5kCiAKIHN0YXRpYyBjb25zdCBDRlN0cmluZ1JlZiB0ZXN0S2V5ID0g
Q0ZTVFIoInRlc3RrZXkiKTsKLXN0YXRpYyBjb25zdCBDRlN0cmluZ1JlZiB0ZXN0RG9tYWluID0g
Q0ZTVFIoImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iKTsKK3N0YXRpYyBjb25zdCBDRlN0
cmluZ1JlZiBnbG9iYWxEb21haW4gPSBDRlNUUigia0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlv
biIpOworc3RhdGljIGNvbnN0IENGU3RyaW5nUmVmIHRlc3REb21haW4gPSBDRlNUUigiY29tLmFw
cGxlLmF2Zm91bmRhdGlvbiIpOwogCiBURVNUKFdlYktpdCwgUHJlZmVyZW5jZU9ic2VydmVyKQog
ewotICAgIGRvbmUgPSBmYWxzZTsKKyAgICByZWNlaXZlZFByZWZlcmVuY2VOb3RpZmljYXRpb24g
PSBmYWxzZTsKIAogICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZSh0ZXN0S2V5LCBDRlNUUigi
MSIpLCB0ZXN0RG9tYWluKTsKIApAQCAtNjAsMTIgKzYxLDEyIEBAIFRFU1QoV2ViS2l0LCBQcmVm
ZXJlbmNlT2JzZXJ2ZXIpCiAKICAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUodGVzdEtleSwg
Q0ZTVFIoIjIiKSwgdGVzdERvbWFpbik7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRQcmVmZXJlbmNl
Tm90aWZpY2F0aW9uKTsKIH0KIAogVEVTVChXZWJLaXQsIFByZWZlcmVuY2VPYnNlcnZlckFycmF5
KQogewotICAgIGRvbmUgPSBmYWxzZTsKKyAgICByZWNlaXZlZFByZWZlcmVuY2VOb3RpZmljYXRp
b24gPSBmYWxzZTsKIAogICAgIE5TQXJyYXkgKmFycmF5ID0gQFtAMSwgQDIsIEAzXTsKIApAQCAt
NzcsMzAgKzc4LDExMyBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZU9ic2VydmVyQXJyYXkpCiAg
ICAgTlNBcnJheSAqY2hhbmdlZEFycmF5ID0gQFtAMywgQDIsIEAxXTsKICAgICBbdXNlckRlZmF1
bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkQXJyYXkgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RL
ZXldOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkUHJlZmVyZW5jZU5vdGlmaWNhdGlvbik7CiB9CiAK
IFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlcykKIHsKKyAgICBDRlByZWZlcmVuY2VzU2V0
QXBwVmFsdWUodGVzdEtleSwgQ0ZTVFIoIjAiKSwgdGVzdERvbWFpbik7CisKICAgICBhdXRvIG9i
c2VydmVyID0gYWRvcHROUyhbW1dLVGVzdFByZWZlcmVuY2VPYnNlcnZlciBhbGxvY10gaW5pdF0p
OworICAgIAorICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBj
b250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5q
ZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CisgICAgY29u
ZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCA9IChXS1Byb2Nlc3NQb29sICopY29udGV4dC5n
ZXQoKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisgICAgW3dlYlZpZXcgc3luY2hy
b25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAic2ltcGxlIl07CisKKyAgICByZWNlaXZlZFByZWZl
cmVuY2VOb3RpZmljYXRpb24gPSBmYWxzZTsKIAogICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1
ZSh0ZXN0S2V5LCBDRlNUUigiMSIpLCB0ZXN0RG9tYWluKTsKIAogICAgIEVYUEVDVF9FUSgxLCBD
RlByZWZlcmVuY2VzR2V0QXBwSW50ZWdlclZhbHVlKHRlc3RLZXksIHRlc3REb21haW4sIG51bGxw
dHIpKTsKIAorICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRQcmVmZXJlbmNl
Tm90aWZpY2F0aW9uKTsKKworICAgIGF1dG8gcHJlZmVyZW5jZVZhbHVlID0gWyZdIHsKKyAgICAg
ICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50
ZXJuYWxzLnJlYWRQcmVmZXJlbmNlSW50ZWdlcihcIiVAXCIsXCIlQFwiKSIsIChOU1N0cmluZyAq
KXRlc3REb21haW4sIChOU1N0cmluZyAqKXRlc3RLZXldOworICAgICAgICByZXR1cm4gW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpqc10uaW50VmFsdWU7CisgICAgfTsKKwor
ICAgIEVYUEVDVF9FUShwcmVmZXJlbmNlVmFsdWUoKSwgMSk7CisKKyAgICByZWNlaXZlZFByZWZl
cmVuY2VOb3RpZmljYXRpb24gPSBmYWxzZTsKKworICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1
ZSh0ZXN0S2V5LCBDRlNUUigiMiIpLCB0ZXN0RG9tYWluKTsKKworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmcmVjZWl2ZWRQcmVmZXJlbmNlTm90aWZpY2F0aW9uKTsKKworICAgIEVYUEVD
VF9FUShwcmVmZXJlbmNlVmFsdWUoKSwgMik7Cit9CisKK1RFU1QoV2ViS2l0LCBHbG9iYWxQcmVm
ZXJlbmNlQ2hhbmdlcykKK3sKKyAgICBDRlByZWZlcmVuY2VzU2V0VmFsdWUodGVzdEtleSwgQ0ZT
VFIoIjAiKSwga0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiwga0NGUHJlZmVyZW5jZXNDdXJy
ZW50VXNlciwga0NGUHJlZmVyZW5jZXNBbnlIb3N0KTsKKworICAgIGF1dG8gb2JzZXJ2ZXIgPSBh
ZG9wdE5TKFtbV0tUZXN0UHJlZmVyZW5jZU9ic2VydmVyIGFsbG9jXSBpbml0XSk7CisgICAgCisg
ICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBh
ZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRs
ZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKKyAgICBjb25maWd1cmF0aW9u
LmdldCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgpOworICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9h
ZFRlc3RQYWdlTmFtZWQ6QCJzaW1wbGUiXTsKKworICAgIHJlY2VpdmVkUHJlZmVyZW5jZU5vdGlm
aWNhdGlvbiA9IGZhbHNlOworCisgICAgQ0ZQcmVmZXJlbmNlc1NldFZhbHVlKHRlc3RLZXksIENG
U1RSKCIxIiksIGtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24sIGtDRlByZWZlcmVuY2VzQ3Vy
cmVudFVzZXIsIGtDRlByZWZlcmVuY2VzQW55SG9zdCk7CisKKyAgICBFWFBFQ1RfRVEoMSwgQ0ZQ
cmVmZXJlbmNlc0dldEFwcEludGVnZXJWYWx1ZSh0ZXN0S2V5LCBrQ0ZQcmVmZXJlbmNlc0FueUFw
cGxpY2F0aW9uLCBudWxscHRyKSk7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
Y2VpdmVkUHJlZmVyZW5jZU5vdGlmaWNhdGlvbik7CisKKyAgICBhdXRvIHByZWZlcmVuY2VWYWx1
ZSA9IFsmXSB7CisgICAgICAgIE5TU3RyaW5nICpqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OkAid2luZG93LmludGVybmFscy5yZWFkUHJlZmVyZW5jZUludGVnZXIoXCIlQFwiLFwiJUBc
IikiLCAoTlNTdHJpbmcgKilnbG9iYWxEb21haW4sIChOU1N0cmluZyAqKXRlc3RLZXldOworICAg
ICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpqc10uaW50
VmFsdWU7CisgICAgfTsKKworICAgIEVYUEVDVF9FUShwcmVmZXJlbmNlVmFsdWUoKSwgMSk7CisK
KyAgICByZWNlaXZlZFByZWZlcmVuY2VOb3RpZmljYXRpb24gPSBmYWxzZTsKKworICAgIENGUHJl
ZmVyZW5jZXNTZXRWYWx1ZSh0ZXN0S2V5LCBDRlNUUigiMiIpLCBnbG9iYWxEb21haW4sIGtDRlBy
ZWZlcmVuY2VzQ3VycmVudFVzZXIsIGtDRlByZWZlcmVuY2VzQW55SG9zdCk7CisKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkUHJlZmVyZW5jZU5vdGlmaWNhdGlvbik7CisK
KyAgICBFWFBFQ1RfRVEocHJlZmVyZW5jZVZhbHVlKCksIDIpOworfQorCitURVNUKFdlYktpdCwg
R2xvYmFsUHJlZmVyZW5jZUNoYW5nZXNVc2luZ0RlZmF1bHRzV3JpdGUpCit7CisgICAgc3lzdGVt
KFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiZGVmYXVsdHMgd3JpdGUgJUAgJUAgMCIsIChf
X2JyaWRnZSBpZClnbG9iYWxEb21haW4sIChfX2JyaWRnZSBpZCl0ZXN0S2V5XS5VVEY4U3RyaW5n
KTsKKyAgICAKKyAgICBhdXRvIG9ic2VydmVyID0gYWRvcHROUyhbW1dLVGVzdFByZWZlcmVuY2VP
YnNlcnZlciBhbGxvY10gaW5pdF0pOworICAgIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFk
b3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgV0tSZXRh
aW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGls
OjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1
bmRsZVRlc3QiKSk7CiAgICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCA9IChXS1By
b2Nlc3NQb29sICopY29udGV4dC5nZXQoKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwg
MzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7
CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAic2ltcGxlIl07
CisKKyAgICByZWNlaXZlZFByZWZlcmVuY2VOb3RpZmljYXRpb24gPSBmYWxzZTsKKworICAgIHN5
c3RlbShbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAImRlZmF1bHRzIHdyaXRlICVAICVAIDEi
LCAoX19icmlkZ2UgaWQpZ2xvYmFsRG9tYWluLCAoX19icmlkZ2UgaWQpdGVzdEtleV0uVVRGOFN0
cmluZyk7CisKKyAgICBFWFBFQ1RfRVEoMSwgQ0ZQcmVmZXJlbmNlc0dldEFwcEludGVnZXJWYWx1
ZSh0ZXN0S2V5LCBnbG9iYWxEb21haW4sIG51bGxwdHIpKTsKKworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmcmVjZWl2ZWRQcmVmZXJlbmNlTm90aWZpY2F0aW9uKTsKIAogICAgIGF1dG8g
cHJlZmVyZW5jZVZhbHVlID0gWyZdIHsKLSAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLnJlYWRQcmVmZXJlbmNlSW50ZWdl
cihcIiVAXCIsXCIlQFwiKSIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChOU1N0cmluZyAqKXRl
c3RLZXldOworICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1h
dDpAIndpbmRvdy5pbnRlcm5hbHMucmVhZFByZWZlcmVuY2VJbnRlZ2VyKFwiJUBcIixcIiVAXCIp
IiwgKE5TU3RyaW5nICopZ2xvYmFsRG9tYWluLCAoTlNTdHJpbmcgKil0ZXN0S2V5XTsKICAgICAg
ICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdLmludFZh
bHVlOwogICAgIH07CiAKICAgICBFWFBFQ1RfRVEocHJlZmVyZW5jZVZhbHVlKCksIDEpOwogCi0g
ICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKHRlc3RLZXksIENGU1RSKCIyIiksIHRlc3REb21h
aW4pOworICAgIHJlY2VpdmVkUHJlZmVyZW5jZU5vdGlmaWNhdGlvbiA9IGZhbHNlOworCisgICAg
c3lzdGVtKFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiZGVmYXVsdHMgd3JpdGUgJUAgJUAg
MiIsIChfX2JyaWRnZSBpZClnbG9iYWxEb21haW4sIChfX2JyaWRnZSBpZCl0ZXN0S2V5XS5VVEY4
U3RyaW5nKTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRQcmVmZXJl
bmNlTm90aWZpY2F0aW9uKTsKIAogICAgIEVYUEVDVF9FUShwcmVmZXJlbmNlVmFsdWUoKSwgMik7
CiB9CkBAIC0yNDksMTYgKzMzMywxOCBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNE
YXRlKQogfQogCiBzdGF0aWMgSU1QIHNoYXJlZEluc3RhbmNlTWV0aG9kT3JpZ2luYWwgPSBuaWw7
CitzdGF0aWMgYm9vbCBzaGFyZWRJbnN0YW5jZUNhbGxlZCA9IGZhbHNlOwogCiBzdGF0aWMgV0tQ
cmVmZXJlbmNlT2JzZXJ2ZXIgKnNoYXJlZEluc3RhbmNlTWV0aG9kT3ZlcnJpZGUoaWQgc2VsZiwg
U0VMIHNlbGVjdG9yKQogewotICAgIGRvbmUgPSB0cnVlOwotICAgIHJldHVybiB3dGZDYWxsSU1Q
PFdLUHJlZmVyZW5jZU9ic2VydmVyICo+KHNoYXJlZEluc3RhbmNlTWV0aG9kT3JpZ2luYWwsIHNl
bGYsIHNlbGVjdG9yKTsKKyAgICBXS1ByZWZlcmVuY2VPYnNlcnZlciAqb2JzZXJ2ZXIgPSB3dGZD
YWxsSU1QPFdLUHJlZmVyZW5jZU9ic2VydmVyICo+KHNoYXJlZEluc3RhbmNlTWV0aG9kT3JpZ2lu
YWwsIHNlbGYsIHNlbGVjdG9yKTsKKyAgICBzaGFyZWRJbnN0YW5jZUNhbGxlZCA9IHRydWU7Cisg
ICAgcmV0dXJuIG9ic2VydmVyOwogfQogCiBURVNUKFdlYktpdCwgUHJlZmVyZW5jZU9ic2VydmVy
U3RhcnRlZE9uQWN0aXZhdGlvbikKIHsKLSAgICBkb25lID0gZmFsc2U7CisgICAgc2hhcmVkSW5z
dGFuY2VDYWxsZWQgPSBmYWxzZTsKICAgICBNZXRob2Qgc2hhcmVkSW5zdGFuY2VNZXRob2QgPSBj
bGFzc19nZXRDbGFzc01ldGhvZChvYmpjX2dldENsYXNzKCJXS1ByZWZlcmVuY2VPYnNlcnZlciIp
LCBAc2VsZWN0b3Ioc2hhcmVkSW5zdGFuY2UpKTsKICAgICBBU1NFUlQoc2hhcmVkSW5zdGFuY2VN
ZXRob2QpOwogICAgIHNoYXJlZEluc3RhbmNlTWV0aG9kT3JpZ2luYWwgPSBtZXRob2Rfc2V0SW1w
bGVtZW50YXRpb24oc2hhcmVkSW5zdGFuY2VNZXRob2QsIChJTVApc2hhcmVkSW5zdGFuY2VNZXRo
b2RPdmVycmlkZSk7CkBAIC0yNzMsNyArMzU5LDcgQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VP
YnNlcnZlclN0YXJ0ZWRPbgogCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2Vu
dGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFtZTpOU0FwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlTm90
aWZpY2F0aW9uIG9iamVjdDpOU0FwcCB1c2VySW5mbzpuaWxdOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnNoYXJl
ZEluc3RhbmNlQ2FsbGVkKTsKIH0KIAogI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401203</attachid>
            <date>2020-06-05 14:58:30 -0700</date>
            <delta_ts>2020-06-05 15:03:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212783-20200605145829.patch</filename>
            <type>text/plain</type>
            <size>15003</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjI2NDIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA2LTA0ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIENGUHJlZnMgc3lu
Y2hyb25pemF0aW9uIGRvZXMgbm90IGFsd2F5cyB3b3JrIGZvciBnbG9iYWwgcHJlZmVyZW5jZSBj
aGFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTI3ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
biBDRlByZWZzIGRpcmVjdCBtb2RlLCBzeW5jaHJvbml6YXRpb24gb2YgZ2xvYmFsIHByZWZlcmVu
Y2UgY2hhbmdlcyBmcm9tIHRoZSBVSSBwcm9jZXNzIHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3Mg
ZG9lcyBub3QgYWx3YXlzIHdvcmsuCisgICAgICAgIFRoaXMgaXMgY2F1c2VkIGJ5IHRoZSBLVk8g
bm90aWZpY2F0aW9uIGJlaW5nIHNlbnQgdG8gYWxsIG9yIHNvbWUgb2YgdGhlIE5TVXNlckRlZmF1
bHQgb2JqZWN0cywgd2hpY2ggbGVhZHMgdXMgdG8gYmVsaWV2ZSBhIG5vbi1nbG9iYWwKKyAgICAg
ICAgcHJlZmVyZW5jZSB3YXMgY2hhbmdlZC4gU2luY2UgYSBnbG9iYWwgcHJlZmVyZW5jZSBjaGFu
Z2UgYWx3YXlzIGxlYWRzIHRvIHNvbWUgTlNVc2VyRGVmYXVsdHMgb2JqZWN0IHJlY2VpdmluZyB0
aGUgbm90aWZpY2F0aW9uLCB3ZSBjYW4KKyAgICAgICAgd29yayBhcm91bmQgdGhpcyBieSBjaGVj
a2luZyBpZiB0aGUgcHJlZmVyZW5jZSBiZWluZyBjaGFuZ2VkIHJlYWxseSBiZWxvbmdzIHRvIHRo
ZSBkb21haW4gb2YgdGhlIE5TVXNlckRlZmF1bHRzIG9iamVjdCwgb3IgaWYgaXQgaXMgYQorICAg
ICAgICBnbG9iYWwgcHJlZmVyZW5jZS4KKworICAgICAgICBBUEkgdGVzdHM6IFdlYktpdC5HbG9i
YWxQcmVmZXJlbmNlQ2hhbmdlcyBhbmQgV2ViS2l0Lkdsb2JhbFByZWZlcmVuY2VDaGFuZ2VzVXNp
bmdEZWZhdWx0c1dyaXRlCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9i
c2VydmVyLm1tOgorICAgICAgICAoLVtXS1VzZXJEZWZhdWx0cyBfbm90aWZ5T2JzZXJ2ZXJzT2ZD
aGFuZ2VGcm9tVmFsdWVzRm9yS2V5czp0b1ZhbHVlc0ZvcktleXM6XSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgorCiAyMDIwLTA2LTA1ICBQZXIg
QXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkb3B0
IHJlYWQtb25seSBtb2RlIGZvciBwcmVmZXJlbmNlcyBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNz
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5j
ZU9ic2VydmVyLm1tCShyZXZpc2lvbiAyNjI2NDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4
LDE2IEBAIC0gKHZvaWQpX25vdGlmeU9ic2VydmVyc09mQ2hhbmdlRnJvbVZhbHUKICAgICAgICAg
ICAgIGVuY29kZWRTdHJpbmcgPSBbZGF0YSBiYXNlNjRFbmNvZGVkU3RyaW5nV2l0aE9wdGlvbnM6
MF07CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobV9vYnNlcnZlcikKKyAgICAgICAgaWYgKCFt
X29ic2VydmVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgYXV0byBn
bG9iYWxWYWx1ZSA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlWYWx1ZSgoX19icmlkZ2UgQ0ZT
dHJpbmdSZWYpa2V5LCBrQ0ZQcmVmZXJlbmNlc0FueUFwcGxpY2F0aW9uLCBrQ0ZQcmVmZXJlbmNl
c0N1cnJlbnRVc2VyLCBrQ0ZQcmVmZXJlbmNlc0FueUhvc3QpKTsKKyAgICAgICAgYXV0byBkb21h
aW5WYWx1ZSA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlWYWx1ZSgoX19icmlkZ2UgQ0ZTdHJp
bmdSZWYpa2V5LCAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpbV9zdWl0ZU5hbWUsIGtDRlByZWZlcmVu
Y2VzQ3VycmVudFVzZXIsIGtDRlByZWZlcmVuY2VzQW55SG9zdCkpOworICAgICAgICAKKyAgICAg
ICAgaWYgKGdsb2JhbFZhbHVlICYmIFtuZXdWYWx1ZSBpc0VxdWFsOihfX2JyaWRnZSBpZClnbG9i
YWxWYWx1ZS5nZXQoKV0pCisgICAgICAgICAgICBbbV9vYnNlcnZlciBwcmVmZXJlbmNlRGlkQ2hh
bmdlOm5pbCBrZXk6a2V5IGVuY29kZWRWYWx1ZTplbmNvZGVkU3RyaW5nXTsKKworICAgICAgICBp
ZiAoZG9tYWluVmFsdWUgJiYgW25ld1ZhbHVlIGlzRXF1YWw6KF9fYnJpZGdlIGlkKWRvbWFpblZh
bHVlLmdldCgpXSkKICAgICAgICAgICAgIFttX29ic2VydmVyIHByZWZlcmVuY2VEaWRDaGFuZ2U6
bV9zdWl0ZU5hbWUga2V5OmtleSBlbmNvZGVkVmFsdWU6ZW5jb2RlZFN0cmluZ107CiAgICAgfQog
fQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCShyZXZpc2lvbiAyNjI2NDIpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05MDMsMTUgKzkwMyw2
IEBAIHN0YXRpYyBjb25zdCBXVEY6OlN0cmluZyYgdXNlckFjY2VudENvbG8KIH0KICNlbmRpZgog
Ci1zdGF0aWMgYm9vbCBzaG91bGRXcml0ZVRvQXBwRG9tYWluRm9yUHJlZmVyZW5jZUtleShjb25z
dCBTdHJpbmcmIGtleSkKLXsKLSNpZiBVU0UoQVBQS0lUKQotICAgIHJldHVybiBrZXkgPT0gdXNl
ckFjY2VudENvbG9yUHJlZmVyZW5jZUtleSgpOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0j
ZW5kaWYKLX0KLQogc3RhdGljIHZvaWQgZGlzcGF0Y2hTaW11bGF0ZWROb3RpZmljYXRpb25zRm9y
UHJlZmVyZW5jZUNoYW5nZShjb25zdCBTdHJpbmcmIGtleSkKIHsKICNpZiBVU0UoQVBQS0lUKQpA
QCAtOTIzLDIyICs5MTQsMTkgQEAgc3RhdGljIHZvaWQgZGlzcGF0Y2hTaW11bGF0ZWROb3RpZmlj
YXRpbwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6bm90aWZ5UHJlZmVyZW5jZXNDaGFu
Z2VkKGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgT3B0aW9u
YWw8U3RyaW5nPiYgZW5jb2RlZFZhbHVlKQorc3RhdGljIHZvaWQgc2V0UHJlZmVyZW5jZVZhbHVl
KGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSwgaWQgdmFsdWUpCiB7Ci0g
ICAgLy8gRklYTUUgKDIxMjYyNyk6IEluIHRoZSBjYXNlIG9mIGdsb2JhbCBwcmVmZXJlbmNlIGNo
YW5nZXMsIHRoZSBkb21haW4gdGhhdCB3ZSBhcmUgbm90aWZpZWQgaW4gaXMKLSAgICAvLyBub3Qg
dGhlIGNvcnJlY3QgZG9tYWluIHRvIHdyaXRlIHRvOyBpdCBpcyBhbiBhcmJpdHJhcnkgZG9tYWlu
IGFmZmVjdGVkIGJ5IHRoZSBnbG9iYWwgY2hhbmdlLgotICAgIC8vIFdvcmsgYXJvdW5kIHRoaXMg
Ynkgd3JpdGluZyB0byB0aGUgYXBwJ3MgZG9tYWluIGluIGNhc2VzIHdoZXJlIHdlIGtub3cgdGhh
dCBpcyBPSwotICAgIC8vIChiZWNhdXNlIHRoZSBjb2RlIHRoYXQgdXNlcyB0aGUgZGVmYXVsdCBp
biB0aGUgV2ViIENvbnRlbnQgcHJvY2VzcyByZWFkcyBmcm9tCi0gICAgLy8gLXN0YW5kYXJkVXNl
ckRlZmF1bHRzLCBub3QgZnJvbSBhIHNwZWNpZmljIGRvbWFpbikuIFByZWZlcmVuY2VPYnNlcnZl
ciBuZWVkcyB0byBiZSBmaXhlZAotICAgIC8vIHRvIGZpbmQgdGhlIGNvcnJlY3QgZG9tYWluLCBi
dXQgd2UgY3VycmVudGx5IGhhdmUgbm8gbWVjaGFuaXNtIHRvIGRvIHNvLgotICAgIFJldGFpblB0
cjxOU1VzZXJEZWZhdWx0cz4gZGVmYXVsdHM7Ci0gICAgaWYgKHNob3VsZFdyaXRlVG9BcHBEb21h
aW5Gb3JQcmVmZXJlbmNlS2V5KGtleSkpCi0gICAgICAgIGRlZmF1bHRzID0gW05TVXNlckRlZmF1
bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXTsKLSAgICBlbHNlCi0gICAgICAgIGRlZmF1bHRzID0g
YWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpkb21haW5d
KTsKKyAgICBpZiAoZG9tYWluLmlzRW1wdHkoKSkgeworICAgICAgICBDRlByZWZlcmVuY2VzU2V0
VmFsdWUoa2V5LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIChfX2JyaWRnZSBDRlByb3BlcnR5TGlz
dFJlZil2YWx1ZSwga0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiwga0NGUHJlZmVyZW5jZXND
dXJyZW50VXNlciwga0NGUHJlZmVyZW5jZXNBbnlIb3N0KTsKKyAgICAgICAgQVNTRVJUKFtbW05T
VXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6a2V5XSBpc0Vx
dWFsOnZhbHVlXSk7CisgICAgfSBlbHNlCisgICAgICAgIENGUHJlZmVyZW5jZXNTZXRWYWx1ZShr
ZXkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgKF9fYnJpZGdlIENGUHJvcGVydHlMaXN0UmVmKXZh
bHVlLCBkb21haW4uY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwga0NGUHJlZmVyZW5jZXNDdXJyZW50
VXNlciwga0NGUHJlZmVyZW5jZXNBbnlIb3N0KTsKK30KIAordm9pZCBXZWJQcm9jZXNzOjpub3Rp
ZnlQcmVmZXJlbmNlc0NoYW5nZWQoY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYg
a2V5LCBjb25zdCBPcHRpb25hbDxTdHJpbmc+JiBlbmNvZGVkVmFsdWUpCit7CiAgICAgaWYgKCFl
bmNvZGVkVmFsdWUuaGFzVmFsdWUoKSkgewotICAgICAgICBbZGVmYXVsdHMgc2V0T2JqZWN0Om5p
bCBmb3JLZXk6a2V5XTsKKyAgICAgICAgc2V0UHJlZmVyZW5jZVZhbHVlKGRvbWFpbiwga2V5LCBu
aWwpOwogICAgICAgICBkaXNwYXRjaFNpbXVsYXRlZE5vdGlmaWNhdGlvbnNGb3JQcmVmZXJlbmNl
Q2hhbmdlKGtleSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC05NTEsNyArOTM5LDcgQEAg
dm9pZCBXZWJQcm9jZXNzOjpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZQogICAgIEFTU0VSVCghZXJy
KTsKICAgICBpZiAoZXJyKQogICAgICAgICByZXR1cm47Ci0gICAgW2RlZmF1bHRzIHNldE9iamVj
dDpvYmplY3QgZm9yS2V5OmtleV07CisgICAgc2V0UHJlZmVyZW5jZVZhbHVlKGRvbWFpbiwga2V5
LCBvYmplY3QpOwogICAgIGRpc3BhdGNoU2ltdWxhdGVkTm90aWZpY2F0aW9uc0ZvclByZWZlcmVu
Y2VDaGFuZ2Uoa2V5KTsKIH0KIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjYyNjQyKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDYtMDQgIFBlciBBcm5lIFZvbGxh
biAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQ0ZQcmVmcyBzeW5jaHJv
bml6YXRpb24gZG9lcyBub3QgYWx3YXlzIHdvcmsgZm9yIGdsb2JhbCBwcmVmZXJlbmNlIGNoYW5n
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjc4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0
d28gQVBJIHRlc3RzLCBhbmQgYWRkIHNvbWUgc3luY2hyb25pemF0aW9uIHRvIGF2b2lkIGZsYWtp
bmVzcy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByZWZlcmVuY2VD
aGFuZ2VzLm1tOgorICAgICAgICAoLVtXS1Rlc3RQcmVmZXJlbmNlT2JzZXJ2ZXIgcHJlZmVyZW5j
ZURpZENoYW5nZTprZXk6ZW5jb2RlZFZhbHVlOl0pOgorICAgICAgICAoVEVTVCk6CisgICAgICAg
IChzaGFyZWRJbnN0YW5jZU1ldGhvZE92ZXJyaWRlKToKKwogMjAyMC0wNi0wNSAgU2FhbSBCYXJh
dGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBUcnkgdG8gcmVkdWNlIGpldHNhbXMg
ZnVydGhlciBvbiBpT1MgZGV2aWNlcyBydW5uaW5nIGpzYyBzdHJlc3MgdGVzdHMKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByZWZlcmVuY2VDaGFuZ2VzLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByZWZlcmVuY2VDaGFu
Z2VzLm1tCShyZXZpc2lvbiAyNjI2NDIpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBA
QAogCiAjaW1wb3J0IDx3dGYvT2JqQ1J1bnRpbWVFeHRyYXMuaD4KIAotc3RhdGljIGJvb2wgZG9u
ZSA9IGZhbHNlOworc3RhdGljIGJvb2wgcmVjZWl2ZWRQcmVmZXJlbmNlTm90aWZpY2F0aW9uID0g
ZmFsc2U7CiAKIEBpbnRlcmZhY2UgV0tUZXN0UHJlZmVyZW5jZU9ic2VydmVyIDogV0tQcmVmZXJl
bmNlT2JzZXJ2ZXIKIC0gKHZvaWQpcHJlZmVyZW5jZURpZENoYW5nZTooTlNTdHJpbmcgKilkb21h
aW4ga2V5OihOU1N0cmluZyAqKWtleSBlbmNvZGVkVmFsdWU6KE5TU3RyaW5nICopZW5jb2RlZFZh
bHVlOwpAQCAtNDIsMTMgKzQyLDE0IEBAIC0gKHZvaWQpcHJlZmVyZW5jZURpZENoYW5nZTooTlNT
dHJpbmcgKikKIEBpbXBsZW1lbnRhdGlvbiBXS1Rlc3RQcmVmZXJlbmNlT2JzZXJ2ZXIKIC0gKHZv
aWQpcHJlZmVyZW5jZURpZENoYW5nZTooTlNTdHJpbmcgKilkb21haW4ga2V5OihOU1N0cmluZyAq
KWtleSBlbmNvZGVkVmFsdWU6KE5TU3RyaW5nICopZW5jb2RlZFZhbHVlCiB7Ci0gICAgZG9uZSA9
IHRydWU7CisgICAgcmVjZWl2ZWRQcmVmZXJlbmNlTm90aWZpY2F0aW9uID0gdHJ1ZTsKICAgICBb
c3VwZXIgcHJlZmVyZW5jZURpZENoYW5nZTpkb21haW4ga2V5OmtleSBlbmNvZGVkVmFsdWU6ZW5j
b2RlZFZhbHVlXTsKIH0KIEBlbmQKIAogc3RhdGljIGNvbnN0IENGU3RyaW5nUmVmIHRlc3RLZXkg
PSBDRlNUUigidGVzdGtleSIpOwotc3RhdGljIGNvbnN0IENGU3RyaW5nUmVmIHRlc3REb21haW4g
PSBDRlNUUigia0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiIpOworc3RhdGljIGNvbnN0IENG
U3RyaW5nUmVmIGdsb2JhbERvbWFpbiA9IENGU1RSKCJrQ0ZQcmVmZXJlbmNlc0FueUFwcGxpY2F0
aW9uIik7CitzdGF0aWMgY29uc3QgQ0ZTdHJpbmdSZWYgdGVzdERvbWFpbiA9IENGU1RSKCJjb20u
YXBwbGUuYXZmb3VuZGF0aW9uIik7CiAKIHN0YXRpYyB2b2lkIHdhaXRGb3JQcmVmZXJlbmNlU3lu
Y2hyb25pemF0aW9uKCkKIHsKQEAgLTYxLDcgKzYyLDcgQEAgc3RhdGljIHZvaWQgd2FpdEZvclBy
ZWZlcmVuY2VTeW5jaHJvbml6YQogCiBURVNUKFdlYktpdCwgUHJlZmVyZW5jZU9ic2VydmVyKQog
ewotICAgIGRvbmUgPSBmYWxzZTsKKyAgICByZWNlaXZlZFByZWZlcmVuY2VOb3RpZmljYXRpb24g
PSBmYWxzZTsKIAogICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZSh0ZXN0S2V5LCBDRlNUUigi
MSIpLCB0ZXN0RG9tYWluKTsKIApAQCAtNjksMTIgKzcwLDEyIEBAIFRFU1QoV2ViS2l0LCBQcmVm
ZXJlbmNlT2JzZXJ2ZXIpCiAKICAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUodGVzdEtleSwg
Q0ZTVFIoIjIiKSwgdGVzdERvbWFpbik7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRQcmVmZXJlbmNl
Tm90aWZpY2F0aW9uKTsKIH0KIAogVEVTVChXZWJLaXQsIFByZWZlcmVuY2VPYnNlcnZlckFycmF5
KQogewotICAgIGRvbmUgPSBmYWxzZTsKKyAgICByZWNlaXZlZFByZWZlcmVuY2VOb3RpZmljYXRp
b24gPSBmYWxzZTsKIAogICAgIE5TQXJyYXkgKmFycmF5ID0gQFtAMSwgQDIsIEAzXTsKIApAQCAt
ODYsMzEgKzg3LDExNiBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZU9ic2VydmVyQXJyYXkpCiAg
ICAgTlNBcnJheSAqY2hhbmdlZEFycmF5ID0gQFtAMywgQDIsIEAxXTsKICAgICBbdXNlckRlZmF1
bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkQXJyYXkgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RL
ZXldOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkUHJlZmVyZW5jZU5vdGlmaWNhdGlvbik7CiB9CiAK
IFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlcykKIHsKKyAgICBDRlByZWZlcmVuY2VzU2V0
QXBwVmFsdWUodGVzdEtleSwgQ0ZTVFIoIjAiKSwgdGVzdERvbWFpbik7CisKICAgICBhdXRvIG9i
c2VydmVyID0gYWRvcHROUyhbW1dLVGVzdFByZWZlcmVuY2VPYnNlcnZlciBhbGxvY10gaW5pdF0p
OworICAgIAorICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBj
b250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5q
ZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CisgICAgY29u
ZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCA9IChXS1Byb2Nlc3NQb29sICopY29udGV4dC5n
ZXQoKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisgICAgW3dlYlZpZXcgc3luY2hy
b25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAic2ltcGxlIl07CisKKyAgICByZWNlaXZlZFByZWZl
cmVuY2VOb3RpZmljYXRpb24gPSBmYWxzZTsKIAogICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1
ZSh0ZXN0S2V5LCBDRlNUUigiMSIpLCB0ZXN0RG9tYWluKTsKIAogICAgIEVYUEVDVF9FUSgxLCBD
RlByZWZlcmVuY2VzR2V0QXBwSW50ZWdlclZhbHVlKHRlc3RLZXksIHRlc3REb21haW4sIG51bGxw
dHIpKTsKIAorICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRQcmVmZXJlbmNl
Tm90aWZpY2F0aW9uKTsKKworICAgIGF1dG8gcHJlZmVyZW5jZVZhbHVlID0gWyZdIHsKKyAgICAg
ICAgd2FpdEZvclByZWZlcmVuY2VTeW5jaHJvbml6YXRpb24oKTsKKyAgICAgICAgTlNTdHJpbmcg
KmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLnJlYWRQ
cmVmZXJlbmNlSW50ZWdlcihcIiVAXCIsXCIlQFwiKSIsIChOU1N0cmluZyAqKXRlc3REb21haW4s
IChOU1N0cmluZyAqKXRlc3RLZXldOworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpqc10uaW50VmFsdWU7CisgICAgfTsKKworICAgIEVYUEVDVF9F
UShwcmVmZXJlbmNlVmFsdWUoKSwgMSk7CisKKyAgICByZWNlaXZlZFByZWZlcmVuY2VOb3RpZmlj
YXRpb24gPSBmYWxzZTsKKworICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZSh0ZXN0S2V5LCBD
RlNUUigiMiIpLCB0ZXN0RG9tYWluKTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
cmVjZWl2ZWRQcmVmZXJlbmNlTm90aWZpY2F0aW9uKTsKKworICAgIEVYUEVDVF9FUShwcmVmZXJl
bmNlVmFsdWUoKSwgMik7Cit9CisKK1RFU1QoV2ViS2l0LCBHbG9iYWxQcmVmZXJlbmNlQ2hhbmdl
cykKK3sKKyAgICBDRlByZWZlcmVuY2VzU2V0VmFsdWUodGVzdEtleSwgQ0ZTVFIoIjAiKSwga0NG
UHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiwga0NGUHJlZmVyZW5jZXNDdXJyZW50VXNlciwga0NG
UHJlZmVyZW5jZXNBbnlIb3N0KTsKKworICAgIGF1dG8gb2JzZXJ2ZXIgPSBhZG9wdE5TKFtbV0tU
ZXN0UHJlZmVyZW5jZU9ic2VydmVyIGFsbG9jXSBpbml0XSk7CisgICAgCisgICAgYXV0byBjb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVy
bmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nl
c3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgpOworICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRU
b1dpbmRvdzpZRVNdKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFt
ZWQ6QCJzaW1wbGUiXTsKKworICAgIHJlY2VpdmVkUHJlZmVyZW5jZU5vdGlmaWNhdGlvbiA9IGZh
bHNlOworCisgICAgQ0ZQcmVmZXJlbmNlc1NldFZhbHVlKHRlc3RLZXksIENGU1RSKCIxIiksIGtD
RlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24sIGtDRlByZWZlcmVuY2VzQ3VycmVudFVzZXIsIGtD
RlByZWZlcmVuY2VzQW55SG9zdCk7CisKKyAgICBFWFBFQ1RfRVEoMSwgQ0ZQcmVmZXJlbmNlc0dl
dEFwcEludGVnZXJWYWx1ZSh0ZXN0S2V5LCBrQ0ZQcmVmZXJlbmNlc0FueUFwcGxpY2F0aW9uLCBu
dWxscHRyKSk7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkUHJlZmVy
ZW5jZU5vdGlmaWNhdGlvbik7CisKKyAgICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Cisg
ICAgICAgIHdhaXRGb3JQcmVmZXJlbmNlU3luY2hyb25pemF0aW9uKCk7CisgICAgICAgIE5TU3Ry
aW5nICpqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93LmludGVybmFscy5y
ZWFkUHJlZmVyZW5jZUludGVnZXIoXCIlQFwiLFwiJUBcIikiLCAoTlNTdHJpbmcgKilnbG9iYWxE
b21haW4sIChOU1N0cmluZyAqKXRlc3RLZXldOworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpqc10uaW50VmFsdWU7CisgICAgfTsKKworICAgIEVY
UEVDVF9FUShwcmVmZXJlbmNlVmFsdWUoKSwgMSk7CisKKyAgICByZWNlaXZlZFByZWZlcmVuY2VO
b3RpZmljYXRpb24gPSBmYWxzZTsKKworICAgIENGUHJlZmVyZW5jZXNTZXRWYWx1ZSh0ZXN0S2V5
LCBDRlNUUigiMiIpLCBnbG9iYWxEb21haW4sIGtDRlByZWZlcmVuY2VzQ3VycmVudFVzZXIsIGtD
RlByZWZlcmVuY2VzQW55SG9zdCk7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
Y2VpdmVkUHJlZmVyZW5jZU5vdGlmaWNhdGlvbik7CisKKyAgICBFWFBFQ1RfRVEocHJlZmVyZW5j
ZVZhbHVlKCksIDIpOworfQorCitURVNUKFdlYktpdCwgR2xvYmFsUHJlZmVyZW5jZUNoYW5nZXNV
c2luZ0RlZmF1bHRzV3JpdGUpCit7CisgICAgc3lzdGVtKFtOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OkAiZGVmYXVsdHMgd3JpdGUgJUAgJUAgMCIsIChfX2JyaWRnZSBpZClnbG9iYWxEb21haW4s
IChfX2JyaWRnZSBpZCl0ZXN0S2V5XS5VVEY4U3RyaW5nKTsKKyAgICAKKyAgICBhdXRvIG9ic2Vy
dmVyID0gYWRvcHROUyhbW1dLVGVzdFByZWZlcmVuY2VPYnNlcnZlciBhbGxvY10gaW5pdF0pOwor
ICAgIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250
ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0
ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CiAgICAgY29uZmln
dXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCA9IChXS1Byb2Nlc3NQb29sICopY29udGV4dC5nZXQo
KTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRUZXN0UGFnZU5hbWVkOkAic2ltcGxlIl07CisKKyAgICByZWNlaXZlZFByZWZlcmVu
Y2VOb3RpZmljYXRpb24gPSBmYWxzZTsKKworICAgIHN5c3RlbShbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpAImRlZmF1bHRzIHdyaXRlICVAICVAIDEiLCAoX19icmlkZ2UgaWQpZ2xvYmFsRG9t
YWluLCAoX19icmlkZ2UgaWQpdGVzdEtleV0uVVRGOFN0cmluZyk7CisKKyAgICBFWFBFQ1RfRVEo
MSwgQ0ZQcmVmZXJlbmNlc0dldEFwcEludGVnZXJWYWx1ZSh0ZXN0S2V5LCBnbG9iYWxEb21haW4s
IG51bGxwdHIpKTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRQcmVm
ZXJlbmNlTm90aWZpY2F0aW9uKTsKIAogICAgIGF1dG8gcHJlZmVyZW5jZVZhbHVlID0gWyZdIHsK
ICAgICAgICAgd2FpdEZvclByZWZlcmVuY2VTeW5jaHJvbml6YXRpb24oKTsKLSAgICAgICAgTlNT
dHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxz
LnJlYWRQcmVmZXJlbmNlSW50ZWdlcihcIiVAXCIsXCIlQFwiKSIsIChOU1N0cmluZyAqKXRlc3RE
b21haW4sIChOU1N0cmluZyAqKXRlc3RLZXldOworICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMucmVhZFByZWZlcmVuY2VJ
bnRlZ2VyKFwiJUBcIixcIiVAXCIpIiwgKE5TU3RyaW5nICopZ2xvYmFsRG9tYWluLCAoTlNTdHJp
bmcgKil0ZXN0S2V5XTsKICAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6anNdLmludFZhbHVlOwogICAgIH07CiAKICAgICBFWFBFQ1RfRVEocHJlZmVy
ZW5jZVZhbHVlKCksIDEpOwogCi0gICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKHRlc3RLZXks
IENGU1RSKCIyIiksIHRlc3REb21haW4pOworICAgIHJlY2VpdmVkUHJlZmVyZW5jZU5vdGlmaWNh
dGlvbiA9IGZhbHNlOworCisgICAgc3lzdGVtKFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAi
ZGVmYXVsdHMgd3JpdGUgJUAgJUAgMiIsIChfX2JyaWRnZSBpZClnbG9iYWxEb21haW4sIChfX2Jy
aWRnZSBpZCl0ZXN0S2V5XS5VVEY4U3RyaW5nKTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVjZWl2ZWRQcmVmZXJlbmNlTm90aWZpY2F0aW9uKTsKIAogICAgIEVYUEVDVF9FUShw
cmVmZXJlbmNlVmFsdWUoKSwgMik7CiB9CkBAIC0yNjMsMTYgKzM0OSwxOCBAQCBURVNUKFdlYktp
dCwgUHJlZmVyZW5jZUNoYW5nZXNEYXRlKQogfQogCiBzdGF0aWMgSU1QIHNoYXJlZEluc3RhbmNl
TWV0aG9kT3JpZ2luYWwgPSBuaWw7CitzdGF0aWMgYm9vbCBzaGFyZWRJbnN0YW5jZUNhbGxlZCA9
IGZhbHNlOwogCiBzdGF0aWMgV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgKnNoYXJlZEluc3RhbmNlTWV0
aG9kT3ZlcnJpZGUoaWQgc2VsZiwgU0VMIHNlbGVjdG9yKQogewotICAgIGRvbmUgPSB0cnVlOwot
ICAgIHJldHVybiB3dGZDYWxsSU1QPFdLUHJlZmVyZW5jZU9ic2VydmVyICo+KHNoYXJlZEluc3Rh
bmNlTWV0aG9kT3JpZ2luYWwsIHNlbGYsIHNlbGVjdG9yKTsKKyAgICBXS1ByZWZlcmVuY2VPYnNl
cnZlciAqb2JzZXJ2ZXIgPSB3dGZDYWxsSU1QPFdLUHJlZmVyZW5jZU9ic2VydmVyICo+KHNoYXJl
ZEluc3RhbmNlTWV0aG9kT3JpZ2luYWwsIHNlbGYsIHNlbGVjdG9yKTsKKyAgICBzaGFyZWRJbnN0
YW5jZUNhbGxlZCA9IHRydWU7CisgICAgcmV0dXJuIG9ic2VydmVyOwogfQogCiBURVNUKFdlYktp
dCwgUHJlZmVyZW5jZU9ic2VydmVyU3RhcnRlZE9uQWN0aXZhdGlvbikKIHsKLSAgICBkb25lID0g
ZmFsc2U7CisgICAgc2hhcmVkSW5zdGFuY2VDYWxsZWQgPSBmYWxzZTsKICAgICBNZXRob2Qgc2hh
cmVkSW5zdGFuY2VNZXRob2QgPSBjbGFzc19nZXRDbGFzc01ldGhvZChvYmpjX2dldENsYXNzKCJX
S1ByZWZlcmVuY2VPYnNlcnZlciIpLCBAc2VsZWN0b3Ioc2hhcmVkSW5zdGFuY2UpKTsKICAgICBB
U1NFUlQoc2hhcmVkSW5zdGFuY2VNZXRob2QpOwogICAgIHNoYXJlZEluc3RhbmNlTWV0aG9kT3Jp
Z2luYWwgPSBtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24oc2hhcmVkSW5zdGFuY2VNZXRob2QsIChJ
TVApc2hhcmVkSW5zdGFuY2VNZXRob2RPdmVycmlkZSk7CkBAIC0yODcsNyArMzc1LDcgQEAgVEVT
VChXZWJLaXQsIFByZWZlcmVuY2VPYnNlcnZlclN0YXJ0ZWRPbgogCiAgICAgW1tOU05vdGlmaWNh
dGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFtZTpOU0FwcGxpY2F0
aW9uRGlkQmVjb21lQWN0aXZlTm90aWZpY2F0aW9uIG9iamVjdDpOU0FwcCB1c2VySW5mbzpuaWxd
OwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnNoYXJlZEluc3RhbmNlQ2FsbGVkKTsKIH0KIAogI2VuZGlmIC8vIFdL
X0hBVkVfQ19TUEkK
</data>
<flag name="review"
          id="416606"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401343</attachid>
            <date>2020-06-08 09:10:18 -0700</date>
            <delta_ts>2020-06-08 10:40:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212783-20200608091017.patch</filename>
            <type>text/plain</type>
            <size>13853</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjI2NDIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA2LTA0ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIENGUHJlZnMgc3lu
Y2hyb25pemF0aW9uIGRvZXMgbm90IGFsd2F5cyB3b3JrIGZvciBnbG9iYWwgcHJlZmVyZW5jZSBj
aGFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTI3ODMKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEluIENG
UHJlZnMgZGlyZWN0IG1vZGUsIHN5bmNocm9uaXphdGlvbiBvZiBnbG9iYWwgcHJlZmVyZW5jZSBj
aGFuZ2VzIGZyb20gdGhlIFVJIHByb2Nlc3MgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBkb2Vz
IG5vdCBhbHdheXMgd29yay4KKyAgICAgICAgVGhpcyBpcyBjYXVzZWQgYnkgdGhlIEtWTyBub3Rp
ZmljYXRpb24gYmVpbmcgc2VudCB0byBhbGwgb3Igc29tZSBvZiB0aGUgTlNVc2VyRGVmYXVsdCBv
YmplY3RzLCB3aGljaCBsZWFkcyB1cyB0byBiZWxpZXZlIGEgbm9uLWdsb2JhbAorICAgICAgICBw
cmVmZXJlbmNlIHdhcyBjaGFuZ2VkLiBTaW5jZSBhIGdsb2JhbCBwcmVmZXJlbmNlIGNoYW5nZSBh
bHdheXMgbGVhZHMgdG8gc29tZSBOU1VzZXJEZWZhdWx0cyBvYmplY3QgcmVjZWl2aW5nIHRoZSBu
b3RpZmljYXRpb24sIHdlIGNhbgorICAgICAgICB3b3JrIGFyb3VuZCB0aGlzIGJ5IGNoZWNraW5n
IGlmIHRoZSBwcmVmZXJlbmNlIGJlaW5nIGNoYW5nZWQgcmVhbGx5IGJlbG9uZ3MgdG8gdGhlIGRv
bWFpbiBvZiB0aGUgTlNVc2VyRGVmYXVsdHMgb2JqZWN0LCBvciBpZiBpdCBpcyBhCisgICAgICAg
IGdsb2JhbCBwcmVmZXJlbmNlLiBBbHNvLCBzdG9wIGNyZWF0aW5nIE5TVXNlckRlZmF1bHRzIG9i
amVjdCBmb3IgdGhlIGdsb2JhbCBkb21haW4sIHNpbmNlIHRoaXMgaXMgYW4gZXJyb3IgYWNjb3Jk
aW5nIHRvIHRoZSBkb2NzLgorCisgICAgICAgIEFQSSB0ZXN0OiBXZWJLaXQuR2xvYmFsUHJlZmVy
ZW5jZUNoYW5nZXNVc2luZ0RlZmF1bHRzV3JpdGUKKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW06CisgICAgICAgICgtW1dLVXNlckRlZmF1bHRzIF9ub3Rp
ZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21WYWx1ZXNGb3JLZXlzOnRvVmFsdWVzRm9yS2V5czpdKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZCk6CisKIDIw
MjAtMDYtMDUgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtDb2NvYV0gQWRvcHQgcmVhZC1vbmx5IG1vZGUgZm9yIHByZWZlcmVuY2VzIGluIHRoZSBXZWJD
b250ZW50IHByb2Nlc3MKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZl
cmVuY2VPYnNlcnZlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW0JKHJldmlzaW9uIDI2MjY0MikKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQkod29ya2luZyBjb3B5
KQpAQCAtNjgsNyArNjgsMTYgQEAgLSAodm9pZClfbm90aWZ5T2JzZXJ2ZXJzT2ZDaGFuZ2VGcm9t
VmFsdQogICAgICAgICAgICAgZW5jb2RlZFN0cmluZyA9IFtkYXRhIGJhc2U2NEVuY29kZWRTdHJp
bmdXaXRoT3B0aW9uczowXTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChtX29ic2VydmVyKQor
ICAgICAgICBpZiAoIW1fb2JzZXJ2ZXIpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAor
ICAgICAgICBhdXRvIGdsb2JhbFZhbHVlID0gYWRvcHRDRihDRlByZWZlcmVuY2VzQ29weVZhbHVl
KChfX2JyaWRnZSBDRlN0cmluZ1JlZilrZXksIGtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24s
IGtDRlByZWZlcmVuY2VzQ3VycmVudFVzZXIsIGtDRlByZWZlcmVuY2VzQW55SG9zdCkpOworICAg
ICAgICBhdXRvIGRvbWFpblZhbHVlID0gYWRvcHRDRihDRlByZWZlcmVuY2VzQ29weVZhbHVlKChf
X2JyaWRnZSBDRlN0cmluZ1JlZilrZXksIChfX2JyaWRnZSBDRlN0cmluZ1JlZiltX3N1aXRlTmFt
ZSwga0NGUHJlZmVyZW5jZXNDdXJyZW50VXNlciwga0NGUHJlZmVyZW5jZXNBbnlIb3N0KSk7Cisg
ICAgICAgIAorICAgICAgICBpZiAoZ2xvYmFsVmFsdWUgJiYgW25ld1ZhbHVlIGlzRXF1YWw6KF9f
YnJpZGdlIGlkKWdsb2JhbFZhbHVlLmdldCgpXSkKKyAgICAgICAgICAgIFttX29ic2VydmVyIHBy
ZWZlcmVuY2VEaWRDaGFuZ2U6bmlsIGtleTprZXkgZW5jb2RlZFZhbHVlOmVuY29kZWRTdHJpbmdd
OworCisgICAgICAgIGlmIChkb21haW5WYWx1ZSAmJiBbbmV3VmFsdWUgaXNFcXVhbDooX19icmlk
Z2UgaWQpZG9tYWluVmFsdWUuZ2V0KCldKQogICAgICAgICAgICAgW21fb2JzZXJ2ZXIgcHJlZmVy
ZW5jZURpZENoYW5nZTptX3N1aXRlTmFtZSBrZXk6a2V5IGVuY29kZWRWYWx1ZTplbmNvZGVkU3Ry
aW5nXTsKICAgICB9CiB9CkBAIC0xMTgsNyArMTI3LDYgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXQK
ICAgICAgICAgQCJjb20uYXBwbGUubWVkaWFyZW1vdGUiLAogICAgICAgICBAImNvbS5hcHBsZS5w
cmVmZXJlbmNlcy5zb3VuZHMiLAogICAgICAgICBAImNvbS5hcHBsZS52b2ljZXNlcnZpY2VzIiwK
LSAgICAgICAgQCJrQ0ZQcmVmZXJlbmNlc0FueUFwcGxpY2F0aW9uIiwKICNlbHNlCiAgICAgICAg
IEAiY29tLmFwcGxlLkNvcmVHcmFwaGljcyIsCiAgICAgICAgIEAiY29tLmFwcGxlLkhJVG9vbGJv
eCIsCkBAIC0xMzEsNyArMTM5LDYgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXQKICAgICAgICAgQCJj
b20uYXBwbGUubWVkaWFhY2Nlc3NpYmlsaXR5IiwKICAgICAgICAgQCJjb20uYXBwbGUuc3BlZWNo
LnZvaWNlLnByZWZzIiwKICAgICAgICAgQCJjb20uYXBwbGUudW5pdmVyc2FsYWNjZXNzIiwKLSAg
ICAgICAgQCJrQ0ZQcmVmZXJlbmNlc0FueUFwcGxpY2F0aW9uIiwKICNlbmRpZgogICAgIH07CiAK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQkocmV2aXNpb24gMjYyNjQyKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1dlYlByb2Nlc3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtOTAzLDE1ICs5MDMsNiBA
QCBzdGF0aWMgY29uc3QgV1RGOjpTdHJpbmcmIHVzZXJBY2NlbnRDb2xvCiB9CiAjZW5kaWYKIAot
c3RhdGljIGJvb2wgc2hvdWxkV3JpdGVUb0FwcERvbWFpbkZvclByZWZlcmVuY2VLZXkoY29uc3Qg
U3RyaW5nJiBrZXkpCi17Ci0jaWYgVVNFKEFQUEtJVCkKLSAgICByZXR1cm4ga2V5ID09IHVzZXJB
Y2NlbnRDb2xvclByZWZlcmVuY2VLZXkoKTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2Vu
ZGlmCi19Ci0KIHN0YXRpYyB2b2lkIGRpc3BhdGNoU2ltdWxhdGVkTm90aWZpY2F0aW9uc0ZvclBy
ZWZlcmVuY2VDaGFuZ2UoY29uc3QgU3RyaW5nJiBrZXkpCiB7CiAjaWYgVVNFKEFQUEtJVCkKQEAg
LTkyMywyMiArOTE0LDE5IEBAIHN0YXRpYyB2b2lkIGRpc3BhdGNoU2ltdWxhdGVkTm90aWZpY2F0
aW8KICNlbmRpZgogfQogCi12b2lkIFdlYlByb2Nlc3M6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdl
ZChjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IE9wdGlvbmFs
PFN0cmluZz4mIGVuY29kZWRWYWx1ZSkKK3N0YXRpYyB2b2lkIHNldFByZWZlcmVuY2VWYWx1ZShj
b25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXksIGlkIHZhbHVlKQogewotICAg
IC8vIEZJWE1FICgyMTI2MjcpOiBJbiB0aGUgY2FzZSBvZiBnbG9iYWwgcHJlZmVyZW5jZSBjaGFu
Z2VzLCB0aGUgZG9tYWluIHRoYXQgd2UgYXJlIG5vdGlmaWVkIGluIGlzCi0gICAgLy8gbm90IHRo
ZSBjb3JyZWN0IGRvbWFpbiB0byB3cml0ZSB0bzsgaXQgaXMgYW4gYXJiaXRyYXJ5IGRvbWFpbiBh
ZmZlY3RlZCBieSB0aGUgZ2xvYmFsIGNoYW5nZS4KLSAgICAvLyBXb3JrIGFyb3VuZCB0aGlzIGJ5
IHdyaXRpbmcgdG8gdGhlIGFwcCdzIGRvbWFpbiBpbiBjYXNlcyB3aGVyZSB3ZSBrbm93IHRoYXQg
aXMgT0sKLSAgICAvLyAoYmVjYXVzZSB0aGUgY29kZSB0aGF0IHVzZXMgdGhlIGRlZmF1bHQgaW4g
dGhlIFdlYiBDb250ZW50IHByb2Nlc3MgcmVhZHMgZnJvbQotICAgIC8vIC1zdGFuZGFyZFVzZXJE
ZWZhdWx0cywgbm90IGZyb20gYSBzcGVjaWZpYyBkb21haW4pLiBQcmVmZXJlbmNlT2JzZXJ2ZXIg
bmVlZHMgdG8gYmUgZml4ZWQKLSAgICAvLyB0byBmaW5kIHRoZSBjb3JyZWN0IGRvbWFpbiwgYnV0
IHdlIGN1cnJlbnRseSBoYXZlIG5vIG1lY2hhbmlzbSB0byBkbyBzby4KLSAgICBSZXRhaW5QdHI8
TlNVc2VyRGVmYXVsdHM+IGRlZmF1bHRzOwotICAgIGlmIChzaG91bGRXcml0ZVRvQXBwRG9tYWlu
Rm9yUHJlZmVyZW5jZUtleShrZXkpKQotICAgICAgICBkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0
cyBzdGFuZGFyZFVzZXJEZWZhdWx0c107Ci0gICAgZWxzZQotICAgICAgICBkZWZhdWx0cyA9IGFk
b3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6ZG9tYWluXSk7
CisgICAgaWYgKGRvbWFpbi5pc0VtcHR5KCkpIHsKKyAgICAgICAgQ0ZQcmVmZXJlbmNlc1NldFZh
bHVlKGtleS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCAoX19icmlkZ2UgQ0ZQcm9wZXJ0eUxpc3RS
ZWYpdmFsdWUsIGtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24sIGtDRlByZWZlcmVuY2VzQ3Vy
cmVudFVzZXIsIGtDRlByZWZlcmVuY2VzQW55SG9zdCk7CisgICAgICAgIEFTU0VSVChbW1tOU1Vz
ZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2JqZWN0Rm9yS2V5OmtleV0gaXNFcXVh
bDp2YWx1ZV0pOworICAgIH0gZWxzZQorICAgICAgICBDRlByZWZlcmVuY2VzU2V0VmFsdWUoa2V5
LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIChfX2JyaWRnZSBDRlByb3BlcnR5TGlzdFJlZil2YWx1
ZSwgZG9tYWluLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGtDRlByZWZlcmVuY2VzQ3VycmVudFVz
ZXIsIGtDRlByZWZlcmVuY2VzQW55SG9zdCk7Cit9CiAKK3ZvaWQgV2ViUHJvY2Vzczo6bm90aWZ5
UHJlZmVyZW5jZXNDaGFuZ2VkKGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtl
eSwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgZW5jb2RlZFZhbHVlKQorewogICAgIGlmICghZW5j
b2RlZFZhbHVlLmhhc1ZhbHVlKCkpIHsKLSAgICAgICAgW2RlZmF1bHRzIHNldE9iamVjdDpuaWwg
Zm9yS2V5OmtleV07CisgICAgICAgIHNldFByZWZlcmVuY2VWYWx1ZShkb21haW4sIGtleSwgbmls
KTsKICAgICAgICAgZGlzcGF0Y2hTaW11bGF0ZWROb3RpZmljYXRpb25zRm9yUHJlZmVyZW5jZUNo
YW5nZShrZXkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtOTUxLDcgKzkzOSw3IEBAIHZv
aWQgV2ViUHJvY2Vzczo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2UKICAgICBBU1NFUlQoIWVycik7
CiAgICAgaWYgKGVycikKICAgICAgICAgcmV0dXJuOwotICAgIFtkZWZhdWx0cyBzZXRPYmplY3Q6
b2JqZWN0IGZvcktleTprZXldOworICAgIHNldFByZWZlcmVuY2VWYWx1ZShkb21haW4sIGtleSwg
b2JqZWN0KTsKICAgICBkaXNwYXRjaFNpbXVsYXRlZE5vdGlmaWNhdGlvbnNGb3JQcmVmZXJlbmNl
Q2hhbmdlKGtleSk7CiB9CiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MjY0MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA2LTA0ICBQZXIgQXJuZSBWb2xsYW4g
IDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIENGUHJlZnMgc3luY2hyb25p
emF0aW9uIGRvZXMgbm90IGFsd2F5cyB3b3JrIGZvciBnbG9iYWwgcHJlZmVyZW5jZSBjaGFuZ2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI3ODMK
KworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFkZCBBUEkgdGVz
dCwgYW5kIGFkZCBzb21lIHN5bmNocm9uaXphdGlvbiB0byBhdm9pZCBmbGFraW5lc3MuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbToK
KyAgICAgICAgKC1bV0tUZXN0UHJlZmVyZW5jZU9ic2VydmVyIHByZWZlcmVuY2VEaWRDaGFuZ2U6
a2V5OmVuY29kZWRWYWx1ZTpdKToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAoc2hhcmVkSW5z
dGFuY2VNZXRob2RPdmVycmlkZSk6CisKIDIwMjAtMDYtMDUgIFNhYW0gQmFyYXRpICA8c2JhcmF0
aUBhcHBsZS5jb20+CiAKICAgICAgICAgVHJ5IHRvIHJlZHVjZSBqZXRzYW1zIGZ1cnRoZXIgb24g
aU9TIGRldmljZXMgcnVubmluZyBqc2Mgc3RyZXNzIHRlc3RzCkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbQkocmV2
aXNpb24gMjYyNjQyKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVy
ZW5jZUNoYW5nZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKIAogI2ltcG9y
dCA8d3RmL09iakNSdW50aW1lRXh0cmFzLmg+CiAKLXN0YXRpYyBib29sIGRvbmUgPSBmYWxzZTsK
K3N0YXRpYyBib29sIHJlY2VpdmVkUHJlZmVyZW5jZU5vdGlmaWNhdGlvbiA9IGZhbHNlOwogCiBA
aW50ZXJmYWNlIFdLVGVzdFByZWZlcmVuY2VPYnNlcnZlciA6IFdLUHJlZmVyZW5jZU9ic2VydmVy
CiAtICh2b2lkKXByZWZlcmVuY2VEaWRDaGFuZ2U6KE5TU3RyaW5nICopZG9tYWluIGtleTooTlNT
dHJpbmcgKilrZXkgZW5jb2RlZFZhbHVlOihOU1N0cmluZyAqKWVuY29kZWRWYWx1ZTsKQEAgLTQy
LDEzICs0MiwxNCBAQCAtICh2b2lkKXByZWZlcmVuY2VEaWRDaGFuZ2U6KE5TU3RyaW5nICopCiBA
aW1wbGVtZW50YXRpb24gV0tUZXN0UHJlZmVyZW5jZU9ic2VydmVyCiAtICh2b2lkKXByZWZlcmVu
Y2VEaWRDaGFuZ2U6KE5TU3RyaW5nICopZG9tYWluIGtleTooTlNTdHJpbmcgKilrZXkgZW5jb2Rl
ZFZhbHVlOihOU1N0cmluZyAqKWVuY29kZWRWYWx1ZQogewotICAgIGRvbmUgPSB0cnVlOworICAg
IHJlY2VpdmVkUHJlZmVyZW5jZU5vdGlmaWNhdGlvbiA9IHRydWU7CiAgICAgW3N1cGVyIHByZWZl
cmVuY2VEaWRDaGFuZ2U6ZG9tYWluIGtleTprZXkgZW5jb2RlZFZhbHVlOmVuY29kZWRWYWx1ZV07
CiB9CiBAZW5kCiAKIHN0YXRpYyBjb25zdCBDRlN0cmluZ1JlZiB0ZXN0S2V5ID0gQ0ZTVFIoInRl
c3RrZXkiKTsKLXN0YXRpYyBjb25zdCBDRlN0cmluZ1JlZiB0ZXN0RG9tYWluID0gQ0ZTVFIoImtD
RlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iKTsKK3N0YXRpYyBjb25zdCBDRlN0cmluZ1JlZiBn
bG9iYWxEb21haW4gPSBDRlNUUigia0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiIpOworc3Rh
dGljIGNvbnN0IENGU3RyaW5nUmVmIHRlc3REb21haW4gPSBDRlNUUigiY29tLmFwcGxlLmF2Zm91
bmRhdGlvbiIpOwogCiBzdGF0aWMgdm9pZCB3YWl0Rm9yUHJlZmVyZW5jZVN5bmNocm9uaXphdGlv
bigpCiB7CkBAIC02MSw3ICs2Miw3IEBAIHN0YXRpYyB2b2lkIHdhaXRGb3JQcmVmZXJlbmNlU3lu
Y2hyb25pemEKIAogVEVTVChXZWJLaXQsIFByZWZlcmVuY2VPYnNlcnZlcikKIHsKLSAgICBkb25l
ID0gZmFsc2U7CisgICAgcmVjZWl2ZWRQcmVmZXJlbmNlTm90aWZpY2F0aW9uID0gZmFsc2U7CiAK
ICAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUodGVzdEtleSwgQ0ZTVFIoIjEiKSwgdGVzdERv
bWFpbik7CiAKQEAgLTY5LDEyICs3MCwxMiBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZU9ic2Vy
dmVyKQogCiAgICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKHRlc3RLZXksIENGU1RSKCIyIiks
IHRlc3REb21haW4pOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkUHJlZmVyZW5jZU5vdGlmaWNhdGlv
bik7CiB9CiAKIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlT2JzZXJ2ZXJBcnJheSkKIHsKLSAgICBk
b25lID0gZmFsc2U7CisgICAgcmVjZWl2ZWRQcmVmZXJlbmNlTm90aWZpY2F0aW9uID0gZmFsc2U7
CiAKICAgICBOU0FycmF5ICphcnJheSA9IEBbQDEsIEAyLCBAM107CiAKQEAgLTg2LDMxICs4Nyw3
OSBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZU9ic2VydmVyQXJyYXkpCiAgICAgTlNBcnJheSAq
Y2hhbmdlZEFycmF5ID0gQFtAMywgQDIsIEAxXTsKICAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNl
dE9iamVjdDpjaGFuZ2VkQXJyYXkgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCi0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJnJlY2VpdmVkUHJlZmVyZW5jZU5vdGlmaWNhdGlvbik7CiB9CiAKIFRFU1QoV2ViS2l0
LCBQcmVmZXJlbmNlQ2hhbmdlcykKIHsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUodGVz
dEtleSwgQ0ZTVFIoIjAiKSwgdGVzdERvbWFpbik7CisKICAgICBhdXRvIG9ic2VydmVyID0gYWRv
cHROUyhbW1dLVGVzdFByZWZlcmVuY2VPYnNlcnZlciBhbGxvY10gaW5pdF0pOworICAgIAorICAg
IGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRv
cHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVU
ZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CisgICAgY29uZmlndXJhdGlvbi5n
ZXQoKS5wcm9jZXNzUG9vbCA9IChXS1Byb2Nlc3NQb29sICopY29udGV4dC5nZXQoKTsKKyAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24u
Z2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRU
ZXN0UGFnZU5hbWVkOkAic2ltcGxlIl07CisKKyAgICByZWNlaXZlZFByZWZlcmVuY2VOb3RpZmlj
YXRpb24gPSBmYWxzZTsKIAogICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZSh0ZXN0S2V5LCBD
RlNUUigiMSIpLCB0ZXN0RG9tYWluKTsKIAogICAgIEVYUEVDVF9FUSgxLCBDRlByZWZlcmVuY2Vz
R2V0QXBwSW50ZWdlclZhbHVlKHRlc3RLZXksIHRlc3REb21haW4sIG51bGxwdHIpKTsKIAorICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRQcmVmZXJlbmNlTm90aWZpY2F0aW9u
KTsKKworICAgIGF1dG8gcHJlZmVyZW5jZVZhbHVlID0gWyZdIHsKKyAgICAgICAgd2FpdEZvclBy
ZWZlcmVuY2VTeW5jaHJvbml6YXRpb24oKTsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLnJlYWRQcmVmZXJlbmNlSW50
ZWdlcihcIiVAXCIsXCIlQFwiKSIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChOU1N0cmluZyAq
KXRlc3RLZXldOworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpqc10uaW50VmFsdWU7CisgICAgfTsKKworICAgIEVYUEVDVF9FUShwcmVmZXJlbmNl
VmFsdWUoKSwgMSk7CisKKyAgICByZWNlaXZlZFByZWZlcmVuY2VOb3RpZmljYXRpb24gPSBmYWxz
ZTsKKworICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZSh0ZXN0S2V5LCBDRlNUUigiMiIpLCB0
ZXN0RG9tYWluKTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRQcmVm
ZXJlbmNlTm90aWZpY2F0aW9uKTsKKworICAgIEVYUEVDVF9FUShwcmVmZXJlbmNlVmFsdWUoKSwg
Mik7Cit9CisKK1RFU1QoV2ViS2l0LCBHbG9iYWxQcmVmZXJlbmNlQ2hhbmdlc1VzaW5nRGVmYXVs
dHNXcml0ZSkKK3sKKyAgICBzeXN0ZW0oW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJkZWZh
dWx0cyB3cml0ZSAlQCAlQCAwIiwgKF9fYnJpZGdlIGlkKWdsb2JhbERvbWFpbiwgKF9fYnJpZGdl
IGlkKXRlc3RLZXldLlVURjhTdHJpbmcpOworICAgIAorICAgIGF1dG8gb2JzZXJ2ZXIgPSBhZG9w
dE5TKFtbV0tUZXN0UHJlZmVyZW5jZU9ic2VydmVyIGFsbG9jXSBpbml0XSk7CisgICAgCiAgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9w
dFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRl
c3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKICAgICBjb25maWd1cmF0aW9uLmdl
dCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgpOwogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5n
ZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRl
c3RQYWdlTmFtZWQ6QCJzaW1wbGUiXTsKKworICAgIHJlY2VpdmVkUHJlZmVyZW5jZU5vdGlmaWNh
dGlvbiA9IGZhbHNlOworCisgICAgc3lzdGVtKFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAi
ZGVmYXVsdHMgd3JpdGUgJUAgJUAgMSIsIChfX2JyaWRnZSBpZClnbG9iYWxEb21haW4sIChfX2Jy
aWRnZSBpZCl0ZXN0S2V5XS5VVEY4U3RyaW5nKTsKKworICAgIEVYUEVDVF9FUSgxLCBDRlByZWZl
cmVuY2VzR2V0QXBwSW50ZWdlclZhbHVlKHRlc3RLZXksIGdsb2JhbERvbWFpbiwgbnVsbHB0cikp
OworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFByZWZlcmVuY2VOb3Rp
ZmljYXRpb24pOwogCiAgICAgYXV0byBwcmVmZXJlbmNlVmFsdWUgPSBbJl0gewogICAgICAgICB3
YWl0Rm9yUHJlZmVyZW5jZVN5bmNocm9uaXphdGlvbigpOwotICAgICAgICBOU1N0cmluZyAqanMg
PSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMucmVhZFByZWZl
cmVuY2VJbnRlZ2VyKFwiJUBcIixcIiVAXCIpIiwgKE5TU3RyaW5nICopdGVzdERvbWFpbiwgKE5T
U3RyaW5nICopdGVzdEtleV07CisgICAgICAgIE5TU3RyaW5nICpqcyA9IFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAid2luZG93LmludGVybmFscy5yZWFkUHJlZmVyZW5jZUludGVnZXIoXCIl
QFwiLFwiJUBcIikiLCAoTlNTdHJpbmcgKilnbG9iYWxEb21haW4sIChOU1N0cmluZyAqKXRlc3RL
ZXldOwogICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpqc10uaW50VmFsdWU7CiAgICAgfTsKIAogICAgIEVYUEVDVF9FUShwcmVmZXJlbmNlVmFsdWUo
KSwgMSk7CiAKLSAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUodGVzdEtleSwgQ0ZTVFIoIjIi
KSwgdGVzdERvbWFpbik7CisgICAgcmVjZWl2ZWRQcmVmZXJlbmNlTm90aWZpY2F0aW9uID0gZmFs
c2U7CisKKyAgICBzeXN0ZW0oW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJkZWZhdWx0cyB3
cml0ZSAlQCAlQCAyIiwgKF9fYnJpZGdlIGlkKWdsb2JhbERvbWFpbiwgKF9fYnJpZGdlIGlkKXRl
c3RLZXldLlVURjhTdHJpbmcpOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNl
aXZlZFByZWZlcmVuY2VOb3RpZmljYXRpb24pOwogCiAgICAgRVhQRUNUX0VRKHByZWZlcmVuY2VW
YWx1ZSgpLCAyKTsKIH0KQEAgLTI2MywxNiArMzEyLDE4IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJl
bmNlQ2hhbmdlc0RhdGUpCiB9CiAKIHN0YXRpYyBJTVAgc2hhcmVkSW5zdGFuY2VNZXRob2RPcmln
aW5hbCA9IG5pbDsKK3N0YXRpYyBib29sIHNoYXJlZEluc3RhbmNlQ2FsbGVkID0gZmFsc2U7CiAK
IHN0YXRpYyBXS1ByZWZlcmVuY2VPYnNlcnZlciAqc2hhcmVkSW5zdGFuY2VNZXRob2RPdmVycmlk
ZShpZCBzZWxmLCBTRUwgc2VsZWN0b3IpCiB7Ci0gICAgZG9uZSA9IHRydWU7Ci0gICAgcmV0dXJu
IHd0ZkNhbGxJTVA8V0tQcmVmZXJlbmNlT2JzZXJ2ZXIgKj4oc2hhcmVkSW5zdGFuY2VNZXRob2RP
cmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IpOworICAgIFdLUHJlZmVyZW5jZU9ic2VydmVyICpvYnNl
cnZlciA9IHd0ZkNhbGxJTVA8V0tQcmVmZXJlbmNlT2JzZXJ2ZXIgKj4oc2hhcmVkSW5zdGFuY2VN
ZXRob2RPcmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IpOworICAgIHNoYXJlZEluc3RhbmNlQ2FsbGVk
ID0gdHJ1ZTsKKyAgICByZXR1cm4gb2JzZXJ2ZXI7CiB9CiAKIFRFU1QoV2ViS2l0LCBQcmVmZXJl
bmNlT2JzZXJ2ZXJTdGFydGVkT25BY3RpdmF0aW9uKQogewotICAgIGRvbmUgPSBmYWxzZTsKKyAg
ICBzaGFyZWRJbnN0YW5jZUNhbGxlZCA9IGZhbHNlOwogICAgIE1ldGhvZCBzaGFyZWRJbnN0YW5j
ZU1ldGhvZCA9IGNsYXNzX2dldENsYXNzTWV0aG9kKG9iamNfZ2V0Q2xhc3MoIldLUHJlZmVyZW5j
ZU9ic2VydmVyIiksIEBzZWxlY3RvcihzaGFyZWRJbnN0YW5jZSkpOwogICAgIEFTU0VSVChzaGFy
ZWRJbnN0YW5jZU1ldGhvZCk7CiAgICAgc2hhcmVkSW5zdGFuY2VNZXRob2RPcmlnaW5hbCA9IG1l
dGhvZF9zZXRJbXBsZW1lbnRhdGlvbihzaGFyZWRJbnN0YW5jZU1ldGhvZCwgKElNUClzaGFyZWRJ
bnN0YW5jZU1ldGhvZE92ZXJyaWRlKTsKQEAgLTI4Nyw3ICszMzgsNyBAQCBURVNUKFdlYktpdCwg
UHJlZmVyZW5jZU9ic2VydmVyU3RhcnRlZE9uCiAKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVy
IGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOk5TQXBwbGljYXRpb25EaWRCZWNv
bWVBY3RpdmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHVzZXJJbmZvOm5pbF07CiAKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmc2hhcmVkSW5zdGFuY2VDYWxsZWQpOwogfQogCiAjZW5kaWYgLy8gV0tfSEFWRV9DX1NQ
SQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>