<?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>227564</bug_id>
          
          <creation_ts>2021-06-30 20:36:22 -0700</creation_ts>
          <short_desc>WebSocket traffic should be associated with content in Safari rather than the app itself</short_desc>
          <delta_ts>2021-07-23 11:23:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>iPhone / iPad</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>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Richard Houle">rhoule</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>toyoshim</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1773986</commentid>
    <comment_count>0</comment_count>
      <attachid>432654</attachid>
    <who name="Richard Houle">rhoule</who>
    <bug_when>2021-06-30 20:36:22 -0700</bug_when>
    <thetext>Created attachment 432654
Proposed fix

&lt;rdar://79307301&gt;

WebSocket traffic is currently assigned to Safari. Someone browsing on a website using web sockets as messaging will be reported as Safari contacting a website rather than the content contacting a website.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774185</commentid>
    <comment_count>1</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-07-01 11:43:46 -0700</bug_when>
    <thetext>Looks good. I think we should write a test before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775593</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-07 20:37:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/80303362&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775915</commentid>
    <comment_count>3</comment_count>
      <attachid>433197</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-07-08 20:52:29 -0700</bug_when>
    <thetext>Created attachment 433197
test case app initiated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775916</commentid>
    <comment_count>4</comment_count>
      <attachid>433198</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-07-08 20:52:50 -0700</bug_when>
    <thetext>Created attachment 433198
test case user initiated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775917</commentid>
    <comment_count>5</comment_count>
      <attachid>432654</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-07-08 20:54:57 -0700</bug_when>
    <thetext>Comment on attachment 432654
Proposed fix

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

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:1696
&gt; +    if (!request.isAppBound()) {

I did a rename so you will likely have to rebase this patch.

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:1701
&gt; +#endif

I think you&apos;ll also need something like this:

appPrivacyReportTestingData().didLoadAppInitiatedRequest(nsRequest.get().attribution == NSURLRequestAttributionDeveloper);

here to send the attribution data to the test runner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778789</commentid>
    <comment_count>6</comment_count>
      <attachid>434027</attachid>
    <who name="Richard Houle">rhoule</who>
    <bug_when>2021-07-22 12:12:54 -0700</bug_when>
    <thetext>Created attachment 434027
V2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778814</commentid>
    <comment_count>7</comment_count>
      <attachid>434032</attachid>
    <who name="Richard Houle">rhoule</who>
    <bug_when>2021-07-22 13:44:07 -0700</bug_when>
    <thetext>Created attachment 434032
V3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778867</commentid>
    <comment_count>8</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-07-22 15:29:11 -0700</bug_when>
    <thetext>(In reply to Richard Houle from comment #7)
&gt; Created attachment 434032 [details]
&gt; V3

You will need to update test expectations to skip the new tests in open source because our EWS bots are iOS 14 only. You can either move them to the LayoutTests/http/tests/app-privacy-report/ directory which is already skipped or add the test path you made to LayoutTests/TestExpectations (just make sure they pass locally).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778924</commentid>
    <comment_count>9</comment_count>
      <attachid>434049</attachid>
    <who name="Richard Houle">rhoule</who>
    <bug_when>2021-07-22 17:51:49 -0700</bug_when>
    <thetext>Created attachment 434049
V4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778925</commentid>
    <comment_count>10</comment_count>
    <who name="Richard Houle">rhoule</who>
    <bug_when>2021-07-22 17:54:25 -0700</bug_when>
    <thetext>I got the following output when I ran them locally:

Test configuration: &lt;, x86_64, release&gt;
Placing test results in /Volumes/Work/Safari/OpenSource/WebKitBuild/Release-iphonesimulator/layout-test-results
Using Release build
Pixel tests disabled
Regular timeout: 30000, slow test timeout: 150000
Command line: /Volumes/Work/Safari/OpenSource/WebKitBuild/Release-iphonesimulator/WebKitTestRunnerApp.app -

--lint-test-files warnings:                                           
LayoutTests/platform/ios/TestExpectations:2652 Path does not exist. imported/w3c/web-platform-tests/html/webappapis/timers/type-long-setinterval.html
LayoutTests/platform/ios-wk2/TestExpectations:1204 Path does not exist. imported/w3c/web-platform-tests/html/webappapis/timers/negative-settimeout.html
LayoutTests/platform/ios-wk2/TestExpectations:1278 Path does not exist. imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.html

Found 2 tests; running 2, skipping 0.
                        
Verbose baseline search path: platform/iphone-se (1st generation)-simulator-15-wk2 -&gt; platform/iphone-se (1st generation)-simulator-15 -&gt; platform/iphone-se (1st generation)-simulator-wk2 -&gt; platform/iphone-se (1st generation)-simulator -&gt; platform/iphone-simulator-15-wk2 -&gt; platform/iphone-simulator-15 -&gt; platform/iphone-simulator-wk2 -&gt; platform/iphone-simulator -&gt; platform/ios-simulator-15-wk2 -&gt; platform/ios-simulator-15 -&gt; platform/ios-simulator-wk2 -&gt; platform/ios-simulator -&gt; platform/iphone-se (1st generation)-15-wk2 -&gt; platform/iphone-se (1st generation)-15 -&gt; platform/iphone-se (1st generation)-wk2 -&gt; platform/iphone-se (1st generation) -&gt; platform/iphone-15-wk2 -&gt; platform/iphone-15 -&gt; platform/iphone-wk2 -&gt; platform/iphone -&gt; platform/ios-15-wk2 -&gt; platform/ios-15 -&gt; platform/ios-wk2 -&gt; platform/ios -&gt; platform/wk2 -&gt; generic

Baseline search path: platform/ios-simulator-wk2 -&gt; platform/ios-simulator -&gt; platform/ios-wk2 -&gt; platform/ios -&gt; platform/wk2 -&gt; generic

Running 2 tests for iPhone SE (1st generation) running iOS 15

Running 1 WebKitTestRunnerApp.app.

[1/2] http/tests/app-privacy-report/websocket-isappinitiated.html passed
[2/2] http/tests/app-privacy-report/websocket-isnotappinitiated.html passed
                        
All 2 tests ran as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779083</commentid>
    <comment_count>11</comment_count>
      <attachid>434049</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-07-23 10:09:36 -0700</bug_when>
    <thetext>Comment on attachment 434049
V4

Looks good! r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779084</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-23 10:10:42 -0700</bug_when>
    <thetext>Unable to find any modified ChangeLog in Attachment 434049</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779085</commentid>
    <comment_count>13</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-07-23 10:11:39 -0700</bug_when>
    <thetext>Ah, missing a ChangeLog, can you upload a new patch with one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779088</commentid>
    <comment_count>14</comment_count>
      <attachid>434097</attachid>
    <who name="Richard Houle">rhoule</who>
    <bug_when>2021-07-23 10:24:43 -0700</bug_when>
    <thetext>Created attachment 434097
V4 with Changeling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779103</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-23 11:23:22 -0700</bug_when>
    <thetext>Committed r280250 (239917@main): &lt;https://commits.webkit.org/239917@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434097.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432654</attachid>
            <date>2021-06-30 20:36:22 -0700</date>
            <delta_ts>2021-07-22 12:12:54 -0700</delta_ts>
            <desc>Proposed fix</desc>
            <filename>WebSocket.patch</filename>
            <type>text/plain</type>
            <size>1122</size>
            <attacher name="Richard Houle">rhoule</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Nlc3Npb25Db2NvYS5tbQppbmRleCBmZGNlNzY4MWZlNmYuLmJjYzNiMDdlNDk2MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5tbQpAQCAtMTY5Miw2ICsxNjkyLDE0IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJT
b2NrZXRUYXNrPiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGVXZWJTb2NrZXRUYXNrKFdlYlBh
Z2VQCiAgICAgLy8gcmRhcjovL3Byb2JsZW0vNjgwNTcwMzE6IGV4cGxpY2l0bHkgZGlzYWJsZSBz
bmlmZmluZyBmb3IgV2ViU29ja2V0IGhhbmRzaGFrZXMuCiAgICAgW25zUmVxdWVzdCBfc2V0UHJv
cGVydHk6QE5PIGZvcktleTooTlNTdHJpbmcgKilfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hv
dWxkU25pZmZdOwogCisjaWYgRU5BQkxFKEFQUF9QUklWQUNZX1JFUE9SVCkKKyAgICBpZiAoIXJl
cXVlc3QuaXNBcHBCb3VuZCgpKSB7CisgICAgICAgIFJldGFpblB0cjxOU011dGFibGVVUkxSZXF1
ZXN0PiBtdXRhYmxlUmVxdWVzdCA9IGFkb3B0TlMoW25zUmVxdWVzdC5nZXQoKSBtdXRhYmxlQ29w
eV0pOworICAgICAgICBtdXRhYmxlUmVxdWVzdC5nZXQoKS5hdHRyaWJ1dGlvbiA9IE5TVVJMUmVx
dWVzdEF0dHJpYnV0aW9uVXNlcjsKKyAgICAgICAgbnNSZXF1ZXN0ID0gV1RGTW92ZShtdXRhYmxl
UmVxdWVzdCk7CisgICAgfQorI2VuZGlmCisKICAgICBhdXRvJiBzZXNzaW9uU2V0ID0gc2Vzc2lv
blNldEZvclBhZ2Uod2ViUGFnZVByb3h5SUQpOwogICAgIFJldGFpblB0cjxOU1VSTFNlc3Npb25X
ZWJTb2NrZXRUYXNrPiB0YXNrID0gW3Nlc3Npb25TZXQuc2Vzc2lvbldpdGhDcmVkZW50aWFsU3Rv
cmFnZS5zZXNzaW9uIHdlYlNvY2tldFRhc2tXaXRoUmVxdWVzdDpuc1JlcXVlc3QuZ2V0KCldOwog
ICAgIHRhc2suZ2V0KCkubWF4aW11bU1lc3NhZ2VTaXplID0gMDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>433197</attachid>
            <date>2021-07-08 20:52:29 -0700</date>
            <delta_ts>2021-07-08 20:53:08 -0700</delta_ts>
            <desc>test case app initiated</desc>
            <filename>web-socket-app-initiated.html</filename>
            <type>text/plain</type>
            <size>1330</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD10
cnVlIF0gLS0+CjxoZWFkPgogICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgo8c2NyaXB0
PgogICAgZGVzY3JpcHRpb24oJ0Vuc3VyZSB3ZWIgc29ja2V0IGxvYWRzIGFyZSBhdHRyaWJ1dGVk
IGNvcnJlY3RseS4nKTsKCiAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CgogICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgIHRlc3RSdW5uZXIuc2V0QWxsb3dzQW55U1NMQ2Vy
dGlmaWNhdGUodHJ1ZSk7CgogICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiAgICB7CiAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOwogICAgfQoKICAgIGZ1bmN0aW9uIGFza0Zv
ckF0dHJpYnV0aW9uKCkgewogICAgICAgIHZhciBkaWRMb2FkQXBwQm91bmRSZXF1ZXN0ID0gdGVz
dFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpOwogICAgICAgIHZhciBkaWRMb2Fk
Tm9uQXBwQm91bmRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVx
dWVzdCgpOwoKICAgICAgICBpZiAoZGlkTG9hZE5vbkFwcEJvdW5kUmVxdWVzdCkgewogICAgICAg
ICAgICBsb2coIkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOwogICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAg
ICAgICAgaWYgKCFkaWRMb2FkQXBwQm91bmRSZXF1ZXN0KSB7CiAgICAgICAgICAgIGxvZygiRkFJ
TCBkaWQgbm90IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CiAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBsb2coIlBB
U1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTsKCiAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICB9CgogICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAg
ICAgICBuZXcgV2ViU29ja2V0KCd3czovL2xvY2FsaG9zdDo4ODgwL3dlYnNvY2tldC90ZXN0cy9o
eWJpL3NpbXBsZScpOwogICAgICAgIHNldFRpbWVvdXQoYXNrRm9yQXR0cmlidXRpb24sIDApOwog
ICAgfQo8L3NjcmlwdD4KPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0Pgo8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>433198</attachid>
            <date>2021-07-08 20:52:50 -0700</date>
            <delta_ts>2021-07-08 20:53:21 -0700</delta_ts>
            <desc>test case user initiated</desc>
            <filename>web-socket-user-initiated.html</filename>
            <type>text/plain</type>
            <size>1335</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD1m
YWxzZSBdIC0tPgo8aGVhZD4KICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KPHNjcmlw
dD4KICAgIGRlc2NyaXB0aW9uKCdFbnN1cmUgd2ViIHNvY2tldCBsb2FkcyBhcmUgYXR0cmlidXRl
ZCBjb3JyZWN0bHkuJyk7CgogICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwoKICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICB0ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENl
cnRpZmljYXRlKHRydWUpOwoKICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogICAgewogICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicpKTsKICAgIH0KCiAgICBmdW5jdGlvbiBhc2tG
b3JBdHRyaWJ1dGlvbigpIHsKICAgICAgICB2YXIgZGlkTG9hZEFwcEJvdW5kUmVxdWVzdCA9IHRl
c3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsKICAgICAgICB2YXIgZGlkTG9h
ZE5vbkFwcEJvdW5kUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJl
cXVlc3QoKTsKCiAgICAgICAgaWYgKGRpZExvYWRBcHBCb3VuZFJlcXVlc3QpIHsKICAgICAgICAg
ICAgbG9nKCJGQUlMIGRpZCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOwogICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAg
aWYgKCFkaWRMb2FkTm9uQXBwQm91bmRSZXF1ZXN0KSB7CiAgICAgICAgICAgIGxvZygiRkFJTCBk
aWQgbm90IGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOwogICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgbG9nKCJQ
QVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIp
OwoKICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgIH0KCiAgICBmdW5jdGlvbiBydW5UZXN0KCkg
ewogICAgICAgIG5ldyBXZWJTb2NrZXQoJ3dzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rl
c3RzL2h5Ymkvc2ltcGxlJyk7CiAgICAgICAgc2V0VGltZW91dChhc2tGb3JBdHRyaWJ1dGlvbiwg
MCk7CiAgICB9Cjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CjwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434027</attachid>
            <date>2021-07-22 12:12:54 -0700</date>
            <delta_ts>2021-07-22 13:44:07 -0700</delta_ts>
            <desc>V2</desc>
            <filename>WebSocket-V2.patch</filename>
            <type>text/plain</type>
            <size>7063</size>
            <attacher name="Richard Houle">rhoule</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
d2Vic29ja2V0LWlzYXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd2Vic29ja2V0LWlzYXBwaW5pdGlhdGVkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmNlY2U1YmI4
Y2RlOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5Ymkvd2Vic29ja2V0LWlzYXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitFbnN1cmUgd2ViIHNvY2tldCBsb2FkcyBhcmUgYXR0cmlidXRlZCBjb3JyZWN0
bHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseSBs
b2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93ZWJzb2NrZXQtaXNhcHBpbml0aWF0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd2Vic29ja2V0
LWlzYXBwaW5pdGlhdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi44MTczN2ViMDlhYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dlYnNvY2tldC1pc2FwcGluaXRpYXRlZC5odG1sCkBA
IC0wLDAgKzEsNDYgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
aXNBcHBJbml0aWF0ZWQ9dHJ1ZSBdIC0tPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCdFbnN1cmUg
d2ViIHNvY2tldCBsb2FkcyBhcmUgYXR0cmlidXRlZCBjb3JyZWN0bHkuJyk7CisKKyAgICB3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUodHJ1ZSk7CisKKyAg
ICBmdW5jdGlvbiBsb2cobWVzc2FnZSkKKyAgICB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVz
c2FnZSArICdcbicpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhc2tGb3JBdHRyaWJ1dGlvbigp
IHsKKyAgICAgICAgdmFyIGRpZExvYWRBcHBCb3VuZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExv
YWRBcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisgICAgICAgIHZhciBkaWRMb2FkTm9uQXBwQm91bmRS
ZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisg
ICAgICAgIGlmIChkaWRMb2FkTm9uQXBwQm91bmRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2co
IkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoIWRpZExvYWRBcHBCb3VuZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTCBk
aWQgbm90IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxvZygi
UEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOwor
CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgIG5ldyBXZWJTb2NrZXQoJ3dzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0
L3Rlc3RzL2h5Ymkvc2ltcGxlJyk7CisgICAgICAgIHNldFRpbWVvdXQoYXNrRm9yQXR0cmlidXRp
b24sIDApOworICAgIH0KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5Ymkvd2Vic29ja2V0LWlzbm90YXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd2Vic29ja2V0LWlzbm90
YXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjVjMGI5NzE2YzA0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd2Vic29ja2V0LWlzbm90YXBwaW5pdGlhdGVk
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitFbnN1cmUgd2ViIHNvY2tldCBsb2FkcyBh
cmUgYXR0cmlidXRlZCBjb3JyZWN0bHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0
cworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd2Vi
c29ja2V0LWlzbm90YXBwaW5pdGlhdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL3dlYnNvY2tldC1pc25vdGFwcGluaXRpYXRlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmRiZmY4NzE0OTdjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93
ZWJzb2NrZXQtaXNub3RhcHBpbml0aWF0ZWQuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPWZhbHNlIF0g
LS0+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oJ0Vuc3VyZSB3ZWIgc29ja2V0IGxvYWRzIGFyZSBh
dHRyaWJ1dGVkIGNvcnJlY3RseS4nKTsKKworICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRB
bGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSh0cnVlKTsKKworICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdl
KQorICAgIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGFza0ZvckF0dHJpYnV0aW9uKCkgeworICAgICAgICB2YXIgZGlkTG9h
ZEFwcEJvdW5kUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3Qo
KTsKKyAgICAgICAgdmFyIGRpZExvYWROb25BcHBCb3VuZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRp
ZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisKKyAgICAgICAgaWYgKGRpZExvYWRBcHBC
b3VuZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbG9hZCBhcHAgaW5pdGlh
dGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkaWRMb2FkTm9uQXBwQm91bmRSZXF1
ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIG5vbiBhcHAgaW5pdGlh
dGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2Fk
ZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOworCisgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIG5ldyBX
ZWJTb2NrZXQoJ3dzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2ltcGxl
Jyk7CisgICAgICAgIHNldFRpbWVvdXQoYXNrRm9yQXR0cmlidXRpb24sIDApOworICAgIH0KKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IGE2Y2IyY2ZlOGM3Ni4uYjUwYWEwMzEyOTY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAog
I2luY2x1ZGUgIkNvbnRlbnRSdWxlTGlzdFJlc3VsdHMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
ICNpbmNsdWRlICJIVFRQSGVhZGVyVmFsdWVzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMTIx
LDYgKzEyMiwxMCBAQCBzdGQ6Om9wdGlvbmFsPFJlc291cmNlUmVxdWVzdD4gVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWw6OndlYlNvY2tldENvbm5lY3RSZXF1ZQogICAgIHJlcXVlc3Quc2V0QWxs
b3dDb29raWVzKHZhbGlkYXRlZFVSTC0+YXJlQ29va2llc0FsbG93ZWQpOwogICAgIHJlcXVlc3Qu
c2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMoZG9jdW1lbnQuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSk7
CiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6Ok9yaWdpbiwg
ZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS50b1N0cmluZygpKTsKKworICAgIGlmIChhdXRvKiBk
b2N1bWVudExvYWRlciA9IGRvY3VtZW50LmxvYWRlcigpKQorICAgICAgICByZXF1ZXN0LnNldElz
QXBwSW5pdGlhdGVkKGRvY3VtZW50TG9hZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRl
ZCgpKTsKKwogICAgIEZyYW1lTG9hZGVyOjphZGRTYW1lU2l0ZUluZm9Ub1JlcXVlc3RJZk5lZWRl
ZChyZXF1ZXN0LCAmZG9jdW1lbnQpOwogCiAgICAgLy8gQWRkIG5vLWNhY2hlIGhlYWRlcnMgdG8g
YXZvaWQgY29tcGF0aWJpbGl0eSBpc3N1ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCA1MzVlMDk4
ZTRlYWQuLjZhZGM3MDdiMGQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMTcwMyw2ICsxNzAz
LDE2IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBOZXR3b3JrU2Vzc2lvbkNvY29h
OjpjcmVhdGVXZWJTb2NrZXRUYXNrKFdlYlBhZ2VQCiAgICAgLy8gcmRhcjovL3Byb2JsZW0vNjgw
NTcwMzE6IGV4cGxpY2l0bHkgZGlzYWJsZSBzbmlmZmluZyBmb3IgV2ViU29ja2V0IGhhbmRzaGFr
ZXMuCiAgICAgW25zUmVxdWVzdCBfc2V0UHJvcGVydHk6QE5PIGZvcktleTooTlNTdHJpbmcgKilf
a0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxkU25pZmZdOwogCisjaWYgRU5BQkxFKEFQUF9Q
UklWQUNZX1JFUE9SVCkKKyAgICBpZiAoIXJlcXVlc3QuaXNBcHBJbml0aWF0ZWQoKSkgeworICAg
ICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlVVJMUmVxdWVzdD4gbXV0YWJsZVJlcXVlc3QgPSBhZG9w
dE5TKFtuc1JlcXVlc3QuZ2V0KCkgbXV0YWJsZUNvcHldKTsKKyAgICAgICAgbXV0YWJsZVJlcXVl
c3QuZ2V0KCkuYXR0cmlidXRpb24gPSBOU1VSTFJlcXVlc3RBdHRyaWJ1dGlvblVzZXI7CisgICAg
ICAgIG5zUmVxdWVzdCA9IFdURk1vdmUobXV0YWJsZVJlcXVlc3QpOworICAgIH0KKworICAgIGFw
cFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YSgpLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KG5z
UmVxdWVzdC5nZXQoKS5hdHRyaWJ1dGlvbiA9PSBOU1VSTFJlcXVlc3RBdHRyaWJ1dGlvbkRldmVs
b3Blcik7CisjZW5kaWYKKwogICAgIGF1dG8mIHNlc3Npb25TZXQgPSBzZXNzaW9uU2V0Rm9yUGFn
ZSh3ZWJQYWdlUHJveHlJRCk7CiAgICAgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbldlYlNvY2tldFRh
c2s+IHRhc2sgPSBbc2Vzc2lvblNldC5zZXNzaW9uV2l0aENyZWRlbnRpYWxTdG9yYWdlLnNlc3Np
b24gd2ViU29ja2V0VGFza1dpdGhSZXF1ZXN0Om5zUmVxdWVzdC5nZXQoKV07CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434032</attachid>
            <date>2021-07-22 13:44:07 -0700</date>
            <delta_ts>2021-07-22 17:51:49 -0700</delta_ts>
            <desc>V3</desc>
            <filename>WebSocket-V3.patch</filename>
            <type>text/plain</type>
            <size>7159</size>
            <attacher name="Richard Houle">rhoule</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
d2Vic29ja2V0LWlzYXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd2Vic29ja2V0LWlzYXBwaW5pdGlhdGVkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmNlY2U1YmI4
Y2RlOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5Ymkvd2Vic29ja2V0LWlzYXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitFbnN1cmUgd2ViIHNvY2tldCBsb2FkcyBhcmUgYXR0cmlidXRlZCBjb3JyZWN0
bHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseSBs
b2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93ZWJzb2NrZXQtaXNhcHBpbml0aWF0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd2Vic29ja2V0
LWlzYXBwaW5pdGlhdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi44MTczN2ViMDlhYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dlYnNvY2tldC1pc2FwcGluaXRpYXRlZC5odG1sCkBA
IC0wLDAgKzEsNDYgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
aXNBcHBJbml0aWF0ZWQ9dHJ1ZSBdIC0tPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCdFbnN1cmUg
d2ViIHNvY2tldCBsb2FkcyBhcmUgYXR0cmlidXRlZCBjb3JyZWN0bHkuJyk7CisKKyAgICB3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUodHJ1ZSk7CisKKyAg
ICBmdW5jdGlvbiBsb2cobWVzc2FnZSkKKyAgICB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVz
c2FnZSArICdcbicpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhc2tGb3JBdHRyaWJ1dGlvbigp
IHsKKyAgICAgICAgdmFyIGRpZExvYWRBcHBCb3VuZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExv
YWRBcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisgICAgICAgIHZhciBkaWRMb2FkTm9uQXBwQm91bmRS
ZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisg
ICAgICAgIGlmIChkaWRMb2FkTm9uQXBwQm91bmRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2co
IkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoIWRpZExvYWRBcHBCb3VuZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTCBk
aWQgbm90IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxvZygi
UEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOwor
CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgIG5ldyBXZWJTb2NrZXQoJ3dzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0
L3Rlc3RzL2h5Ymkvc2ltcGxlJyk7CisgICAgICAgIHNldFRpbWVvdXQoYXNrRm9yQXR0cmlidXRp
b24sIDApOworICAgIH0KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5Ymkvd2Vic29ja2V0LWlzbm90YXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd2Vic29ja2V0LWlzbm90
YXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjVjMGI5NzE2YzA0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd2Vic29ja2V0LWlzbm90YXBwaW5pdGlhdGVk
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitFbnN1cmUgd2ViIHNvY2tldCBsb2FkcyBh
cmUgYXR0cmlidXRlZCBjb3JyZWN0bHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0
cworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd2Vi
c29ja2V0LWlzbm90YXBwaW5pdGlhdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL3dlYnNvY2tldC1pc25vdGFwcGluaXRpYXRlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmRiZmY4NzE0OTdjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93
ZWJzb2NrZXQtaXNub3RhcHBpbml0aWF0ZWQuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPWZhbHNlIF0g
LS0+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oJ0Vuc3VyZSB3ZWIgc29ja2V0IGxvYWRzIGFyZSBh
dHRyaWJ1dGVkIGNvcnJlY3RseS4nKTsKKworICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRB
bGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSh0cnVlKTsKKworICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdl
KQorICAgIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGFza0ZvckF0dHJpYnV0aW9uKCkgeworICAgICAgICB2YXIgZGlkTG9h
ZEFwcEJvdW5kUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3Qo
KTsKKyAgICAgICAgdmFyIGRpZExvYWROb25BcHBCb3VuZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRp
ZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisKKyAgICAgICAgaWYgKGRpZExvYWRBcHBC
b3VuZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbG9hZCBhcHAgaW5pdGlh
dGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkaWRMb2FkTm9uQXBwQm91bmRSZXF1
ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIG5vbiBhcHAgaW5pdGlh
dGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2Fk
ZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOworCisgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIG5ldyBX
ZWJTb2NrZXQoJ3dzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2ltcGxl
Jyk7CisgICAgICAgIHNldFRpbWVvdXQoYXNrRm9yQXR0cmlidXRpb24sIDApOworICAgIH0KKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IGE2Y2IyY2ZlOGM3Ni4uYjUwYWEwMzEyOTY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAog
I2luY2x1ZGUgIkNvbnRlbnRSdWxlTGlzdFJlc3VsdHMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
ICNpbmNsdWRlICJIVFRQSGVhZGVyVmFsdWVzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMTIx
LDYgKzEyMiwxMCBAQCBzdGQ6Om9wdGlvbmFsPFJlc291cmNlUmVxdWVzdD4gVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWw6OndlYlNvY2tldENvbm5lY3RSZXF1ZQogICAgIHJlcXVlc3Quc2V0QWxs
b3dDb29raWVzKHZhbGlkYXRlZFVSTC0+YXJlQ29va2llc0FsbG93ZWQpOwogICAgIHJlcXVlc3Qu
c2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMoZG9jdW1lbnQuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSk7
CiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6Ok9yaWdpbiwg
ZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS50b1N0cmluZygpKTsKKworICAgIGlmIChhdXRvKiBk
b2N1bWVudExvYWRlciA9IGRvY3VtZW50LmxvYWRlcigpKQorICAgICAgICByZXF1ZXN0LnNldElz
QXBwSW5pdGlhdGVkKGRvY3VtZW50TG9hZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRl
ZCgpKTsKKwogICAgIEZyYW1lTG9hZGVyOjphZGRTYW1lU2l0ZUluZm9Ub1JlcXVlc3RJZk5lZWRl
ZChyZXF1ZXN0LCAmZG9jdW1lbnQpOwogCiAgICAgLy8gQWRkIG5vLWNhY2hlIGhlYWRlcnMgdG8g
YXZvaWQgY29tcGF0aWJpbGl0eSBpc3N1ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCA1MzVlMDk4
ZTRlYWQuLjIwMjU4N2U1OGE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMTcwMyw2ICsxNzAz
LDE4IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBOZXR3b3JrU2Vzc2lvbkNvY29h
OjpjcmVhdGVXZWJTb2NrZXRUYXNrKFdlYlBhZ2VQCiAgICAgLy8gcmRhcjovL3Byb2JsZW0vNjgw
NTcwMzE6IGV4cGxpY2l0bHkgZGlzYWJsZSBzbmlmZmluZyBmb3IgV2ViU29ja2V0IGhhbmRzaGFr
ZXMuCiAgICAgW25zUmVxdWVzdCBfc2V0UHJvcGVydHk6QE5PIGZvcktleTooTlNTdHJpbmcgKilf
a0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxkU25pZmZdOwogCisjaWYgRU5BQkxFKEFQUF9Q
UklWQUNZX1JFUE9SVCkKKyAgICBpZiAoIXJlcXVlc3QuaXNBcHBJbml0aWF0ZWQoKSkgeworICAg
ICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlVVJMUmVxdWVzdD4gbXV0YWJsZVJlcXVlc3QgPSBhZG9w
dE5TKFtuc1JlcXVlc3QuZ2V0KCkgbXV0YWJsZUNvcHldKTsKKyAgICAgICAgbXV0YWJsZVJlcXVl
c3QuZ2V0KCkuYXR0cmlidXRpb24gPSBOU1VSTFJlcXVlc3RBdHRyaWJ1dGlvblVzZXI7CisgICAg
ICAgIG5zUmVxdWVzdCA9IFdURk1vdmUobXV0YWJsZVJlcXVlc3QpOworICAgIH0KKworICAgIGFw
cFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YSgpLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KG5z
UmVxdWVzdC5nZXQoKS5hdHRyaWJ1dGlvbiA9PSBOU1VSTFJlcXVlc3RBdHRyaWJ1dGlvbkRldmVs
b3Blcik7CisjZWxzZQorICAgIGFwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YSgpLmRpZExvYWRB
cHBJbml0aWF0ZWRSZXF1ZXN0KHJlcXVlc3QuaXNBcHBJbml0aWF0ZWQoKSk7CisjZW5kaWYKKwog
ICAgIGF1dG8mIHNlc3Npb25TZXQgPSBzZXNzaW9uU2V0Rm9yUGFnZSh3ZWJQYWdlUHJveHlJRCk7
CiAgICAgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbldlYlNvY2tldFRhc2s+IHRhc2sgPSBbc2Vzc2lv
blNldC5zZXNzaW9uV2l0aENyZWRlbnRpYWxTdG9yYWdlLnNlc3Npb24gd2ViU29ja2V0VGFza1dp
dGhSZXF1ZXN0Om5zUmVxdWVzdC5nZXQoKV07CiAgICAgCg==
</data>
<flag name="commit-queue"
          id="456447"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434049</attachid>
            <date>2021-07-22 17:51:49 -0700</date>
            <delta_ts>2021-07-23 10:24:43 -0700</delta_ts>
            <desc>V4</desc>
            <filename>WebSocket-V4.patch</filename>
            <type>text/plain</type>
            <size>7004</size>
            <attacher name="Richard Houle">rhoule</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3dl
YnNvY2tldC1pc2FwcGluaXRpYXRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC93ZWJzb2NrZXQtaXNhcHBpbml0aWF0ZWQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uY2VjZTViYjhjZGU4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvd2Vic29ja2V0LWlzYXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitFbnN1cmUgd2ViIHNvY2tldCBsb2FkcyBhcmUgYXR0cmlidXRlZCBjb3JyZWN0bHkuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQg
b25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHAtcHJpdmFjeS1yZXBvcnQvd2Vic29ja2V0LWlzYXBwaW5pdGlhdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC93ZWJzb2NrZXQtaXNhcHBpbml0
aWF0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjFhNzAz
Y2M2NzMxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L3dlYnNvY2tldC1pc2FwcGluaXRpYXRlZC5odG1sCkBAIC0wLDAgKzEsNDYg
QEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaXNBcHBJbml0aWF0
ZWQ9dHJ1ZSBdIC0tPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCdFbnN1cmUgd2ViIHNvY2tldCBsb2FkcyBhcmUg
YXR0cmlidXRlZCBjb3JyZWN0bHkuJyk7CisKKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0
QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUodHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBsb2cobWVzc2Fn
ZSkKKyAgICB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicpKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBhc2tGb3JBdHRyaWJ1dGlvbigpIHsKKyAgICAgICAgdmFyIGRpZExv
YWRBcHBCb3VuZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0
KCk7CisgICAgICAgIHZhciBkaWRMb2FkTm9uQXBwQm91bmRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5k
aWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgICAgIGlmIChkaWRMb2FkTm9u
QXBwQm91bmRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIGxvYWQgbm9uIGFw
cCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWRpZExvYWRBcHBCb3Vu
ZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbm90IGxvYWQgYXBwIGluaXRp
YXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9h
ZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOworCisgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIG5ldyBXZWJT
b2NrZXQoJ3dzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2ltcGxlJyk7
CisgICAgICAgIHNldFRpbWVvdXQoYXNrRm9yQXR0cmlidXRpb24sIDApOworICAgIH0KKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3dlYnNvY2tldC1pc25vdGFwcGlu
aXRpYXRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC93ZWJzb2NrZXQtaXNub3RhcHBpbml0aWF0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNWMwYjk3MTZjMDQzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvd2Vic29j
a2V0LWlzbm90YXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitFbnN1
cmUgd2ViIHNvY2tldCBsb2FkcyBhcmUgYXR0cmlidXRlZCBjb3JyZWN0bHkuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24g
YXBwIGluaXRpYXRlZCByZXF1ZXN0cworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L3dlYnNvY2tldC1pc25vdGFwcGluaXRpYXRlZC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvd2Vic29ja2V0LWlzbm90YXBwaW5p
dGlhdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yYmM0
MTk0MDhiY2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC93ZWJzb2NrZXQtaXNub3RhcHBpbml0aWF0ZWQuaHRtbApAQCAtMCwwICsx
LDQ2IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5p
dGlhdGVkPWZhbHNlIF0gLS0+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oJ0Vuc3VyZSB3ZWIgc29ja2V0IGxvYWRz
IGFyZSBhdHRyaWJ1dGVkIGNvcnJlY3RseS4nKTsKKworICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSh0cnVlKTsKKworICAgIGZ1bmN0aW9uIGxvZyht
ZXNzYWdlKQorICAgIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUn
KS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGFza0ZvckF0dHJpYnV0aW9uKCkgeworICAgICAgICB2YXIg
ZGlkTG9hZEFwcEJvdW5kUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJl
cXVlc3QoKTsKKyAgICAgICAgdmFyIGRpZExvYWROb25BcHBCb3VuZFJlcXVlc3QgPSB0ZXN0UnVu
bmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisKKyAgICAgICAgaWYgKGRpZExv
YWRBcHBCb3VuZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbG9hZCBhcHAg
aW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkaWRMb2FkTm9uQXBwQm91
bmRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIG5vbiBhcHAg
aW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxs
eSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOworCisgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IG5ldyBXZWJTb2NrZXQoJ3dzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
c2ltcGxlJyk7CisgICAgICAgIHNldFRpbWVvdXQoYXNrRm9yQXR0cmlidXRpb24sIDApOworICAg
IH0KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBhNmNiMmNmZThjNzYuLmI1MGFhMDMxMjk2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKICNp
bmNsdWRlICJDb250ZW50UnVsZUxpc3RSZXN1bHRzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAj
aW5jbHVkZSAiSFRUUEhlYWRlclZhbHVlcy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTEyMSw2
ICsxMjIsMTAgQEAgc3RkOjpvcHRpb25hbDxSZXNvdXJjZVJlcXVlc3Q+IFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjp3ZWJTb2NrZXRDb25uZWN0UmVxdWUKICAgICByZXF1ZXN0LnNldEFsbG93
Q29va2llcyh2YWxpZGF0ZWRVUkwtPmFyZUNvb2tpZXNBbGxvd2VkKTsKICAgICByZXF1ZXN0LnNl
dEZpcnN0UGFydHlGb3JDb29raWVzKGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCkpOwog
ICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpPcmlnaW4sIGRv
Y3VtZW50LnNlY3VyaXR5T3JpZ2luKCkudG9TdHJpbmcoKSk7CisKKyAgICBpZiAoYXV0byogZG9j
dW1lbnRMb2FkZXIgPSBkb2N1bWVudC5sb2FkZXIoKSkKKyAgICAgICAgcmVxdWVzdC5zZXRJc0Fw
cEluaXRpYXRlZChkb2N1bWVudExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQo
KSk7CisKICAgICBGcmFtZUxvYWRlcjo6YWRkU2FtZVNpdGVJbmZvVG9SZXF1ZXN0SWZOZWVkZWQo
cmVxdWVzdCwgJmRvY3VtZW50KTsKIAogICAgIC8vIEFkZCBuby1jYWNoZSBoZWFkZXJzIHRvIGF2
b2lkIGNvbXBhdGliaWxpdHkgaXNzdWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggNTM1ZTA5OGU0
ZWFkLi42YWRjNzA3YjBkMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTE3MDMsNiArMTcwMywx
NiBAQCBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gTmV0d29ya1Nlc3Npb25Db2NvYTo6
Y3JlYXRlV2ViU29ja2V0VGFzayhXZWJQYWdlUAogICAgIC8vIHJkYXI6Ly9wcm9ibGVtLzY4MDU3
MDMxOiBleHBsaWNpdGx5IGRpc2FibGUgc25pZmZpbmcgZm9yIFdlYlNvY2tldCBoYW5kc2hha2Vz
LgogICAgIFtuc1JlcXVlc3QgX3NldFByb3BlcnR5OkBOTyBmb3JLZXk6KE5TU3RyaW5nICopX2tD
RlVSTENvbm5lY3Rpb25Qcm9wZXJ0eVNob3VsZFNuaWZmXTsKIAorI2lmIEVOQUJMRShBUFBfUFJJ
VkFDWV9SRVBPUlQpCisgICAgaWYgKCFyZXF1ZXN0LmlzQXBwSW5pdGlhdGVkKCkpIHsKKyAgICAg
ICAgUmV0YWluUHRyPE5TTXV0YWJsZVVSTFJlcXVlc3Q+IG11dGFibGVSZXF1ZXN0ID0gYWRvcHRO
UyhbbnNSZXF1ZXN0LmdldCgpIG11dGFibGVDb3B5XSk7CisgICAgICAgIG11dGFibGVSZXF1ZXN0
LmdldCgpLmF0dHJpYnV0aW9uID0gTlNVUkxSZXF1ZXN0QXR0cmlidXRpb25Vc2VyOworICAgICAg
ICBuc1JlcXVlc3QgPSBXVEZNb3ZlKG11dGFibGVSZXF1ZXN0KTsKKyAgICB9CisKKyAgICBhcHBQ
cml2YWN5UmVwb3J0VGVzdGluZ0RhdGEoKS5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdChuc1Jl
cXVlc3QuZ2V0KCkuYXR0cmlidXRpb24gPT0gTlNVUkxSZXF1ZXN0QXR0cmlidXRpb25EZXZlbG9w
ZXIpOworI2VuZGlmCisKICAgICBhdXRvJiBzZXNzaW9uU2V0ID0gc2Vzc2lvblNldEZvclBhZ2Uo
d2ViUGFnZVByb3h5SUQpOwogICAgIFJldGFpblB0cjxOU1VSTFNlc3Npb25XZWJTb2NrZXRUYXNr
PiB0YXNrID0gW3Nlc3Npb25TZXQuc2Vzc2lvbldpdGhDcmVkZW50aWFsU3RvcmFnZS5zZXNzaW9u
IHdlYlNvY2tldFRhc2tXaXRoUmVxdWVzdDpuc1JlcXVlc3QuZ2V0KCldOwogICAgIAo=
</data>
<flag name="review"
          id="456498"
          type_id="1"
          status="+"
          setter="katherine_cheney"
    />
    <flag name="commit-queue"
          id="456499"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434097</attachid>
            <date>2021-07-23 10:24:43 -0700</date>
            <delta_ts>2021-07-23 11:23:23 -0700</delta_ts>
            <desc>V4 with Changeling</desc>
            <filename>WebSocket-V4-with-Changelog.patch</filename>
            <type>text/plain</type>
            <size>9483</size>
            <attacher name="Richard Houle">rhoule</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhZTkyN2JjYmE0ZTMuLjM2M2QxYjUxMWM4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDIxLTA3LTIzICBSaWNoYXJkIEhvdWxlICA8cmhvdWxlQGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWJTb2NrZXQgdHJhZmZpYyBzaG91bGQgYmUgY29ycmVjdGx5IGFzc2lnbmVkIHRvIGVpdGhl
ciBEZXZlbG9wZXIgb3IgVXNlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzU2NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkzMDczMDE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgS2F0ZSBDaGVuZXkuCisKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC93ZWJzb2NrZXQtaXNhcHBpbml0aWF0ZWQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC93ZWJzb2Nr
ZXQtaXNhcHBpbml0aWF0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvd2Vic29ja2V0LWlzbm90YXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvd2Vic29ja2V0
LWlzbm90YXBwaW5pdGlhdGVkLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA3LTIwICBBeXVtaSBLb2pp
bWEgIDxheXVtaV9rb2ppbWFAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIGh0dHAvdGVzdHMv
YXBwY2FjaGUvZmFpbC1vbi11cGRhdGUuaHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3dlYnNvY2tldC1p
c2FwcGluaXRpYXRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC93ZWJzb2NrZXQtaXNhcHBpbml0aWF0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uY2VjZTViYjhjZGU4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvd2Vi
c29ja2V0LWlzYXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitFbnN1
cmUgd2ViIHNvY2tldCBsb2FkcyBhcmUgYXR0cmlidXRlZCBjb3JyZWN0bHkuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAg
aW5pdGlhdGVkIHJlcXVlc3RzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvd2Vic29ja2V0LWlzYXBwaW5pdGlhdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC93ZWJzb2NrZXQtaXNhcHBpbml0aWF0ZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjFhNzAzY2M2NzMxZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L3dlYnNvY2tldC1pc2FwcGluaXRpYXRlZC5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzwhRE9D
VFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9dHJ1ZSBd
IC0tPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0
PgorICAgIGRlc2NyaXB0aW9uKCdFbnN1cmUgd2ViIHNvY2tldCBsb2FkcyBhcmUgYXR0cmlidXRl
ZCBjb3JyZWN0bHkuJyk7CisKKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0QWxsb3dzQW55
U1NMQ2VydGlmaWNhdGUodHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkKKyAgICB7
CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicpKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBhc2tGb3JBdHRyaWJ1dGlvbigpIHsKKyAgICAgICAgdmFyIGRpZExvYWRBcHBCb3Vu
ZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisgICAg
ICAgIHZhciBkaWRMb2FkTm9uQXBwQm91bmRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9u
QXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgICAgIGlmIChkaWRMb2FkTm9uQXBwQm91bmRS
ZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0
ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWRpZExvYWRBcHBCb3VuZFJlcXVlc3Qp
IHsKKyAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbm90IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1
ZXN0Iik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIGxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkg
YXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOworCisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIG5ldyBXZWJTb2NrZXQoJ3dz
Oi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2ltcGxlJyk7CisgICAgICAg
IHNldFRpbWVvdXQoYXNrRm9yQXR0cmlidXRpb24sIDApOworICAgIH0KKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3dlYnNvY2tldC1pc25vdGFwcGluaXRpYXRlZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC93
ZWJzb2NrZXQtaXNub3RhcHBpbml0aWF0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNWMwYjk3MTZjMDQzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvd2Vic29ja2V0LWlzbm90
YXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitFbnN1cmUgd2ViIHNv
Y2tldCBsb2FkcyBhcmUgYXR0cmlidXRlZCBjb3JyZWN0bHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRp
YXRlZCByZXF1ZXN0cworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L3dlYnNvY2tldC1pc25vdGFwcGluaXRpYXRlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvd2Vic29ja2V0LWlzbm90YXBwaW5pdGlhdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yYmM0MTk0MDhiY2EK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC93ZWJzb2NrZXQtaXNub3RhcHBpbml0aWF0ZWQuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPWZh
bHNlIF0gLS0+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxz
Y3JpcHQ+CisgICAgZGVzY3JpcHRpb24oJ0Vuc3VyZSB3ZWIgc29ja2V0IGxvYWRzIGFyZSBhdHRy
aWJ1dGVkIGNvcnJlY3RseS4nKTsKKworICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRBbGxv
d3NBbnlTU0xDZXJ0aWZpY2F0ZSh0cnVlKTsKKworICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQor
ICAgIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIGFza0ZvckF0dHJpYnV0aW9uKCkgeworICAgICAgICB2YXIgZGlkTG9hZEFw
cEJvdW5kUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsK
KyAgICAgICAgdmFyIGRpZExvYWROb25BcHBCb3VuZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExv
YWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisKKyAgICAgICAgaWYgKGRpZExvYWRBcHBCb3Vu
ZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbG9hZCBhcHAgaW5pdGlhdGVk
IHJlcXVlc3QiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkaWRMb2FkTm9uQXBwQm91bmRSZXF1ZXN0
KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVk
IHJlcXVlc3QiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQg
b25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOworCisgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIG5ldyBXZWJT
b2NrZXQoJ3dzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2ltcGxlJyk7
CisgICAgICAgIHNldFRpbWVvdXQoYXNrRm9yQXR0cmlidXRpb24sIDApOworICAgIH0KKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU5
NmVmZWIxNWI0Li41MWNkYjE4MDRjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAy
MS0wNy0yMyAgUmljaGFyZCBIb3VsZSAgPHJob3VsZUBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
U29ja2V0IHRyYWZmaWMgc2hvdWxkIGJlIGNvcnJlY3RseSBhc3NpZ25lZCB0byBlaXRoZXIgRGV2
ZWxvcGVyIG9yIFVzZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjc1NjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5MzA3MzAxPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEthdGUgQ2hlbmV5LgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC93ZWJzb2NrZXQtaXNhcHBpbml0aWF0ZWQuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvd2Vic29ja2V0LWlzbm90YXBw
aW5pdGlhdGVkLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6d2ViU29ja2V0Q29ubmVjdFJlcXVlc3QpOgorCiAyMDIxLTA3LTIwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgcjI4MDEwMyBp
cyBub3QgbmVjZXNzYXJ5IG9uIGFsbCBvcGVyYXRpbmcgc3lzdGVtcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5jcHAKaW5kZXggYTZjYjJjZmU4Yzc2Li5iNTBhYTAzMTI5NjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAi
Q29udGVudFJ1bGVMaXN0UmVzdWx0cy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUg
IkhUVFBIZWFkZXJWYWx1ZXMuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC0xMjEsNiArMTIyLDEw
IEBAIHN0ZDo6b3B0aW9uYWw8UmVzb3VyY2VSZXF1ZXN0PiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbDo6d2ViU29ja2V0Q29ubmVjdFJlcXVlCiAgICAgcmVxdWVzdC5zZXRBbGxvd0Nvb2tpZXMo
dmFsaWRhdGVkVVJMLT5hcmVDb29raWVzQWxsb3dlZCk7CiAgICAgcmVxdWVzdC5zZXRGaXJzdFBh
cnR5Rm9yQ29va2llcyhkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygpKTsKICAgICByZXF1
ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6T3JpZ2luLCBkb2N1bWVudC5z
ZWN1cml0eU9yaWdpbigpLnRvU3RyaW5nKCkpOworCisgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9h
ZGVyID0gZG9jdW1lbnQubG9hZGVyKCkpCisgICAgICAgIHJlcXVlc3Quc2V0SXNBcHBJbml0aWF0
ZWQoZG9jdW1lbnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOworCiAg
ICAgRnJhbWVMb2FkZXI6OmFkZFNhbWVTaXRlSW5mb1RvUmVxdWVzdElmTmVlZGVkKHJlcXVlc3Qs
ICZkb2N1bWVudCk7CiAKICAgICAvLyBBZGQgbm8tY2FjaGUgaGVhZGVycyB0byBhdm9pZCBjb21w
YXRpYmlsaXR5IGlzc3VlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2ZGY4ZTQwYmY2ZDIuLmJmMjM5ZjYxYzQ3OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wNy0yMyAgUmljaGFyZCBIb3VsZSAgPHJo
b3VsZUBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViU29ja2V0IHRyYWZmaWMgc2hvdWxkIGJlIGNv
cnJlY3RseSBhc3NpZ25lZCB0byBlaXRoZXIgRGV2ZWxvcGVyIG9yIFVzZXIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1NjQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzc5MzA3MzAxPgorCisgICAgICAgIFJldmlld2VkIGJ5IEthdGUgQ2hlbmV5
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlV2ViU29ja2V0
VGFzayk6CisKIDIwMjEtMDctMjAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgW2lPU10gQWRkIFNQSSBmb3IgaW50ZXJuYWwgY2xpZW50cyB0byBjb25z
dWx0IHdoZXRoZXIgb3Igbm90IHZpZXdwb3J0IHF1aXJrcyBzaG91bGQgYmUgZW5hYmxlZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vz
c2lvbkNvY29hLm1tCmluZGV4IDUzNWUwOThlNGVhZC4uNmFkYzcwN2IwZDI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLm1tCkBAIC0xNzAzLDYgKzE3MDMsMTYgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tl
dFRhc2s+IE5ldHdvcmtTZXNzaW9uQ29jb2E6OmNyZWF0ZVdlYlNvY2tldFRhc2soV2ViUGFnZVAK
ICAgICAvLyByZGFyOi8vcHJvYmxlbS82ODA1NzAzMTogZXhwbGljaXRseSBkaXNhYmxlIHNuaWZm
aW5nIGZvciBXZWJTb2NrZXQgaGFuZHNoYWtlcy4KICAgICBbbnNSZXF1ZXN0IF9zZXRQcm9wZXJ0
eTpATk8gZm9yS2V5OihOU1N0cmluZyAqKV9rQ0ZVUkxDb25uZWN0aW9uUHJvcGVydHlTaG91bGRT
bmlmZl07CiAKKyNpZiBFTkFCTEUoQVBQX1BSSVZBQ1lfUkVQT1JUKQorICAgIGlmICghcmVxdWVz
dC5pc0FwcEluaXRpYXRlZCgpKSB7CisgICAgICAgIFJldGFpblB0cjxOU011dGFibGVVUkxSZXF1
ZXN0PiBtdXRhYmxlUmVxdWVzdCA9IGFkb3B0TlMoW25zUmVxdWVzdC5nZXQoKSBtdXRhYmxlQ29w
eV0pOworICAgICAgICBtdXRhYmxlUmVxdWVzdC5nZXQoKS5hdHRyaWJ1dGlvbiA9IE5TVVJMUmVx
dWVzdEF0dHJpYnV0aW9uVXNlcjsKKyAgICAgICAgbnNSZXF1ZXN0ID0gV1RGTW92ZShtdXRhYmxl
UmVxdWVzdCk7CisgICAgfQorCisgICAgYXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdEYXRhKCkuZGlk
TG9hZEFwcEluaXRpYXRlZFJlcXVlc3QobnNSZXF1ZXN0LmdldCgpLmF0dHJpYnV0aW9uID09IE5T
VVJMUmVxdWVzdEF0dHJpYnV0aW9uRGV2ZWxvcGVyKTsKKyNlbmRpZgorCiAgICAgYXV0byYgc2Vz
c2lvblNldCA9IHNlc3Npb25TZXRGb3JQYWdlKHdlYlBhZ2VQcm94eUlEKTsKICAgICBSZXRhaW5Q
dHI8TlNVUkxTZXNzaW9uV2ViU29ja2V0VGFzaz4gdGFzayA9IFtzZXNzaW9uU2V0LnNlc3Npb25X
aXRoQ3JlZGVudGlhbFN0b3JhZ2Uuc2Vzc2lvbiB3ZWJTb2NrZXRUYXNrV2l0aFJlcXVlc3Q6bnNS
ZXF1ZXN0LmdldCgpXTsKICAgICAK
</data>

          </attachment>
      

    </bug>

</bugzilla>