<?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>68833</bug_id>
          
          <creation_ts>2011-09-26 14:24:26 -0700</creation_ts>
          <short_desc>Discard event data not followed by an empty line before eof when parsing an event-stream</short_desc>
          <delta_ts>2011-12-21 16:37:33 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Per-Erik Brodin">per-erik.brodin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>ian</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>473381</commentid>
    <comment_count>0</comment_count>
    <who name="Per-Erik Brodin">per-erik.brodin</who>
    <bug_when>2011-09-26 14:24:26 -0700</bug_when>
    <thetext>Update event-stream parsing to reflect recent spec change: http://html5.org/tools/web-apps-tracker?from=6370&amp;to=6371

This may affect some existing deployments (three of our current tests failed after the change).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473386</commentid>
    <comment_count>1</comment_count>
      <attachid>108722</attachid>
    <who name="Per-Erik Brodin">per-erik.brodin</who>
    <bug_when>2011-09-26 14:26:34 -0700</bug_when>
    <thetext>Created attachment 108722
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473390</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-09-26 14:34:02 -0700</bug_when>
    <thetext>Sounds reasonable.

Were other browsers doing the same as WebKit here? Are they onboard with making a change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473403</commentid>
    <comment_count>3</comment_count>
    <who name="Per-Erik Brodin">per-erik.brodin</who>
    <bug_when>2011-09-26 14:46:34 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Were other browsers doing the same as WebKit here? Are they onboard with making a change?

The change was requested by Mozilla and annevk replied that the ABNF in the spec would have to be updated as well, so presumably both Mozilla and Opera will make the change. See http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/0097.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473412</commentid>
    <comment_count>4</comment_count>
      <attachid>108722</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-09-26 14:58:26 -0700</bug_when>
    <thetext>Comment on attachment 108722
patch

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

In other words, no explicit endorsement from IE. Still, seems fine to make this change.

&gt; Source/WebCore/page/EventSource.cpp:247
&gt; +        m_eventId = String();

We don&apos;t have a function that discards everything already?

&gt; Source/WebCore/page/EventSource.h:118
&gt; +        String m_eventId;
&gt;          String m_lastEventId;

I&apos;m not thrilled about having two eventId member variables. How are they different? Maybe &quot;last&quot; is actually &quot;previous&quot;? Can we encode this bit of state somehow else, without seemingly duplicating data?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473433</commentid>
    <comment_count>5</comment_count>
    <who name="Per-Erik Brodin">per-erik.brodin</who>
    <bug_when>2011-09-26 15:16:51 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 108722 [details])
&gt; &gt; Source/WebCore/page/EventSource.cpp:247
&gt; &gt; +        m_eventId = String();
&gt; 
&gt; We don&apos;t have a function that discards everything already?

No, since two newlines were added to m_receiveBuf before the event stream parser always ran to the end of it and did all necessary discarding.

&gt; &gt; Source/WebCore/page/EventSource.h:118
&gt; &gt; +        String m_eventId;
&gt; &gt;          String m_lastEventId;
&gt; 
&gt; I&apos;m not thrilled about having two eventId member variables. How are they different? Maybe &quot;last&quot; is actually &quot;previous&quot;? Can we encode this bit of state somehow else, without seemingly duplicating data?

I&apos;m not thrilled about it either. Both m_eventId and m_lastEventId represent the last &apos;id&apos; field received. The difference is that m_eventId stores the value temporarily while parsing and the value isn&apos;t transferred to m_lastEventId until an event is dispatch to avoid overwriting m_lastEventId in case the &apos;id&apos; field should be discarded. I couldn&apos;t come up with a better way to solve it than having two eventId members.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473487</commentid>
    <comment_count>6</comment_count>
      <attachid>108722</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-09-26 15:53:50 -0700</bug_when>
    <thetext>Comment on attachment 108722
patch

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

I see, that explains why we need two member variables.

Would &quot;m_currentlyParsedEventId&quot; and &quot;m_latestCompleteEventId&quot; work? You could also null out m_currentlyParsedEventId after transferring its value to m_latestCompleteEventId.

&gt; Source/WebCore/page/EventSource.cpp:319
&gt; +            if (!m_eventId.isNull())
&gt; +                m_lastEventId = m_eventId;

What will break if this if() check is removed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473974</commentid>
    <comment_count>7</comment_count>
      <attachid>108858</attachid>
    <who name="Per-Erik Brodin">per-erik.brodin</who>
    <bug_when>2011-09-27 09:16:06 -0700</bug_when>
    <thetext>Created attachment 108858
updated patch

(In reply to comment #6)
&gt; (From update of attachment 108722 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=108722&amp;action=review
&gt; 
&gt; I see, that explains why we need two member variables.
&gt; 
&gt; Would &quot;m_currentlyParsedEventId&quot; and &quot;m_latestCompleteEventId&quot; work? You could also null out m_currentlyParsedEventId after transferring its value to m_latestCompleteEventId.

I would really like to leave m_lastEventId as it is since that&apos;s a name used in the spec and the lastEventId property on MessageEvent and the Last-Event-ID request header are set from it, but I&apos;ve renamed m_eventId to m_currentlyParsedEventId to better reflect how it&apos;s used.
 
&gt; &gt; Source/WebCore/page/EventSource.cpp:319
&gt; &gt; +            if (!m_eventId.isNull())
&gt; &gt; +                m_lastEventId = m_eventId;
&gt; 
&gt; What will break if this if() check is removed?

If the EventSource reconnects and data is discarded, and the first event after reconnecting doesn&apos;t contain an &apos;id&apos; field, then m_lastEventId will be incorrectly overwritten without that if() check. I&apos;ve slightly updated the eventsource-reconnect test so that this case is covered by the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474007</commentid>
    <comment_count>8</comment_count>
      <attachid>108858</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-09-27 09:47:52 -0700</bug_when>
    <thetext>Comment on attachment 108858
updated patch

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

&gt; Source/WebCore/page/EventSource.cpp:318
&gt; +            if (!m_currentlyParsedEventId.isNull()) {

So, we&apos;re supposed to keep sending the same old last event id if subsequent events don&apos;t have one? Weird.

&gt; Source/WebCore/page/EventSource.h:118
&gt;          String m_lastEventId;

I now agree that keeping the name makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474125</commentid>
    <comment_count>9</comment_count>
    <who name="Per-Erik Brodin">per-erik.brodin</who>
    <bug_when>2011-09-27 11:56:50 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; So, we&apos;re supposed to keep sending the same old last event id if subsequent events don&apos;t have one? Weird.

This is according to the specification:
&quot;If an event doesn&apos;t have an &quot;id&quot; field, but an earlier event did set the event source&apos;s last event ID string, then the event&apos;s lastEventId field will be set to the value of whatever the last seen &quot;id&quot; field was.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474291</commentid>
    <comment_count>10</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-09-27 15:30:53 -0700</bug_when>
    <thetext>(The idea is that if the server sends periodic state messages followed by deltas, when you reconnect you want to give the server the ID of the last state message, not the deltas. Or some such.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525826</commentid>
    <comment_count>11</comment_count>
      <attachid>108858</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-21 16:37:28 -0800</bug_when>
    <thetext>Comment on attachment 108858
updated patch

Clearing flags on attachment: 108858

Committed r103474: &lt;http://trac.webkit.org/changeset/103474&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525827</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-21 16:37:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108722</attachid>
            <date>2011-09-26 14:26:34 -0700</date>
            <delta_ts>2011-09-27 09:16:06 -0700</delta_ts>
            <desc>patch</desc>
            <filename>event-stream_eof_1.patch</filename>
            <type>text/plain</type>
            <size>7538</size>
            <attacher name="Per-Erik Brodin">per-erik.brodin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyZWNkNzc2Li41ZmQ5N2U5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDkt
MjYgIFBlci1FcmlrIEJyb2RpbiAgPHBlci1lcmlrLmJyb2RpbkBlcmljc3Nvbi5jb20+CisKKyAg
ICAgICAgRGlzY2FyZCBldmVudCBkYXRhIG5vdCBmb2xsb3dlZCBieSBhbiBlbXB0eSBsaW5lIGJl
Zm9yZSBlb2Ygd2hlbiBwYXJzaW5nIGFuIGV2ZW50LXN0cmVhbQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MzMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZl
bnRzb3VyY2UtZW9mLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9l
dmVudHNvdXJjZS9ldmVudHNvdXJjZS1lb2YuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMvZXMtZW9mLnBocDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMvcmVzcG9uc2UtY29udGVudC10eXBlLWNo
YXJzZXQucGhwOiBBZGRlZCBlbXB0eSBsaW5lIGJlZm9yZSBlb2YuCisgICAgICAgICogaHR0cC90
ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMvc2ltcGxlLWV2ZW50LXN0cmVhbS5hc2lzOiBBZGRl
ZCBlbXB0eSBsaW5lIGJlZm9yZSBlb2YuCisKIDIwMTEtMDktMjYgIE1paGFpIFBhcnBhcml0YSAg
PG1paGFpcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjk1OTYwLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9l
dmVudHNvdXJjZS1lb2YtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVu
dHNvdXJjZS9ldmVudHNvdXJjZS1lb2YtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjQ3ZWE4ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWVvZi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw3IEBACitUZXN0IHRoYXQgRXZlbnRTb3VyY2UgZGlzY2FyZHMgZXZlbnQgZGF0YSBpZiB0
aGVyZSBpcyBubyBuZXdsaW5lIGJlZm9yZSBlb2YuIFNob3VsZCBwcmludCBhIHNlcmllcyBvZiBQ
QVNTIG1lc3NhZ2VzIGZvbGxvd2VkIGJ5IERPTkUuCisKK1BBU1M6IGdvdCBldmVudCB3aXRoIGV4
cGVjdGVkIGRhdGEsIGxhc3RFdmVudElkLCBhbmQgdHlwZQorUEFTUzogZ290IGV2ZW50IHdpdGgg
ZXhwZWN0ZWQgZGF0YSwgbGFzdEV2ZW50SWQsIGFuZCB0eXBlCitQQVNTOiBnb3QgZXZlbnQgd2l0
aCBleHBlY3RlZCBkYXRhLCBsYXN0RXZlbnRJZCwgYW5kIHR5cGUKK0RPTkUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1lb2YuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtZW9mLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBkNjhmYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2Ut
ZW9mLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCBF
dmVudFNvdXJjZSBkaXNjYXJkcyBldmVudCBkYXRhIGlmIHRoZXJlIGlzIG5vIG5ld2xpbmUgYmVm
b3JlIGVvZi4gU2hvdWxkIHByaW50IGEgc2VyaWVzIG9mIFBBU1MgbWVzc2FnZXMgZm9sbG93ZWQg
YnkgRE9ORS48L3A+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9u
IGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJI
VE1MICs9IG1zZyArICI8YnI+IjsKK30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBjb3VudCA9IDE7CisKK3Zh
ciBlcyA9IG5ldyBFdmVudFNvdXJjZSgicmVzb3VyY2VzL2VzLWVvZi5waHAiKTsKKworZXMub25l
cnJvciA9IGZ1bmN0aW9uICgpIHsKKyAgICBpZiAoY291bnQrKyA9PSAzKSB7CisgICAgICAgIGVz
LmNsb3NlKCk7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorfTsKKwor
ZXMub25tZXNzYWdlID0gZnVuY3Rpb24gKGV2dCkgeworICAgICBpZiAoZXZ0LmRhdGEgPT0gKCJE
QVRBIiArIGNvdW50KSkgeworICAgICAgICBpZiAoZXZ0Lmxhc3RFdmVudElkID09IGNvdW50KSB7
CisgICAgICAgICAgICBpZiAoZXZ0LnR5cGUgPT0gIm1lc3NhZ2UiKQorICAgICAgICAgICAgICAg
IGxvZygiUEFTUzogZ290IGV2ZW50IHdpdGggZXhwZWN0ZWQgZGF0YSwgbGFzdEV2ZW50SWQsIGFu
ZCB0eXBlIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBn
b3QgZXhwZWN0ZWQgZGF0YSBhbmQgbGFzdEV2ZW50SWQgYnV0IHR5cGUgaXMgd3JvbmciKTsKKyAg
ICAgICAgfQorICAgICAgICBlbHNlIGlmIChldnQudHlwZSA9PSAibWVzc2FnZSIpCisgICAgICAg
ICAgICBsb2coIkZBSUw6IGdvdCBleHBlY3RlZCBkYXRhIGJ1dCBsYXN0RXZlbnRJZCBpcyB3cm9u
ZyIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2coIkZBSUw6IGdvdCBleHBlY3RlZCBk
YXRhIGJ1dCBsYXN0RXZlbnRJZCBhbmQgdHlwZSBhcmUgd3JvbmciKTsKKyAgICB9CisgICAgZWxz
ZSBpZiAoY291bnQgPT0gMyAmJiBldnQuZGF0YSA9PSAiREFUQSIgJiYgZXZ0Lmxhc3RFdmVudElk
ID09ICIzLjEiICYmIGV2dC50eXBlID09ICJtc2ciKQorICAgICAgICBsb2coIkRPTkUiKTsKKyAg
ICBlbHNlCisgICAgICAgIGxvZygiRkFJTDogZ290IHVuZXhwZWN0ZWQgbWVzc2FnZSBldmVudCIp
OworfTsKK2VzLmFkZEV2ZW50TGlzdGVuZXIoIm1zZyIsIGVzLm9ubWVzc2FnZSk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
ZXZlbnRzb3VyY2UvcmVzb3VyY2VzL2VzLWVvZi5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2V2ZW50c291cmNlL3Jlc291cmNlcy9lcy1lb2YucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjI4MDk3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2V2ZW50c291cmNlL3Jlc291cmNlcy9lcy1lb2YucGhwCkBAIC0wLDAgKzEsMTMgQEAK
Kzw/cGhwCitoZWFkZXIoIkNvbnRlbnQtVHlwZTogdGV4dC9ldmVudC1zdHJlYW0iKTsKKworJGlk
ID0gZmxvYXR2YWwoJF9TRVJWRVJbJ0hUVFBfTEFTVF9FVkVOVF9JRCddKSArIDE7CisKK2VjaG8g
InJldHJ5OiAwXG4iOworZWNobyAiaWQ6ICIgLiAkaWQgLiAiXG4iOworZWNobyAiZGF0YTogREFU
QSIgLiBpbnR2YWwoJGlkKSAuICJcblxuIjsKKworZWNobyAiaWQ6ICIgLiAoJGlkICsgMC4xKSAu
ICJcbiI7CitlY2hvICJldmVudDogbXNnXG4iOworZWNobyAiZGF0YTogREFUQSIgLiBzdHJfcmVw
ZWF0KCJcbiIsICRpZCAtIDEpOworPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvZXZlbnRzb3VyY2UvcmVzb3VyY2VzL3Jlc3BvbnNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0LnBo
cCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvcmVzb3VyY2VzL3Jlc3BvbnNl
LWNvbnRlbnQtdHlwZS1jaGFyc2V0LnBocAppbmRleCAzN2Y2ZGFkLi5lMDVhZThkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL3Jlc291cmNlcy9yZXNwb25z
ZS1jb250ZW50LXR5cGUtY2hhcnNldC5waHAKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9l
dmVudHNvdXJjZS9yZXNvdXJjZXMvcmVzcG9uc2UtY29udGVudC10eXBlLWNoYXJzZXQucGhwCkBA
IC0xMSwzICsxMSw0IEBAIGhlYWRlcigiQ29udGVudC1UeXBlOiAkY29udGVudFR5cGUiKTsKIGlk
OiA3NwogcmV0cnk6IDMwMAogZGF0YTogaGVsbG8KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMvc2ltcGxlLWV2ZW50LXN0cmVhbS5hc2lz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMvc2ltcGxlLWV2
ZW50LXN0cmVhbS5hc2lzCmluZGV4IDQzMzVlODYuLjMyMGE4NTUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvcmVzb3VyY2VzL3NpbXBsZS1ldmVudC1zdHJl
YW0uYXNpcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL3Jlc291cmNl
cy9zaW1wbGUtZXZlbnQtc3RyZWFtLmFzaXMKQEAgLTEsMyArMSw0IEBACiBDb250ZW50LVR5cGU6
IHRleHQvZXZlbnQtc3RyZWFtCiAKIGRhdGE6IGhlbGxvCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMjVhM2Yy
Li5mYTkzNWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDktMjYgIFBlci1F
cmlrIEJyb2RpbiAgPHBlci1lcmlrLmJyb2RpbkBlcmljc3Nvbi5jb20+CisKKyAgICAgICAgRGlz
Y2FyZCBldmVudCBkYXRhIG5vdCBmb2xsb3dlZCBieSBhbiBlbXB0eSBsaW5lIGJlZm9yZSBlb2Yg
d2hlbiBwYXJzaW5nIGFuIGV2ZW50LXN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291
cmNlLWVvZi5odG1sCisKKyAgICAgICAgKiBwYWdlL0V2ZW50U291cmNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50U291cmNlOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50U291cmNlOjpwYXJzZUV2ZW50U3RyZWFtTGluZSk6CisgICAgICAgICogcGFnZS9F
dmVudFNvdXJjZS5oOgorCiAyMDExLTA5LTI2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgogCiAgICAgICAgIFdoaXRlIGZsYXNoIHdoZW4gZW50ZXJpbmcgZnVsbC1zY3JlZW4gdXNp
bmcgZWxlbWVudC53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRT
b3VyY2UuY3BwCmluZGV4IDc0Y2NjNGYuLmVmODFkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRT
b3VyY2UuY3BwCkBAIC0yMzgsOCArMjM4LDEzIEBAIHZvaWQgRXZlbnRTb3VyY2U6OmRpZEZpbmlz
aExvYWRpbmcodW5zaWduZWQgbG9uZywgZG91YmxlKQogICAgIEFTU0VSVChtX3JlcXVlc3RJbkZs
aWdodCk7CiAKICAgICBpZiAobV9yZWNlaXZlQnVmLnNpemUoKSA+IDAgfHwgbV9kYXRhLnNpemUo
KSA+IDApIHsKLSAgICAgICAgYXBwZW5kKG1fcmVjZWl2ZUJ1ZiwgIlxuXG4iKTsKICAgICAgICAg
cGFyc2VFdmVudFN0cmVhbSgpOworCisgICAgICAgIC8vIERpc2NhcmQgZXZlcnl0aGluZyB0aGF0
IGhhcyBub3QgYmVlbiBkaXNwYXRjaGVkIGJ5IG5vdy4KKyAgICAgICAgbV9yZWNlaXZlQnVmLmNs
ZWFyKCk7CisgICAgICAgIG1fZGF0YS5jbGVhcigpOworICAgICAgICBtX2V2ZW50TmFtZSA9ICIi
OworICAgICAgICBtX2V2ZW50SWQgPSBTdHJpbmcoKTsKICAgICB9CiAgICAgbmV0d29ya1JlcXVl
c3RFbmRlZCgpOwogfQpAQCAtMzEwLDYgKzMxNSw4IEBAIHZvaWQgRXZlbnRTb3VyY2U6OnBhcnNl
RXZlbnRTdHJlYW1MaW5lKHVuc2lnbmVkIGludCBidWZQb3MsIGludCBmaWVsZExlbmd0aCwgaW50
CiAgICAgaWYgKCFsaW5lTGVuZ3RoKSB7CiAgICAgICAgIGlmICghbV9kYXRhLmlzRW1wdHkoKSkg
ewogICAgICAgICAgICAgbV9kYXRhLnJlbW92ZUxhc3QoKTsKKyAgICAgICAgICAgIGlmICghbV9l
dmVudElkLmlzTnVsbCgpKQorICAgICAgICAgICAgICAgIG1fbGFzdEV2ZW50SWQgPSBtX2V2ZW50
SWQ7CiAgICAgICAgICAgICBkaXNwYXRjaEV2ZW50KGNyZWF0ZU1lc3NhZ2VFdmVudCgpKTsKICAg
ICAgICAgfQogICAgICAgICBpZiAoIW1fZXZlbnROYW1lLmlzRW1wdHkoKSkKQEAgLTMzNSw3ICsz
NDIsNyBAQCB2b2lkIEV2ZW50U291cmNlOjpwYXJzZUV2ZW50U3RyZWFtTGluZSh1bnNpZ25lZCBp
bnQgYnVmUG9zLCBpbnQgZmllbGRMZW5ndGgsIGludAogICAgICAgICB9IGVsc2UgaWYgKGZpZWxk
ID09ICJldmVudCIpCiAgICAgICAgICAgICBtX2V2ZW50TmFtZSA9IHZhbHVlTGVuZ3RoID8gU3Ry
aW5nKCZtX3JlY2VpdmVCdWZbYnVmUG9zXSwgdmFsdWVMZW5ndGgpIDogIiI7CiAgICAgICAgIGVs
c2UgaWYgKGZpZWxkID09ICJpZCIpCi0gICAgICAgICAgICBtX2xhc3RFdmVudElkID0gdmFsdWVM
ZW5ndGggPyBTdHJpbmcoJm1fcmVjZWl2ZUJ1ZltidWZQb3NdLCB2YWx1ZUxlbmd0aCkgOiAiIjsK
KyAgICAgICAgICAgIG1fZXZlbnRJZCA9IHZhbHVlTGVuZ3RoID8gU3RyaW5nKCZtX3JlY2VpdmVC
dWZbYnVmUG9zXSwgdmFsdWVMZW5ndGgpIDogIiI7CiAgICAgICAgIGVsc2UgaWYgKGZpZWxkID09
ICJyZXRyeSIpIHsKICAgICAgICAgICAgIGlmICghdmFsdWVMZW5ndGgpCiAgICAgICAgICAgICAg
ICAgbV9yZWNvbm5lY3REZWxheSA9IGRlZmF1bHRSZWNvbm5lY3REZWxheTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRTb3VyY2UuaAppbmRleCBhOGI4YjQxLi5hNGNhNTE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dFNvdXJjZS5oCkBAIC0xMTQsNiArMTE0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIFN0cmluZyBtX2V2ZW50TmFtZTsKICAgICAgICAgVmVjdG9yPFVDaGFyPiBtX2RhdGE7Cisg
ICAgICAgIFN0cmluZyBtX2V2ZW50SWQ7CiAgICAgICAgIFN0cmluZyBtX2xhc3RFdmVudElkOwog
ICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbV9yZWNvbm5lY3REZWxheTsKICAgICAgICAgU3Ry
aW5nIG1fb3JpZ2luOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108858</attachid>
            <date>2011-09-27 09:16:06 -0700</date>
            <delta_ts>2011-12-21 16:37:28 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>event-stream_eof_2.patch</filename>
            <type>text/plain</type>
            <size>9861</size>
            <attacher name="Per-Erik Brodin">per-erik.brodin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwYjBjMTU2Li4zYTM4NjQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDkt
MjcgIFBlci1FcmlrIEJyb2RpbiAgPHBlci1lcmlrLmJyb2RpbkBlcmljc3Nvbi5jb20+CisKKyAg
ICAgICAgRGlzY2FyZCBldmVudCBkYXRhIG5vdCBmb2xsb3dlZCBieSBhbiBlbXB0eSBsaW5lIGJl
Zm9yZSBlb2Ygd2hlbiBwYXJzaW5nIGFuIGV2ZW50LXN0cmVhbQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MzMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZl
bnRzb3VyY2UtZW9mLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9l
dmVudHNvdXJjZS9ldmVudHNvdXJjZS1lb2YuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1yZWNvbm5lY3QtZXhwZWN0ZWQudHh0OiBVcGRh
dGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtcmVjb25u
ZWN0Lmh0bWw6IEFkZGVkIGxhc3RFdmVudElkIGNoZWNrLgorICAgICAgICAqIGh0dHAvdGVzdHMv
ZXZlbnRzb3VyY2UvcmVzb3VyY2VzL2VzLWVvZi5waHA6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvZXZlbnRzb3VyY2UvcmVzb3VyY2VzL3JlY29ubmVjdC5waHA6IEFkZGVkIGRhdGEgdG8g
YmUgZGlzY2FyZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRzb3VyY2UvcmVzb3VyY2Vz
L3Jlc3BvbnNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0LnBocDogQWRkZWQgZW1wdHkgbGluZSBiZWZv
cmUgZW9mLgorICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRzb3VyY2UvcmVzb3VyY2VzL3NpbXBs
ZS1ldmVudC1zdHJlYW0uYXNpczogQWRkZWQgZW1wdHkgbGluZSBiZWZvcmUgZW9mLgorCiAyMDEx
LTA5LTI3ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkIGZvbGxvd3VwZml4IGZvciByOTYxMTAuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWVvZi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWVvZi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDdlYThlNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRz
b3VyY2UtZW9mLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3QgdGhhdCBFdmVudFNv
dXJjZSBkaXNjYXJkcyBldmVudCBkYXRhIGlmIHRoZXJlIGlzIG5vIG5ld2xpbmUgYmVmb3JlIGVv
Zi4gU2hvdWxkIHByaW50IGEgc2VyaWVzIG9mIFBBU1MgbWVzc2FnZXMgZm9sbG93ZWQgYnkgRE9O
RS4KKworUEFTUzogZ290IGV2ZW50IHdpdGggZXhwZWN0ZWQgZGF0YSwgbGFzdEV2ZW50SWQsIGFu
ZCB0eXBlCitQQVNTOiBnb3QgZXZlbnQgd2l0aCBleHBlY3RlZCBkYXRhLCBsYXN0RXZlbnRJZCwg
YW5kIHR5cGUKK1BBU1M6IGdvdCBldmVudCB3aXRoIGV4cGVjdGVkIGRhdGEsIGxhc3RFdmVudElk
LCBhbmQgdHlwZQorRE9ORQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2
ZW50c291cmNlL2V2ZW50c291cmNlLWVvZi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9l
dmVudHNvdXJjZS9ldmVudHNvdXJjZS1lb2YuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42MGQ2OGZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1lb2YuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8
aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IEV2ZW50U291cmNlIGRpc2NhcmRzIGV2ZW50IGRh
dGEgaWYgdGhlcmUgaXMgbm8gbmV3bGluZSBiZWZvcmUgZW9mLiBTaG91bGQgcHJpbnQgYSBzZXJp
ZXMgb2YgUEFTUyBtZXNzYWdlcyBmb2xsb3dlZCBieSBET05FLjwvcD4KKzxkaXYgaWQ9InJlc3Vs
dCI+PC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCitp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKK30KKwordmFyIGNvdW50ID0gMTsKKwordmFyIGVzID0gbmV3IEV2ZW50U291cmNlKCJyZXNv
dXJjZXMvZXMtZW9mLnBocCIpOworCitlcy5vbmVycm9yID0gZnVuY3Rpb24gKCkgeworICAgIGlm
IChjb3VudCsrID09IDMpIHsKKyAgICAgICAgZXMuY2xvc2UoKTsKKyAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKKyAgICB9Cit9OworCitlcy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZ0
KSB7CisgICAgIGlmIChldnQuZGF0YSA9PSAoIkRBVEEiICsgY291bnQpKSB7CisgICAgICAgIGlm
IChldnQubGFzdEV2ZW50SWQgPT0gY291bnQpIHsKKyAgICAgICAgICAgIGlmIChldnQudHlwZSA9
PSAibWVzc2FnZSIpCisgICAgICAgICAgICAgICAgbG9nKCJQQVNTOiBnb3QgZXZlbnQgd2l0aCBl
eHBlY3RlZCBkYXRhLCBsYXN0RXZlbnRJZCwgYW5kIHR5cGUiKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBsb2coIkZBSUw6IGdvdCBleHBlY3RlZCBkYXRhIGFuZCBsYXN0RXZl
bnRJZCBidXQgdHlwZSBpcyB3cm9uZyIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2
dC50eXBlID09ICJtZXNzYWdlIikKKyAgICAgICAgICAgIGxvZygiRkFJTDogZ290IGV4cGVjdGVk
IGRhdGEgYnV0IGxhc3RFdmVudElkIGlzIHdyb25nIik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGxvZygiRkFJTDogZ290IGV4cGVjdGVkIGRhdGEgYnV0IGxhc3RFdmVudElkIGFuZCB0eXBl
IGFyZSB3cm9uZyIpOworICAgIH0KKyAgICBlbHNlIGlmIChjb3VudCA9PSAzICYmIGV2dC5kYXRh
ID09ICJEQVRBIiAmJiBldnQubGFzdEV2ZW50SWQgPT0gIjMuMSIgJiYgZXZ0LnR5cGUgPT0gIm1z
ZyIpCisgICAgICAgIGxvZygiRE9ORSIpOworICAgIGVsc2UKKyAgICAgICAgbG9nKCJGQUlMOiBn
b3QgdW5leHBlY3RlZCBtZXNzYWdlIGV2ZW50Iik7Cit9OworZXMuYWRkRXZlbnRMaXN0ZW5lcigi
bXNnIiwgZXMub25tZXNzYWdlKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1yZWNv
bm5lY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9l
dmVudHNvdXJjZS1yZWNvbm5lY3QtZXhwZWN0ZWQudHh0CmluZGV4IGNjZWVmZmYuLjRkM2UyYWUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3Vy
Y2UtcmVjb25uZWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2
ZW50c291cmNlL2V2ZW50c291cmNlLXJlY29ubmVjdC1leHBlY3RlZC50eHQKQEAgLTUsNyArNSw3
IEBAIFBBU1M6IHN0YXRlIGlzIE9QRU4KIFBBU1M6IGdvdCBsYXN0RXZlbnRJZCAiNzciCiBQQVNT
OiBzdGF0ZSBpcyBDT05ORUNUSU5HCiBQQVNTOiBzdGF0ZSBpcyBPUEVOCi1QQVNTOiBMYXN0LUV2
ZW50LUlEIGhlYWRlciB3YXMgY29ycmVjdAorUEFTUzogTGFzdC1FdmVudC1JRCBoZWFkZXIgYW5k
IHRoZSBsYXN0RXZlbnRJZCBwcm9wZXJ0eSB3ZXJlIGNvcnJlY3QKIFBBU1M6IHN0YXRlIGlzIENM
T1NFRAogRE9ORQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291
cmNlL2V2ZW50c291cmNlLXJlY29ubmVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9l
dmVudHNvdXJjZS9ldmVudHNvdXJjZS1yZWNvbm5lY3QuaHRtbAppbmRleCA1NDMyMWUzLi4wYzgy
NmU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50
c291cmNlLXJlY29ubmVjdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRz
b3VyY2UvZXZlbnRzb3VyY2UtcmVjb25uZWN0Lmh0bWwKQEAgLTQxLDEwICs0MSwxMiBAQCBlcy5v
bm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZ0KSB7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGxv
ZygiRkFJTDogdW5leHBlY3RlZCBsYXN0RXZlbnRJZCBcIiIgKyBldnQubGFzdEV2ZW50SWQgKyAi
XCIiKTsKICAgICB9IGVsc2UgewotICAgICAgICBpZiAoZXZ0LmRhdGEgPT0gIjc3IikKLSAgICAg
ICAgICAgIGxvZygiUEFTUzogTGFzdC1FdmVudC1JRCBoZWFkZXIgd2FzIGNvcnJlY3QiKTsKLSAg
ICAgICAgZWxzZQorICAgICAgICBpZiAoZXZ0LmRhdGEgIT0gIjc3IikKICAgICAgICAgICAgIGxv
ZygiRkFJTDogTGFzdC1FdmVudC1JRCBoZWFkZXIgd2FzIGluY29ycmVjdC9taXNzaW5nIik7Cisg
ICAgICAgIGVsc2UgaWYgKGV2dC5sYXN0RXZlbnRJZCAhPSAiNzciKQorICAgICAgICAgICAgbG9n
KCJGQUlMOiB0aGUgbGFzdEV2ZW50SWQgcHJvcGVydHkgd2FzIGluY29ycmVjdCIpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBsb2coIlBBU1M6IExhc3QtRXZlbnQtSUQgaGVhZGVyIGFuZCB0
aGUgbGFzdEV2ZW50SWQgcHJvcGVydHkgd2VyZSBjb3JyZWN0Iik7CiAgICAgfQogfTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMvZXMt
ZW9mLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvcmVzb3VyY2VzL2Vz
LWVvZi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjgwOTcwZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvcmVzb3Vy
Y2VzL2VzLWVvZi5waHAKQEAgLTAsMCArMSwxMyBAQAorPD9waHAKK2hlYWRlcigiQ29udGVudC1U
eXBlOiB0ZXh0L2V2ZW50LXN0cmVhbSIpOworCiskaWQgPSBmbG9hdHZhbCgkX1NFUlZFUlsnSFRU
UF9MQVNUX0VWRU5UX0lEJ10pICsgMTsKKworZWNobyAicmV0cnk6IDBcbiI7CitlY2hvICJpZDog
IiAuICRpZCAuICJcbiI7CitlY2hvICJkYXRhOiBEQVRBIiAuIGludHZhbCgkaWQpIC4gIlxuXG4i
OworCitlY2hvICJpZDogIiAuICgkaWQgKyAwLjEpIC4gIlxuIjsKK2VjaG8gImV2ZW50OiBtc2dc
biI7CitlY2hvICJkYXRhOiBEQVRBIiAuIHN0cl9yZXBlYXQoIlxuIiwgJGlkIC0gMSk7Cis/Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMv
cmVjb25uZWN0LnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvcmVzb3Vy
Y2VzL3JlY29ubmVjdC5waHAKaW5kZXggYWMxZjBlZC4uODVhMjQ3ZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMvcmVjb25uZWN0LnBocAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL3Jlc291cmNlcy9yZWNvbm5l
Y3QucGhwCkBAIC04LDUgKzgsNiBAQCBlbHNlIHsKICAgICBlY2hvICJpZDogNzdcbiI7CiAgICAg
ZWNobyAicmV0cnk6IDMwMFxuIjsKICAgICBlY2hvICJkYXRhOiBoZWxsb1xuXG4iOworICAgIGVj
aG8gImRhdGE6IGRpc2NhcmRlZCI7CiB9CiA/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMvcmVzcG9uc2UtY29udGVudC10eXBlLWNoYXJz
ZXQucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMvcmVz
cG9uc2UtY29udGVudC10eXBlLWNoYXJzZXQucGhwCmluZGV4IDM3ZjZkYWQuLmUwNWFlOGQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvcmVzb3VyY2VzL3Jl
c3BvbnNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0LnBocAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2V2ZW50c291cmNlL3Jlc291cmNlcy9yZXNwb25zZS1jb250ZW50LXR5cGUtY2hhcnNldC5w
aHAKQEAgLTExLDMgKzExLDQgQEAgaGVhZGVyKCJDb250ZW50LVR5cGU6ICRjb250ZW50VHlwZSIp
OwogaWQ6IDc3CiByZXRyeTogMzAwCiBkYXRhOiBoZWxsbworCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL3Jlc291cmNlcy9zaW1wbGUtZXZlbnQtc3RyZWFt
LmFzaXMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL3Jlc291cmNlcy9zaW1w
bGUtZXZlbnQtc3RyZWFtLmFzaXMKaW5kZXggNDMzNWU4Ni4uMzIwYTg1NSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMvc2ltcGxlLWV2ZW50
LXN0cmVhbS5hc2lzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvcmVz
b3VyY2VzL3NpbXBsZS1ldmVudC1zdHJlYW0uYXNpcwpAQCAtMSwzICsxLDQgQEAKIENvbnRlbnQt
VHlwZTogdGV4dC9ldmVudC1zdHJlYW0KIAogZGF0YTogaGVsbG8KKwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdm
NDc3ZDcuLmRmYTc2ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wOS0yNyAg
UGVyLUVyaWsgQnJvZGluICA8cGVyLWVyaWsuYnJvZGluQGVyaWNzc29uLmNvbT4KKworICAgICAg
ICBEaXNjYXJkIGV2ZW50IGRhdGEgbm90IGZvbGxvd2VkIGJ5IGFuIGVtcHR5IGxpbmUgYmVmb3Jl
IGVvZiB3aGVuIHBhcnNpbmcgYW4gZXZlbnQtc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODgzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZl
bnRzb3VyY2UtZW9mLmh0bWwKKworICAgICAgICAqIHBhZ2UvRXZlbnRTb3VyY2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRTb3VyY2U6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRTb3VyY2U6OnBhcnNlRXZlbnRTdHJlYW1MaW5lKToKKyAgICAgICAgKiBw
YWdlL0V2ZW50U291cmNlLmg6CisKIDIwMTEtMDktMjMgIFRvciBBcm5lIFZlc3Riw7ggIDx0b3Iu
YXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4IGJ1aWxkIGFnYWluc3Qg
UXQ1IGFmdGVyIHJlZmFjdG9yIG9mIHdpZGdldHMgb3V0IG9mIFF0R1VpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRTb3VyY2UuY3BwCmluZGV4IDc0Y2NjNGYuLjM3MDZkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRTb3VyY2UuY3BwCkBAIC0yMzgsOCArMjM4LDEzIEBAIHZvaWQgRXZlbnRTb3VyY2U6OmRp
ZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZywgZG91YmxlKQogICAgIEFTU0VSVChtX3JlcXVl
c3RJbkZsaWdodCk7CiAKICAgICBpZiAobV9yZWNlaXZlQnVmLnNpemUoKSA+IDAgfHwgbV9kYXRh
LnNpemUoKSA+IDApIHsKLSAgICAgICAgYXBwZW5kKG1fcmVjZWl2ZUJ1ZiwgIlxuXG4iKTsKICAg
ICAgICAgcGFyc2VFdmVudFN0cmVhbSgpOworCisgICAgICAgIC8vIERpc2NhcmQgZXZlcnl0aGlu
ZyB0aGF0IGhhcyBub3QgYmVlbiBkaXNwYXRjaGVkIGJ5IG5vdy4KKyAgICAgICAgbV9yZWNlaXZl
QnVmLmNsZWFyKCk7CisgICAgICAgIG1fZGF0YS5jbGVhcigpOworICAgICAgICBtX2V2ZW50TmFt
ZSA9ICIiOworICAgICAgICBtX2N1cnJlbnRseVBhcnNlZEV2ZW50SWQgPSBTdHJpbmcoKTsKICAg
ICB9CiAgICAgbmV0d29ya1JlcXVlc3RFbmRlZCgpOwogfQpAQCAtMzEwLDYgKzMxNSwxMCBAQCB2
b2lkIEV2ZW50U291cmNlOjpwYXJzZUV2ZW50U3RyZWFtTGluZSh1bnNpZ25lZCBpbnQgYnVmUG9z
LCBpbnQgZmllbGRMZW5ndGgsIGludAogICAgIGlmICghbGluZUxlbmd0aCkgewogICAgICAgICBp
ZiAoIW1fZGF0YS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIG1fZGF0YS5yZW1vdmVMYXN0KCk7
CisgICAgICAgICAgICBpZiAoIW1fY3VycmVudGx5UGFyc2VkRXZlbnRJZC5pc051bGwoKSkgewor
ICAgICAgICAgICAgICAgIG1fbGFzdEV2ZW50SWQuc3dhcChtX2N1cnJlbnRseVBhcnNlZEV2ZW50
SWQpOworICAgICAgICAgICAgICAgIG1fY3VycmVudGx5UGFyc2VkRXZlbnRJZCA9IFN0cmluZygp
OworICAgICAgICAgICAgfQogICAgICAgICAgICAgZGlzcGF0Y2hFdmVudChjcmVhdGVNZXNzYWdl
RXZlbnQoKSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFtX2V2ZW50TmFtZS5pc0VtcHR5KCkp
CkBAIC0zMzUsNyArMzQ0LDcgQEAgdm9pZCBFdmVudFNvdXJjZTo6cGFyc2VFdmVudFN0cmVhbUxp
bmUodW5zaWduZWQgaW50IGJ1ZlBvcywgaW50IGZpZWxkTGVuZ3RoLCBpbnQKICAgICAgICAgfSBl
bHNlIGlmIChmaWVsZCA9PSAiZXZlbnQiKQogICAgICAgICAgICAgbV9ldmVudE5hbWUgPSB2YWx1
ZUxlbmd0aCA/IFN0cmluZygmbV9yZWNlaXZlQnVmW2J1ZlBvc10sIHZhbHVlTGVuZ3RoKSA6ICIi
OwogICAgICAgICBlbHNlIGlmIChmaWVsZCA9PSAiaWQiKQotICAgICAgICAgICAgbV9sYXN0RXZl
bnRJZCA9IHZhbHVlTGVuZ3RoID8gU3RyaW5nKCZtX3JlY2VpdmVCdWZbYnVmUG9zXSwgdmFsdWVM
ZW5ndGgpIDogIiI7CisgICAgICAgICAgICBtX2N1cnJlbnRseVBhcnNlZEV2ZW50SWQgPSB2YWx1
ZUxlbmd0aCA/IFN0cmluZygmbV9yZWNlaXZlQnVmW2J1ZlBvc10sIHZhbHVlTGVuZ3RoKSA6ICIi
OwogICAgICAgICBlbHNlIGlmIChmaWVsZCA9PSAicmV0cnkiKSB7CiAgICAgICAgICAgICBpZiAo
IXZhbHVlTGVuZ3RoKQogICAgICAgICAgICAgICAgIG1fcmVjb25uZWN0RGVsYXkgPSBkZWZhdWx0
UmVjb25uZWN0RGVsYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmgKaW5kZXggYThiOGI0MS4u
NjZkMGRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaApAQCAtMTE0LDYgKzExNCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBTdHJpbmcgbV9ldmVudE5hbWU7CiAgICAg
ICAgIFZlY3RvcjxVQ2hhcj4gbV9kYXRhOworICAgICAgICBTdHJpbmcgbV9jdXJyZW50bHlQYXJz
ZWRFdmVudElkOwogICAgICAgICBTdHJpbmcgbV9sYXN0RXZlbnRJZDsKICAgICAgICAgdW5zaWdu
ZWQgbG9uZyBsb25nIG1fcmVjb25uZWN0RGVsYXk7CiAgICAgICAgIFN0cmluZyBtX29yaWdpbjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>