<?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>181810</bug_id>
          
          <creation_ts>2018-01-18 13:15:48 -0800</creation_ts>
          <short_desc>Service worker registrations restored from disk may not be reused when the JS calls register() again</short_desc>
          <delta_ts>2018-01-19 11:16:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Service Workers</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1390640</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-18 13:15:48 -0800</bug_when>
    <thetext>SW Registrations restored from disk may not be reused when the JS calls register() again.

The issue is that when restoring a registration from disk, we do not set its active worker right away. We only set it later in installContextData(). installContextData() is only called after we’ve launched the service worker process and established a connection to it.

However, we start processing jobs (such as registrations) before we’ve established the connection to the service worker process. SWServerJobQueue::runRegisterJob(), in order to reuse an existing registration checks the registration’s active worker has the right script URL. The issue is that when this code executes, we may not have set the registration’s active service worker yet, in which case, we’ll update the existing registration instead of reusing it as-is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390641</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-18 13:16:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/36591711&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390643</commentid>
    <comment_count>2</comment_count>
      <attachid>331654</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-18 13:17:21 -0800</bug_when>
    <thetext>Created attachment 331654
API test showing issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390646</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-01-18 13:19:25 -0800</bug_when>
    <thetext>Attachment 331654 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:229:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:237:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:247:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:250:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:254:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:256:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:264:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:276:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:279:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:283:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 10 in 1 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390764</commentid>
    <comment_count>4</comment_count>
      <attachid>331689</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-18 18:36:50 -0800</bug_when>
    <thetext>Created attachment 331689
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390765</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-01-18 18:38:30 -0800</bug_when>
    <thetext>Attachment 331689 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:228:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:236:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:246:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:249:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:253:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:255:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:263:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:275:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:278:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:282:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 10 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391040</commentid>
    <comment_count>6</comment_count>
      <attachid>331689</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-19 11:13:30 -0800</bug_when>
    <thetext>Comment on attachment 331689
Patch

Clearing flags on attachment: 331689

Committed r227220: &lt;https://trac.webkit.org/changeset/227220&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391041</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-19 11:13:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331654</attachid>
            <date>2018-01-18 13:17:21 -0800</date>
            <delta_ts>2018-01-18 18:36:48 -0800</delta_ts>
            <desc>API test showing issue</desc>
            <filename>181810_persistence_register_reuse_wip.patch</filename>
            <type>text/plain</type>
            <size>6082</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Vydmlj
ZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggZWU4ZTc3Yjc5OTkuLjQ3ZjgzMjQ2NDRkIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3Jr
ZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nl
cnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtNzUsNiArNzUsMzIgQEAgLSAodm9pZCl1c2VyQ29udGVu
dENvbnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRlbnRDb250cm9s
bGVyIGQKIH0KIEBlbmQKIAorQGludGVyZmFjZSBTV01lc3NhZ2VIYW5kbGVyRm9yUmVzdG9yZUZy
b21EaXNrVGVzdCA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPiB7CisgICAgTlNT
dHJpbmcgKl9leHBlY3RlZE1lc3NhZ2U7Cit9CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhFeHBl
Y3RlZE1lc3NhZ2U6KE5TU3RyaW5nICopZXhwZWN0ZWRNZXNzYWdlOworQGVuZAorCitAaW1wbGVt
ZW50YXRpb24gU1dNZXNzYWdlSGFuZGxlckZvclJlc3RvcmVGcm9tRGlza1Rlc3QKKworLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoRXhwZWN0ZWRNZXNzYWdlOihOU1N0cmluZyAqKWV4cGVjdGVkTWVz
c2FnZQoreworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4g
bmlsOworCisgICAgX2V4cGVjdGVkTWVzc2FnZSA9IGV4cGVjdGVkTWVzc2FnZTsKKworICAgIHJl
dHVybiBzZWxmOworfQorCistICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjooV0tVc2VyQ29u
dGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2ZVNjcmlwdE1l
c3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UKK3sKKyAgICBOU0xvZyhAIk1FU1NBR0U6
ICVAXG4iLCBbbWVzc2FnZSBib2R5XSk7CisgICAgRVhQRUNUX1RSVUUoW1ttZXNzYWdlIGJvZHld
IGlzRXF1YWxUb1N0cmluZzpfZXhwZWN0ZWRNZXNzYWdlXSk7CisgICAgZG9uZSA9IHRydWU7Cit9
CitAZW5kCisKIEBpbnRlcmZhY2UgU1dTY2hlbWVzIDogTlNPYmplY3QgPFdLVVJMU2NoZW1lSGFu
ZGxlcj4gewogQHB1YmxpYwogICAgIEhhc2hNYXA8U3RyaW5nLCBSZXNvdXJjZUluZm8+IHJlc291
cmNlczsKQEAgLTIwMCw2ICsyMjYsNjIgQEAgTk9UIGludGVyY2VwdGVkIGJ5IHdvcmtlcgogPC9i
b2R5PgogKVNXUkVTT1VSQ0UiOwogCitzdGF0aWMgY29uc3QgY2hhciogbWFpblJlZ2lzdGVyaW5n
V29ya2VyQnl0ZXMgPSBSIlNXUkVTT1VSQ0UoCis8c2NyaXB0PgordHJ5IHsKK2Z1bmN0aW9uIGxv
Zyhtc2cpCit7CisgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuc3cucG9zdE1lc3Nh
Z2UobXNnKTsKK30KKworbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoJy9zdy5qcycp
LnRoZW4oZnVuY3Rpb24ocmVnKSB7CisgICAgaWYgKHJlZy5hY3RpdmUpIHsKKyAgICAgICAgbG9n
KCJGQUlMOiBSZWdpc3RyYXRpb24gYWxyZWFkeSBoYXMgYW4gYWN0aXZlIHdvcmtlciIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIHdvcmtlciA9IHJlZy5pbnN0YWxsaW5nOworICAgIHdv
cmtlci5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsIGZ1bmN0aW9uKCkgeworICAgICAg
ICBpZiAod29ya2VyLnN0YXRlID09ICdhY3RpdmF0ZWQnKQorICAgICAgICAgICAgbG9nKCJQQVNT
OiBSZWdpc3RyYXRpb24gd2FzIHN1Y2Nlc3NmdWwgYW5kIHNlcnZpY2Ugd29ya2VyIHdhcyBhY3Rp
dmF0ZWQiKTsKKyAgICB9KTsKK30pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgbG9nKCJS
ZWdpc3RyYXRpb24gZmFpbGVkIHdpdGg6ICIgKyBlcnJvcik7Cit9KTsKK30gY2F0Y2goZSkgewor
ICAgIGxvZygiRXhjZXB0aW9uOiAiICsgZSk7Cit9Cis8L3NjcmlwdD4KKylTV1JFU09VUkNFIjsK
Kworc3RhdGljIGNvbnN0IGNoYXIqIG1haW5SZWdpc3RlcmluZ0FscmVhZHlFeGlzdGluZ1dvcmtl
ckJ5dGVzID0gUiJTV1JFU09VUkNFKAorPHNjcmlwdD4KK3RyeSB7CitmdW5jdGlvbiBsb2cobXNn
KQoreworICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnN3LnBvc3RNZXNzYWdlKG1z
Zyk7Cit9CisKK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCcvc3cuanMnKS50aGVu
KGZ1bmN0aW9uKHJlZykgeworICAgIGlmIChyZWcuaW5zdGFsbGluZykgeworICAgICAgICBsb2co
IkZBSUw6IFJlZ2lzdHJhdGlvbiBoYWQgYW4gaW5zdGFsbGluZyB3b3JrZXIiKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBpZiAocmVnLmFjdGl2ZSkgeworICAgICAgICBpZiAocmVnLmFj
dGl2ZS5zdGF0ZSA9PSAiYWN0aXZhdGVkIikKKyAgICAgICAgICAgIGxvZygiUEFTUzogUmVnaXN0
cmF0aW9uIGFscmVhZHkgaGFzIGFuIGFjdGl2ZSB3b3JrZXIiKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgbG9nKCJGQUlMOiBSZWdpc3RyYXRpb24gaGFzIGFuIGFjdGl2ZSB3b3JrZXIgYnV0
IGl0cyBzdGF0ZSBpcyBub3QgYWN0aXZhdGVkIik7CisgICAgfSBlbHNlCisgICAgICAgIGxvZygi
RkFJTDogUmVnaXN0cmF0aW9uIGRvZXMgbm90IGhhdmUgYW4gYWN0aXZlIHdvcmtlciIpOworfSku
Y2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICBsb2coIlJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0
aDogIiArIGVycm9yKTsKK30pOworfSBjYXRjaChlKSB7CisgICAgbG9nKCJFeGNlcHRpb246ICIg
KyBlKTsKK30KKzwvc2NyaXB0PgorKVNXUkVTT1VSQ0UiOworCiBURVNUKFNlcnZpY2VXb3JrZXJz
LCBCYXNpYykKIHsKICAgICBBU1NFUlQobWFpbkJ5dGVzKTsKQEAgLTI0Niw2ICszMjgsNjUgQEAg
VEVTVChTZXJ2aWNlV29ya2VycywgQmFzaWMpCiAgICAgZG9uZSA9IGZhbHNlOwogfQogCitURVNU
KFNlcnZpY2VXb3JrZXJzLCBSZXN0b3JlRnJvbURpc2spCit7CisgICAgQVNTRVJUKG1haW5SZWdp
c3RlcmluZ1dvcmtlckJ5dGVzKTsKKyAgICBBU1NFUlQoc2NyaXB0Qnl0ZXMpOworICAgIEFTU0VS
VChtYWluUmVnaXN0ZXJpbmdBbHJlYWR5RXhpc3RpbmdXb3JrZXJCeXRlcyk7CisKKyAgICBbV0tX
ZWJzaXRlRGF0YVN0b3JlIF9hbGxvd1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnNdOwor
CisgICAgLy8gU3RhcnQgd2l0aCBhIGNsZWFuIHNsYXRlIGRhdGEgc3RvcmUKKyAgICBbW1dLV2Vi
c2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJz
aXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBk
aXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7
CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25l
ID0gZmFsc2U7CisKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CisKKyAgICBSZXRhaW5QdHI8U1dNZXNzYWdlSGFuZGxlckZvclJlc3RvcmVGcm9tRGlza1Rlc3Q+
IG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1NXTWVzc2FnZUhhbmRsZXJGb3JSZXN0b3JlRnJv
bURpc2tUZXN0IGFsbG9jXSBpbml0V2l0aEV4cGVjdGVkTWVzc2FnZTpAIlBBU1M6IFJlZ2lzdHJh
dGlvbiB3YXMgc3VjY2Vzc2Z1bCBhbmQgc2VydmljZSB3b3JrZXIgd2FzIGFjdGl2YXRlZCJdKTsK
KyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNz
YWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAic3ciXTsKKworICAgIFJldGFp
blB0cjxTV1NjaGVtZXM+IGhhbmRsZXIgPSBhZG9wdE5TKFtbU1dTY2hlbWVzIGFsbG9jXSBpbml0
XSk7CisgICAgaGFuZGxlci0+cmVzb3VyY2VzLnNldCgic3c6Ly9ob3N0L21haW4uaHRtbCIsIFJl
c291cmNlSW5mbyB7IEAidGV4dC9odG1sIiwgbWFpblJlZ2lzdGVyaW5nV29ya2VyQnl0ZXMgfSk7
CisgICAgaGFuZGxlci0+cmVzb3VyY2VzLnNldCgic3c6Ly9ob3N0L3N3LmpzIiwgUmVzb3VyY2VJ
bmZvIHsgQCJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Iiwgc2NyaXB0Qnl0ZXMgfSk7CisgICAgW2Nv
bmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVt
ZTpAIlNXIl07CisKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldy5nZXQo
KS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sIF9yZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3Jr
ZXJzQ2FuSGFuZGxlOkAic3ciXTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3Qv
bWFpbi5odG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIHdlYlZpZXcgPSBudWxscHRy
OworICAgIGNvbmZpZ3VyYXRpb24gPSBudWxscHRyOworICAgIG1lc3NhZ2VIYW5kbGVyID0gbnVs
bHB0cjsKKyAgICBoYW5kbGVyID0gbnVsbHB0cjsKKworICAgIGRvbmUgPSBmYWxzZTsKKworICAg
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1NXTWVzc2FnZUhhbmRsZXJG
b3JSZXN0b3JlRnJvbURpc2tUZXN0IGFsbG9jXSBpbml0V2l0aEV4cGVjdGVkTWVzc2FnZTpAIlBB
U1M6IFJlZ2lzdHJhdGlvbiBhbHJlYWR5IGhhcyBhbiBhY3RpdmUgd29ya2VyIl0pOworICAgIFtb
Y29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5k
bGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJzdyJdOworCisgICAgaGFuZGxlciA9IGFk
b3B0TlMoW1tTV1NjaGVtZXMgYWxsb2NdIGluaXRdKTsKKyAgICBoYW5kbGVyLT5yZXNvdXJjZXMu
c2V0KCJzdzovL2hvc3QvbWFpbi5odG1sIiwgUmVzb3VyY2VJbmZvIHsgQCJ0ZXh0L2h0bWwiLCBt
YWluUmVnaXN0ZXJpbmdBbHJlYWR5RXhpc3RpbmdXb3JrZXJCeXRlcyB9KTsKKyAgICBoYW5kbGVy
LT5yZXNvdXJjZXMuc2V0KCJzdzovL2hvc3Qvc3cuanMiLCBSZXNvdXJjZUluZm8geyBAImFwcGxp
Y2F0aW9uL2phdmFzY3JpcHQiLCBzY3JpcHRCeXRlcyB9KTsKKyAgICBbY29uZmlndXJhdGlvbiBz
ZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiU1ciXTsKKwor
ICAgIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KV0pOworICAgIFt3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wgX3JlZ2lz
dGVyVVJMU2NoZW1lU2VydmljZVdvcmtlcnNDYW5IYW5kbGU6QCJzdyJdOworCisgICAgcmVxdWVz
dCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJz
dzovL2hvc3QvbWFpbi5odG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3Rd
OworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFs
c2U7Cit9CisKIFRFU1QoU2VydmljZVdvcmtlcnMsIEZldGNoQWZ0ZXJSZXN0b3JlRnJvbURpc2sp
CiB7CiAgICAgQVNTRVJUKG1haW5Gb3JGZXRjaFRlc3RCeXRlcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331689</attachid>
            <date>2018-01-18 18:36:50 -0800</date>
            <delta_ts>2018-01-19 11:13:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181810-20180118183649.patch</filename>
            <type>text/plain</type>
            <size>13241</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3MTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmUxYWQ3NGEyZGRlZWQ2
ZWQzY2Y2N2FhYTNlNWU2NGVmYjFlZDk1OS4uM2Y5ZTY1OTMzYWM5NTI0YTM4NTMzNThkN2FlOGEz
YThiMGM1NmNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE4LTAxLTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZSB3b3JrZXIgcmVn
aXN0cmF0aW9ucyByZXN0b3JlZCBmcm9tIGRpc2sgbWF5IG5vdCBiZSByZXVzZWQgd2hlbiB0aGUg
SlMgY2FsbHMgcmVnaXN0ZXIoKSBhZ2FpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgxODEwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjU5MTcx
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUg
aXNzdWUgd2FzIHRoYXQgd2hlbiByZXN0b3JpbmcgYSByZWdpc3RyYXRpb24gZnJvbSBkaXNrLCB3
ZSB3b3VsZCBub3Qgc2V0IGl0cyBhY3RpdmUgd29ya2VyIHJpZ2h0CisgICAgICAgIGF3YXkuIFdl
IG9ubHkgc2V0IGl0IGxhdGVyIGluIGluc3RhbGxDb250ZXh0RGF0YSgpLiBpbnN0YWxsQ29udGV4
dERhdGEoKSBpcyBvbmx5IGNhbGxlZCBhZnRlciB3ZeKAmXZlCisgICAgICAgIGxhdW5jaGVkIHRo
ZSBzZXJ2aWNlIHdvcmtlciBwcm9jZXNzIGFuZCBlc3RhYmxpc2hlZCBhIGNvbm5lY3Rpb24gdG8g
aXQuCisKKyAgICAgICAgSG93ZXZlciwgd2Ugd291bGQgc3RhcnQgcHJvY2Vzc2luZyBqb2JzIChz
dWNoIGFzIHJlZ2lzdHJhdGlvbnMpIGJlZm9yZSB3ZeKAmXZlIGVzdGFibGlzaGVkIHRoZSBjb25u
ZWN0aW9uCisgICAgICAgIHRvIHRoZSBzZXJ2aWNlIHdvcmtlciBwcm9jZXNzLiBTV1NlcnZlckpv
YlF1ZXVlOjpydW5SZWdpc3RlckpvYigpLCBpbiBvcmRlciB0byByZXVzZSBhbiBleGlzdGluZwor
ICAgICAgICByZWdpc3RyYXRpb24gY2hlY2tzIHRoZSByZWdpc3RyYXRpb27igJlzIGFjdGl2ZSB3
b3JrZXIgaGFzIHRoZSByaWdodCBzY3JpcHQgVVJMLiBUaGUgaXNzdWUgd2FzIHRoYXQgd2hlbgor
ICAgICAgICB0aGlzIGNvZGUgd291bGQgZXhlY3V0ZSwgd2UgbWF5IG5vdCBoYXZlIHNldCB0aGUg
cmVnaXN0cmF0aW9u4oCZcyBhY3RpdmUgc2VydmljZSB3b3JrZXIgeWV0LCBpbiB3aGljaCBjYXNl
LAorICAgICAgICB3ZSB3b3VsZCB1cGRhdGUgdGhlIGV4aXN0aW5nIHJlZ2lzdHJhdGlvbiBpbnN0
ZWFkIG9mIHJldXNpbmcgaXQgYXMtaXMuCisKKyAgICAgICAgVG8gYWRkcmVzcyB0aGUgaXNzdWUs
IHdlIG5vdyBkZWxheSB0aGUgcHJvY2Vzc2luZyBvZiBqb2JzIHVudGlsIHRoZSBjb25uZWN0aW9u
IHRvIHRoZSBzZXJ2aWNlIHdvcmtlcgorICAgICAgICBwcm9jZXNzIGhhcyBiZWVuIGVzdGFibGlz
aGVkIGFuZCB3ZSd2ZSBpbnN0YWxsZWQgYWxsIHBlbmRpbmcgY29udGV4dHMgdmlhIGluc3RhbGxD
b250ZXh0RGF0YSgpLgorCisgICAgICAgIENoYW5nZWQgaXMgY292ZXJlZCBieSBuZXcgQVBJIHRl
c3QuCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpDb25uZWN0aW9uOjpzY2hlZHVsZUpvYkluU2VydmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpzY2hlZHVsZUpvYik6CisgICAgICAgIChX
ZWJDb3JlOjpTV1NlcnZlcjo6c2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbkNyZWF0ZWQpOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKwogMjAxOC0wMS0xOCAg
RGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gU3RyZWFt
bGluZSBhbmQgZnV0dXJlLXByb29mIHRhcmdldC1tYWNPUy12ZXJzaW9uLWRlcGVuZGVudCBidWls
ZCBzZXR0aW5nIGRlZmluaXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IDk4NjdjMjJiNTA3MWYxNTMzMTM3MTA0NGM3
YzQ4OGRhZmUxZDE1NDUuLjg4NGQwMmVlMGJlOWRhOWY4ZjNhNTU4NWM3ZTM4YTVjM2UwMDRmMzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXIuY3BwCkBAIC0yMDksMTIgKzIwOSwxMiBAQCB2b2lkIFNXU2VydmVyOjpjbGVhcihjb25zdCBT
ZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKQogICAg
IG1fcmVnaXN0cmF0aW9uU3RvcmUuZmx1c2hDaGFuZ2VzKFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKIH0KIAotdm9pZCBTV1NlcnZlcjo6Q29ubmVjdGlvbjo6c2NoZWR1bGVKb2JJblNlcnZl
cihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSkKK3ZvaWQgU1dTZXJ2ZXI6OkNv
bm5lY3Rpb246OnNjaGVkdWxlSm9iSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYkRhdGEmJiBqb2JE
YXRhKQogewogICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU2NoZWR1bGluZyBTZXJ2aWNlV29ya2Vy
IGpvYiAlcyBpbiBzZXJ2ZXIiLCBqb2JEYXRhLmlkZW50aWZpZXIoKS5sb2dnaW5nU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CiAgICAgQVNTRVJUKGlkZW50aWZpZXIoKSA9PSBqb2JEYXRhLmNvbm5l
Y3Rpb25JZGVudGlmaWVyKCkpOwogCi0gICAgbV9zZXJ2ZXIuc2NoZWR1bGVKb2Ioam9iRGF0YSk7
CisgICAgbV9zZXJ2ZXIuc2NoZWR1bGVKb2IoV1RGTW92ZShqb2JEYXRhKSk7CiB9CiAKIHZvaWQg
U1dTZXJ2ZXI6OkNvbm5lY3Rpb246OmZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3Qg
U2VydmljZVdvcmtlckZldGNoUmVzdWx0JiByZXN1bHQpCkBAIC0yNTYsMTAgKzI1NiwxNSBAQCBT
V1NlcnZlcjo6U1dTZXJ2ZXIoVW5pcXVlUmVmPFNXT3JpZ2luU3RvcmU+JiYgb3JpZ2luU3RvcmUs
IFN0cmluZyYmIHJlZ2lzdHJhdGlvbgogfQogCiAvLyBodHRwczovL3czYy5naXRodWIuaW8vU2Vy
dmljZVdvcmtlci8jc2NoZWR1bGUtam9iLWFsZ29yaXRobQotdm9pZCBTV1NlcnZlcjo6c2NoZWR1
bGVKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEpCit2b2lkIFNXU2VydmVy
OjpzY2hlZHVsZUpvYihTZXJ2aWNlV29ya2VySm9iRGF0YSYmIGpvYkRhdGEpCiB7CiAgICAgQVNT
RVJUKG1fY29ubmVjdGlvbnMuY29udGFpbnMoam9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmllcigp
KSk7CiAKKyAgICBpZiAoIVNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Z2xvYmFsU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbigpKSB7CisgICAgICAgIG1fcGVuZGluZ0pvYnMuYXBwZW5kKFdU
Rk1vdmUoam9iRGF0YSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgLy8gRklYTUU6
IFBlciB0aGUgc3BlYywgY2hlY2sgaWYgdGhpcyBqb2IgaXMgZXF1aXZhbGVudCB0byB0aGUgbGFz
dCBqb2Igb24gdGhlIHF1ZXVlLgogICAgIC8vIElmIGl0IGlzLCBzdGFjayBpdCBhbG9uZyB3aXRo
IHRoYXQgam9iLgogCkBAIC00NzEsNiArNDc2LDEwIEBAIHZvaWQgU1dTZXJ2ZXI6OnNlcnZlclRv
Q29udGV4dENvbm5lY3Rpb25DcmVhdGVkKCkKICAgICAgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6
IGl0ZW0udmFsdWUpCiAgICAgICAgICAgICBjYWxsYmFjayhzdWNjZXNzLCAqY29ubmVjdGlvbik7
CiAgICAgfQorCisgICAgYXV0byBwZW5kaW5nSm9icyA9IFdURk1vdmUobV9wZW5kaW5nSm9icyk7
CisgICAgZm9yIChhdXRvJiBqb2JEYXRhIDogcGVuZGluZ0pvYnMpCisgICAgICAgIHNjaGVkdWxl
Sm9iKFdURk1vdmUoam9iRGF0YSkpOwogfQogCiB2b2lkIFNXU2VydmVyOjppbnN0YWxsQ29udGV4
dERhdGEoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCmluZGV4IDhiOWFkMWU1
NzY5ZThiMGNlZmNmODViN2VjZjcyMmQ5ZjhhMzk3YTQuLjczMmQ1MDI5NmVjNjQ2ZTM3NjViNzM1
NGRjYzIzZTEwYWQ5NTRmZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyLmgKQEAgLTk0LDcgKzk0LDcgQEAgcHVibGljOgogICAgICAgICBX
RUJDT1JFX0VYUE9SVCBleHBsaWNpdCBDb25uZWN0aW9uKFNXU2VydmVyJik7CiAgICAgICAgIFNX
U2VydmVyJiBzZXJ2ZXIoKSB7IHJldHVybiBtX3NlcnZlcjsgfQogCi0gICAgICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0
YSYpOworICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlSm9iSW5TZXJ2ZXIoU2Vy
dmljZVdvcmtlckpvYkRhdGEmJik7CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmluaXNo
RmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKTsK
ICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SW5TZXJ2ZXIoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwogICAgICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZl
cihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CkBAIC0xMzEsNyArMTMxLDcg
QEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlUmVnaXN0cmF0aW9uKGNvbnN0IFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25LZXkmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGE+IGdldFJlZ2lzdHJhdGlvbnMoY29uc3QgU2VjdXJpdHlPcmln
aW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKTsKIAotICAgIHZvaWQgc2No
ZWR1bGVKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKTsKKyAgICB2b2lkIHNjaGVkdWxl
Sm9iKFNlcnZpY2VXb3JrZXJKb2JEYXRhJiYpOwogICAgIHZvaWQgcmVqZWN0Sm9iKGNvbnN0IFNl
cnZpY2VXb3JrZXJKb2JEYXRhJiwgY29uc3QgRXhjZXB0aW9uRGF0YSYpOwogICAgIHZvaWQgcmVz
b2x2ZVJlZ2lzdHJhdGlvbkpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYsIGNvbnN0IFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiwgU2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKTsK
ICAgICB2b2lkIHJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9i
RGF0YSYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBib29sIHVucmVnaXN0
cmF0aW9uUmVzdWx0KTsKQEAgLTIzOCw3ICsyMzgsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9t
YWluVGhyZWFkUmVwbHlTY2hlZHVsZWQgeyBmYWxzZSB9OwogICAgIFVuaXF1ZVJlZjxTV09yaWdp
blN0b3JlPiBtX29yaWdpblN0b3JlOwogICAgIFJlZ2lzdHJhdGlvblN0b3JlIG1fcmVnaXN0cmF0
aW9uU3RvcmU7Ci0gICAgRGVxdWU8U2VydmljZVdvcmtlckNvbnRleHREYXRhPiBtX3BlbmRpbmdD
b250ZXh0RGF0YXM7CisgICAgVmVjdG9yPFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YT4gbV9wZW5k
aW5nQ29udGV4dERhdGFzOworICAgIFZlY3RvcjxTZXJ2aWNlV29ya2VySm9iRGF0YT4gbV9wZW5k
aW5nSm9iczsKICAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBWZWN0b3I8UnVu
U2VydmljZVdvcmtlckNhbGxiYWNrPj4gbV9zZXJ2aWNlV29ya2VyUnVuUmVxdWVzdHM7CiAgICAg
UEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgYm9vbCBtX2ltcG9ydENvbXBsZXRlZCB7
IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggOTJlYmI1ZTY5NTI0NzA2Njc4MzgzNTlhZjJhZDRhZTVkOTJhMjQxMi4uNzdiOWVmYTg0
NGY2MDM4ZGFlMWNiZDIyOWYyYmI0YmNjYTgwMGMzOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTAxLTE4ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZSB3b3JrZXIg
cmVnaXN0cmF0aW9ucyByZXN0b3JlZCBmcm9tIGRpc2sgbWF5IG5vdCBiZSByZXVzZWQgd2hlbiB0
aGUgSlMgY2FsbHMgcmVnaXN0ZXIoKSBhZ2FpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxODEwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjU5
MTcxMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbToKKyAgICAgICAgKC1bU1dNZXNzYWdlSGFu
ZGxlckZvclJlc3RvcmVGcm9tRGlza1Rlc3QgaW5pdFdpdGhFeHBlY3RlZE1lc3NhZ2U6XSk6Cisg
ICAgICAgICgtW1NXTWVzc2FnZUhhbmRsZXJGb3JSZXN0b3JlRnJvbURpc2tUZXN0IHVzZXJDb250
ZW50Q29udHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTpdKToKKwogMjAxOC0wMS0xOCAg
RGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gU3RyZWFt
bGluZSBhbmQgZnV0dXJlLXByb29mIHRhcmdldC1tYWNPUy12ZXJzaW9uLWRlcGVuZGVudCBidWls
ZCBzZXR0aW5nIGRlZmluaXRpb25zCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCmluZGV4IGVlOGU3N2I3
OTk5ZDIzZDM4OTkxOThkYTI1NjNlYWY1OWQ0MjA1YWEuLjNkOTFiMWI3ZDhlNjcwYzBjYWRmMmM1
YmRhYWNjNjg2OWVjZTUwZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCkBAIC03NSw2ICs3NSwz
MSBAQCAtICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjooV0tVc2VyQ29udGVudENvbnRyb2xs
ZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZAogfQogQGVuZAogCitAaW50ZXJmYWNlIFNXTWVz
c2FnZUhhbmRsZXJGb3JSZXN0b3JlRnJvbURpc2tUZXN0IDogTlNPYmplY3QgPFdLU2NyaXB0TWVz
c2FnZUhhbmRsZXI+IHsKKyAgICBOU1N0cmluZyAqX2V4cGVjdGVkTWVzc2FnZTsKK30KKy0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aEV4cGVjdGVkTWVzc2FnZTooTlNTdHJpbmcgKilleHBlY3RlZE1l
c3NhZ2U7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBTV01lc3NhZ2VIYW5kbGVyRm9yUmVzdG9y
ZUZyb21EaXNrVGVzdAorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhFeHBlY3RlZE1lc3NhZ2U6
KE5TU3RyaW5nICopZXhwZWN0ZWRNZXNzYWdlCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBp
bml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfZXhwZWN0ZWRNZXNzYWdlID0gZXhw
ZWN0ZWRNZXNzYWdlOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpdXNlckNvbnRl
bnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29udHJv
bGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNzYWdlICopbWVzc2FnZQor
eworICAgIEVYUEVDVF9UUlVFKFtbbWVzc2FnZSBib2R5XSBpc0VxdWFsVG9TdHJpbmc6X2V4cGVj
dGVkTWVzc2FnZV0pOworICAgIGRvbmUgPSB0cnVlOworfQorQGVuZAorCiBAaW50ZXJmYWNlIFNX
U2NoZW1lcyA6IE5TT2JqZWN0IDxXS1VSTFNjaGVtZUhhbmRsZXI+IHsKIEBwdWJsaWMKICAgICBI
YXNoTWFwPFN0cmluZywgUmVzb3VyY2VJbmZvPiByZXNvdXJjZXM7CkBAIC0yMDAsNiArMjI1LDYy
IEBAIE5PVCBpbnRlcmNlcHRlZCBieSB3b3JrZXIKIDwvYm9keT4KIClTV1JFU09VUkNFIjsKIAor
c3RhdGljIGNvbnN0IGNoYXIqIG1haW5SZWdpc3RlcmluZ1dvcmtlckJ5dGVzID0gUiJTV1JFU09V
UkNFKAorPHNjcmlwdD4KK3RyeSB7CitmdW5jdGlvbiBsb2cobXNnKQoreworICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnN3LnBvc3RNZXNzYWdlKG1zZyk7Cit9CisKK25hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCcvc3cuanMnKS50aGVuKGZ1bmN0aW9uKHJlZykgewor
ICAgIGlmIChyZWcuYWN0aXZlKSB7CisgICAgICAgIGxvZygiRkFJTDogUmVnaXN0cmF0aW9uIGFs
cmVhZHkgaGFzIGFuIGFjdGl2ZSB3b3JrZXIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICB3b3JrZXIgPSByZWcuaW5zdGFsbGluZzsKKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcign
c3RhdGVjaGFuZ2UnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHdvcmtlci5zdGF0ZSA9PSAn
YWN0aXZhdGVkJykKKyAgICAgICAgICAgIGxvZygiUEFTUzogUmVnaXN0cmF0aW9uIHdhcyBzdWNj
ZXNzZnVsIGFuZCBzZXJ2aWNlIHdvcmtlciB3YXMgYWN0aXZhdGVkIik7CisgICAgfSk7Cit9KS5j
YXRjaChmdW5jdGlvbihlcnJvcikgeworICAgIGxvZygiUmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRo
OiAiICsgZXJyb3IpOworfSk7Cit9IGNhdGNoKGUpIHsKKyAgICBsb2coIkV4Y2VwdGlvbjogIiAr
IGUpOworfQorPC9zY3JpcHQ+CispU1dSRVNPVVJDRSI7CisKK3N0YXRpYyBjb25zdCBjaGFyKiBt
YWluUmVnaXN0ZXJpbmdBbHJlYWR5RXhpc3RpbmdXb3JrZXJCeXRlcyA9IFIiU1dSRVNPVVJDRSgK
KzxzY3JpcHQ+Cit0cnkgeworZnVuY3Rpb24gbG9nKG1zZykKK3sKKyAgICB3aW5kb3cud2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy5zdy5wb3N0TWVzc2FnZShtc2cpOworfQorCituYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5yZWdpc3RlcignL3N3LmpzJykudGhlbihmdW5jdGlvbihyZWcpIHsKKyAgICBp
ZiAocmVnLmluc3RhbGxpbmcpIHsKKyAgICAgICAgbG9nKCJGQUlMOiBSZWdpc3RyYXRpb24gaGFk
IGFuIGluc3RhbGxpbmcgd29ya2VyIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYg
KHJlZy5hY3RpdmUpIHsKKyAgICAgICAgaWYgKHJlZy5hY3RpdmUuc3RhdGUgPT0gImFjdGl2YXRl
ZCIpCisgICAgICAgICAgICBsb2coIlBBU1M6IFJlZ2lzdHJhdGlvbiBhbHJlYWR5IGhhcyBhbiBh
Y3RpdmUgd29ya2VyIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxvZygiRkFJTDogUmVn
aXN0cmF0aW9uIGhhcyBhbiBhY3RpdmUgd29ya2VyIGJ1dCBpdHMgc3RhdGUgaXMgbm90IGFjdGl2
YXRlZCIpOworICAgIH0gZWxzZQorICAgICAgICBsb2coIkZBSUw6IFJlZ2lzdHJhdGlvbiBkb2Vz
IG5vdCBoYXZlIGFuIGFjdGl2ZSB3b3JrZXIiKTsKK30pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7
CisgICAgbG9nKCJSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGg6ICIgKyBlcnJvcik7Cit9KTsKK30g
Y2F0Y2goZSkgeworICAgIGxvZygiRXhjZXB0aW9uOiAiICsgZSk7Cit9Cis8L3NjcmlwdD4KKylT
V1JFU09VUkNFIjsKKwogVEVTVChTZXJ2aWNlV29ya2VycywgQmFzaWMpCiB7CiAgICAgQVNTRVJU
KG1haW5CeXRlcyk7CkBAIC0yNDYsNiArMzI3LDY1IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIEJh
c2ljKQogICAgIGRvbmUgPSBmYWxzZTsKIH0KIAorVEVTVChTZXJ2aWNlV29ya2VycywgUmVzdG9y
ZUZyb21EaXNrKQoreworICAgIEFTU0VSVChtYWluUmVnaXN0ZXJpbmdXb3JrZXJCeXRlcyk7Cisg
ICAgQVNTRVJUKHNjcmlwdEJ5dGVzKTsKKyAgICBBU1NFUlQobWFpblJlZ2lzdGVyaW5nQWxyZWFk
eUV4aXN0aW5nV29ya2VyQnl0ZXMpOworCisgICAgW1dLV2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dX
ZWJzaXRlRGF0YVJlY29yZHNGb3JBbGxPcmlnaW5zXTsKKworICAgIC8vIFN0YXJ0IHdpdGggYSBj
bGVhbiBzbGF0ZSBkYXRhIHN0b3JlCisgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERh
dGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRl
RGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25I
YW5kbGVyOl4oKSB7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgUmV0YWlu
UHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworCisgICAgUmV0YWluUHRyPFNXTWVz
c2FnZUhhbmRsZXJGb3JSZXN0b3JlRnJvbURpc2tUZXN0PiBtZXNzYWdlSGFuZGxlciA9IGFkb3B0
TlMoW1tTV01lc3NhZ2VIYW5kbGVyRm9yUmVzdG9yZUZyb21EaXNrVGVzdCBhbGxvY10gaW5pdFdp
dGhFeHBlY3RlZE1lc3NhZ2U6QCJQQVNTOiBSZWdpc3RyYXRpb24gd2FzIHN1Y2Nlc3NmdWwgYW5k
IHNlcnZpY2Ugd29ya2VyIHdhcyBhY3RpdmF0ZWQiXSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVz
ZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRs
ZXIuZ2V0KCkgbmFtZTpAInN3Il07CisKKyAgICBSZXRhaW5QdHI8U1dTY2hlbWVzPiBoYW5kbGVy
ID0gYWRvcHROUyhbW1NXU2NoZW1lcyBhbGxvY10gaW5pdF0pOworICAgIGhhbmRsZXItPnJlc291
cmNlcy5zZXQoInN3Oi8vaG9zdC9tYWluLmh0bWwiLCBSZXNvdXJjZUluZm8geyBAInRleHQvaHRt
bCIsIG1haW5SZWdpc3RlcmluZ1dvcmtlckJ5dGVzIH0pOworICAgIGhhbmRsZXItPnJlc291cmNl
cy5zZXQoInN3Oi8vaG9zdC9zdy5qcyIsIFJlc291cmNlSW5mbyB7IEAiYXBwbGljYXRpb24vamF2
YXNjcmlwdCIsIHNjcmlwdEJ5dGVzIH0pOworICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVt
ZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJTVyJdOworCisgICAgUmV0YWlu
UHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNz
UG9vbCBfcmVnaXN0ZXJVUkxTY2hlbWVTZXJ2aWNlV29ya2Vyc0NhbkhhbmRsZTpAInN3Il07CisK
KyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKKyAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisKKyAgICB3ZWJWaWV3ID0gbnVsbHB0cjsKKyAgICBjb25maWd1cmF0aW9uID0g
bnVsbHB0cjsKKyAgICBtZXNzYWdlSGFuZGxlciA9IG51bGxwdHI7CisgICAgaGFuZGxlciA9IG51
bGxwdHI7CisKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBtZXNzYWdlSGFu
ZGxlciA9IGFkb3B0TlMoW1tTV01lc3NhZ2VIYW5kbGVyRm9yUmVzdG9yZUZyb21EaXNrVGVzdCBh
bGxvY10gaW5pdFdpdGhFeHBlY3RlZE1lc3NhZ2U6QCJQQVNTOiBSZWdpc3RyYXRpb24gYWxyZWFk
eSBoYXMgYW4gYWN0aXZlIHdvcmtlciJdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRl
bnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQo
KSBuYW1lOkAic3ciXTsKKworICAgIGhhbmRsZXIgPSBhZG9wdE5TKFtbU1dTY2hlbWVzIGFsbG9j
XSBpbml0XSk7CisgICAgaGFuZGxlci0+cmVzb3VyY2VzLnNldCgic3c6Ly9ob3N0L21haW4uaHRt
bCIsIFJlc291cmNlSW5mbyB7IEAidGV4dC9odG1sIiwgbWFpblJlZ2lzdGVyaW5nQWxyZWFkeUV4
aXN0aW5nV29ya2VyQnl0ZXMgfSk7CisgICAgaGFuZGxlci0+cmVzb3VyY2VzLnNldCgic3c6Ly9o
b3N0L3N3LmpzIiwgUmVzb3VyY2VJbmZvIHsgQCJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Iiwgc2Ny
aXB0Qnl0ZXMgfSk7CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5k
bGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlNXIl07CisKKyAgICB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldy5nZXQo
KS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sIF9yZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3Jr
ZXJzQ2FuSGFuZGxlOkAic3ciXTsKKworICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsK
KyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworfQorCiBURVNUKFNlcnZpY2VX
b3JrZXJzLCBGZXRjaEFmdGVyUmVzdG9yZUZyb21EaXNrKQogewogICAgIEFTU0VSVChtYWluRm9y
RmV0Y2hUZXN0Qnl0ZXMpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>