<?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>166969</bug_id>
          
          <creation_ts>2017-01-12 05:25:48 -0800</creation_ts>
          <short_desc>[SOUP] Fix handling of accept language property</short_desc>
          <delta_ts>2017-01-27 06:59:43 -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>WebKit2</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>166967</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>commit-queue</cc>
    
    <cc>danw</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1266126</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-01-12 05:25:48 -0800</bug_when>
    <thetext>Accept languages should be applied to all network contexts, but we currently only apply it to the default one, and there&apos;s a workaround added in r206431 to also apply it to the testing one. We should do it properly and remove the workaround for the testing session.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266127</commentid>
    <comment_count>1</comment_count>
      <attachid>298672</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-01-12 05:31:19 -0800</bug_when>
    <thetext>Created attachment 298672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266240</commentid>
    <comment_count>2</comment_count>
      <attachid>298672</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-01-12 12:21:18 -0800</bug_when>
    <thetext>Comment on attachment 298672
Patch

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

I noticed this back before we supported network session. (That said, is it actually possible to have multiple network sessions in our port yet, or is that a future step?)

&gt; Source/WebKit2/NetworkProcess/soup/NetworkProcessSoup.cpp:101
&gt; +    g_object_set(NetworkStorageSession::defaultStorageSession().soupNetworkSession().soupSession(), &quot;accept-language&quot;, acceptLanguages.data(), nullptr);
&gt; +    NetworkStorageSession::forEach([acceptLanguages](const WebCore::NetworkStorageSession&amp; session) {
&gt; +        g_object_set(session.soupNetworkSession().soupSession(), &quot;accept-language&quot;, acceptLanguages.data(), nullptr);

Hmmmm

I think our SoupNetworkSession class should have a helper function that wraps this g_object_set(..., &quot;accept-language&quot;, ...) so that you don&apos;t have to do this manually from outside the class. Up until this patch, that was SoupNetworkSession::setAcceptLanguages. So I really don&apos;t see the advantage to this approach. Instead of changing setAcceptLanguages to be static, I would call it here, and add a new static function SoupNetworkSession::setInitialAcceptLanguages to set it for new SoupNetworkSession objects. (I guess it&apos;s not possible to pass in via the constructor for some reason?)

This is just a matter of style; I&apos;m willing to give r+ if you disagree, but I don&apos;t think this is the nicest way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266438</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-01-13 00:39:17 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 298672 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=298672&amp;action=review
&gt; 
&gt; I noticed this back before we supported network session. (That said, is it
&gt; actually possible to have multiple network sessions in our port yet, or is
&gt; that a future step?)

It is. Open MiniBrowser and enable private browsing in the settings, for example. The other case is testing, NetworkStorageSession::switchToNewTestingSession() creates a new session that is private from the cookie storage point of view, but non ephemeral from the session point of view, so it replaces the default session.

&gt; &gt; Source/WebKit2/NetworkProcess/soup/NetworkProcessSoup.cpp:101
&gt; &gt; +    g_object_set(NetworkStorageSession::defaultStorageSession().soupNetworkSession().soupSession(), &quot;accept-language&quot;, acceptLanguages.data(), nullptr);
&gt; &gt; +    NetworkStorageSession::forEach([acceptLanguages](const WebCore::NetworkStorageSession&amp; session) {
&gt; &gt; +        g_object_set(session.soupNetworkSession().soupSession(), &quot;accept-language&quot;, acceptLanguages.data(), nullptr);
&gt; 
&gt; Hmmmm
&gt; 
&gt; I think our SoupNetworkSession class should have a helper function that
&gt; wraps this g_object_set(..., &quot;accept-language&quot;, ...) so that you don&apos;t have
&gt; to do this manually from outside the class. Up until this patch, that was
&gt; SoupNetworkSession::setAcceptLanguages. So I really don&apos;t see the advantage
&gt; to this approach. Instead of changing setAcceptLanguages to be static, I
&gt; would call it here, and add a new static function
&gt; SoupNetworkSession::setInitialAcceptLanguages to set it for new
&gt; SoupNetworkSession objects. (I guess it&apos;s not possible to pass in via the
&gt; constructor for some reason?)
&gt; 
&gt; This is just a matter of style; I&apos;m willing to give r+ if you disagree, but
&gt; I don&apos;t think this is the nicest way.

No, I think this is good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266439</commentid>
    <comment_count>4</comment_count>
      <attachid>298752</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-01-13 00:44:11 -0800</bug_when>
    <thetext>Created attachment 298752
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266503</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-01-13 10:13:37 -0800</bug_when>
    <thetext>(In reply to comment #3) 
&gt; It is. Open MiniBrowser and enable private browsing in the settings, for
&gt; example. The other case is testing,
&gt; NetworkStorageSession::switchToNewTestingSession() creates a new session
&gt; that is private from the cookie storage point of view, but non ephemeral
&gt; from the session point of view, so it replaces the default session.

If we support private browsing session now, should we be using that in Epiphany...?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266505</commentid>
    <comment_count>6</comment_count>
      <attachid>298752</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-01-13 10:18:23 -0800</bug_when>
    <thetext>Comment on attachment 298752
Updated patch

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

&gt; Source/WebKit2/NetworkProcess/soup/NetworkProcessSoup.cpp:100
&gt; +    NetworkStorageSession::forEach([acceptLanguages](const WebCore::NetworkStorageSession&amp; session) {

Should probably capture by reference instead of copying the CString object unnecessarily.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1267119</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-01-16 03:25:43 -0800</bug_when>
    <thetext>Committed r210785: &lt;http://trac.webkit.org/changeset/210785&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1267128</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-01-16 05:31:08 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3) 
&gt; &gt; It is. Open MiniBrowser and enable private browsing in the settings, for
&gt; &gt; example. The other case is testing,
&gt; &gt; NetworkStorageSession::switchToNewTestingSession() creates a new session
&gt; &gt; that is private from the cookie storage point of view, but non ephemeral
&gt; &gt; from the session point of view, so it replaces the default session.
&gt; 
&gt; If we support private browsing session now, should we be using that in
&gt; Epiphany...?

We have always supported private browsing, another thing is that it has always been broken :-P I don&apos;t think it&apos;s ready for ephy yet, at least custom uri schemes doesn&apos;t work in private browsing mode, but it might be the only thing left to do. Then, yes, I think it&apos;s safer to enable private browsing in ephy, it might cover cases for which we are still writing outside the ephy profile dir.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270629</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-01-27 06:41:54 -0800</bug_when>
    <thetext>So did we mess up here? Accept-Langs is a context-specific setting. Unless each web context gets its own separate network process, this is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270631</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-01-27 06:59:43 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; So did we mess up here? Accept-Langs is a context-specific setting. Unless
&gt; each web context gets its own separate network process, this is wrong.

Every web context has its own network process</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298672</attachid>
            <date>2017-01-12 05:31:19 -0800</date>
            <delta_ts>2017-01-13 00:44:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-soup-languages.diff</filename>
            <type>text/plain</type>
            <size>9000</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmNzdkMzQyNTAxMy4uMjNiN2NmMTIyZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyMyBAQAogMjAxNy0wMS0xMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKKyAgICAgICAgW1NPVVBdIEZpeCBoYW5kbGluZyBvZiBhY2NlcHQgbGFuZ3Vh
Z2UgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2Njk2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1ha2UgU291cE5ldHdvcmtTZXNzaW9uOjpzZXRBY2NlcHRMYW5ndWFnZXMoKSBzdGF0aWMg
YW5kIHVwZGF0ZSBpdCB0byByZWNlaXZlIHRoZSBzdHJpbmcgYWxyZWFkeSBidWlsdCBmcm9tIHRo
ZQorICAgICAgICBsYW5ndWFnZXMgdmVjdG9yLiBOb3cgdGhlIFNvdXBOZXR3b3JrU2Vzc2lvbiBv
bmx5IHNhdmVzIHRoYXQgdmFsdWUgZ2xvYmFsbHkgdGhhdCBpcyBhbHdheXMgdXNlZCB3aGVuIGNy
ZWF0aW5nCisgICAgICAgIG5ldyBzZXNzaW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbik6IFJlbW92
ZSB3b3JrYXJvdW5kLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29y
a1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cE5ldHdvcmtTZXNzaW9uOjpTb3Vw
TmV0d29ya1Nlc3Npb24pOiBJZiBhY2NlcHQgbGFuZ3VhZ2VzIHdlcmUgc2V0LCBhcHBseSB0aGVt
IHRvIHRoZSBuZXdseSBjcmVhdGVkIGNvbnRleHQuCisgICAgICAgIChXZWJDb3JlOjpTb3VwTmV0
d29ya1Nlc3Npb246OnNldEFjY2VwdExhbmd1YWdlcyk6IEp1c3Qgc2F2ZSB0aGUgZ2l2ZW4gdmFs
dWUgZ2xvYmFsbHkuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3Jr
U2Vzc2lvbi5oOgorCisyMDE3LTAxLTEyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKwogICAgICAgICBbU09VUF0gU2ltcGxpZnkgY29va2llIHN0b3JhZ2UgaGFu
ZGxpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
Njk2NwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5kZXggNzE2OTA0Yjdh
OTIuLjYyYTIwMmYwOGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBA
IC04NCw4ICs4NCw2IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvCiB2b2lkIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbigpCiB7CiAgICAgZGVmYXVsdFNl
c3Npb24oKSA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgc3RkOjptYWtlX3VuaXF1ZTxTb3VwTmV0d29ya1Nlc3Np
b24+KCkpOwotICAgIC8vIEZJWE1FOiBDcmVhdGluZyBhIHRlc3Rpbmcgc2Vzc2lvbiBpcyBsb3Np
bmcgc291cCBzZXNzaW9uIHZhbHVlcyBzZXQgd2hlbiBpbml0aWFsaXppbmcgdGhlIG5ldHdvcmsg
cHJvY2Vzcy4KLSAgICBnX29iamVjdF9zZXQoZGVmYXVsdFNlc3Npb24oKS0+c291cE5ldHdvcmtT
ZXNzaW9uKCkuc291cFNlc3Npb24oKSwgImFjY2VwdC1sYW5ndWFnZSIsICJlbi11cyIsIG51bGxw
dHIpOwogfQogCiBTb3VwTmV0d29ya1Nlc3Npb24mIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c291
cE5ldHdvcmtTZXNzaW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggMTVhODg2
N2JlMmMuLmU2YWZjNTAzY2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmNwcApAQCAtNDEsMTEgKzQx
LDExIEBACiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQmFzZTY0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMg
Ym9vbCBnSWdub3JlVExTRXJyb3JzOworc3RhdGljIENTdHJpbmcgZ0FjY2VwdExhbmd1YWdlczsK
IAogI2lmICFMT0dfRElTQUJMRUQKIGlubGluZSBzdGF0aWMgdm9pZCBzb3VwTG9nUHJpbnRlcihT
b3VwTG9nZ2VyKiwgU291cExvZ2dlckxvZ0xldmVsLCBjaGFyIGRpcmVjdGlvbiwgY29uc3QgY2hh
ciogZGF0YSwgZ3BvaW50ZXIpCkBAIC0xMzgsNiArMTM4LDkgQEAgU291cE5ldHdvcmtTZXNzaW9u
OjpTb3VwTmV0d29ya1Nlc3Npb24oU291cENvb2tpZUphciogY29va2llSmFyKQogICAgICAgICBT
T1VQX1NFU1NJT05fU1NMX1NUUklDVCwgRkFMU0UsCiAgICAgICAgIG51bGxwdHIpOwogCisgICAg
aWYgKCFnQWNjZXB0TGFuZ3VhZ2VzLmlzTnVsbCgpKQorICAgICAgICBnX29iamVjdF9zZXQobV9z
b3VwU2Vzc2lvbi5nZXQoKSwgImFjY2VwdC1sYW5ndWFnZSIsIGdBY2NlcHRMYW5ndWFnZXMuZGF0
YSgpLCBudWxscHRyKTsKKwogI2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigyLCA1MywgOTIpCiAgICAg
aWYgKHNvdXBfYXV0aF9uZWdvdGlhdGVfc3VwcG9ydGVkKCkpIHsKICAgICAgICAgZ19vYmplY3Rf
c2V0KG1fc291cFNlc3Npb24uZ2V0KCksCkBAIC0yNDcsNTMgKzI1MCw5IEBAIHZvaWQgU291cE5l
dHdvcmtTZXNzaW9uOjpzZXR1cEhUVFBQcm94eUZyb21FbnZpcm9ubWVudCgpCiAjZW5kaWYKIH0K
IAotc3RhdGljIENTdHJpbmcgYnVpbGRBY2NlcHRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGxhbmd1YWdlcykKLXsKLSAgICBzaXplX3QgbGFuZ3VhZ2VzQ291bnQgPSBsYW5ndWFnZXMu
c2l6ZSgpOwotCi0gICAgLy8gSWdub3JlICJDIiBsb2NhbGUuCi0gICAgc2l6ZV90IGNMb2NhbGVQ
b3NpdGlvbiA9IGxhbmd1YWdlcy5maW5kKCJjIik7Ci0gICAgaWYgKGNMb2NhbGVQb3NpdGlvbiAh
PSBub3RGb3VuZCkKLSAgICAgICAgbGFuZ3VhZ2VzQ291bnQtLTsKLQotICAgIC8vIEZhbGxiYWNr
IHRvICJlbiIgaWYgdGhlIGxpc3QgaXMgZW1wdHkuCi0gICAgaWYgKCFsYW5ndWFnZXNDb3VudCkK
LSAgICAgICAgcmV0dXJuICJlbiI7Ci0KLSAgICAvLyBDYWxjdWxhdGUgZGVsdGFzIGZvciB0aGUg
cXVhbGl0eSB2YWx1ZXMuCi0gICAgaW50IGRlbHRhOwotICAgIGlmIChsYW5ndWFnZXNDb3VudCA8
IDEwKQotICAgICAgICBkZWx0YSA9IDEwOwotICAgIGVsc2UgaWYgKGxhbmd1YWdlc0NvdW50IDwg
MjApCi0gICAgICAgIGRlbHRhID0gNTsKLSAgICBlbHNlCi0gICAgICAgIGRlbHRhID0gMTsKLQot
ICAgIC8vIFNldCBxdWFsaXR5IHZhbHVlcyBmb3IgZWFjaCBsYW5ndWFnZS4KLSAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYW5ndWFnZXMuc2l6
ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKGkgPT0gY0xvY2FsZVBvc2l0aW9uKQotICAgICAgICAg
ICAgY29udGludWU7Ci0KLSAgICAgICAgaWYgKGkpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIiwgIik7Ci0KLSAgICAgICAgYnVpbGRlci5hcHBlbmQobGFuZ3VhZ2VzW2ldKTsK
LQotICAgICAgICBpbnQgcXVhbGl0eSA9IDEwMCAtIGkgKiBkZWx0YTsKLSAgICAgICAgaWYgKHF1
YWxpdHkgPiAwICYmIHF1YWxpdHkgPCAxMDApIHsKLSAgICAgICAgICAgIGNoYXIgYnVmZmVyWzhd
OwotICAgICAgICAgICAgZ19hc2NpaV9mb3JtYXRkKGJ1ZmZlciwgOCwgIiUuMmYiLCBxdWFsaXR5
IC8gMTAwLjApOwotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIjtx
PSVzIiwgYnVmZmVyKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpLnV0ZjgoKTsKLX0KLQotdm9pZCBTb3VwTmV0d29ya1Nlc3Npb246OnNldEFjY2Vw
dExhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VzKQordm9pZCBTb3VwTmV0
d29ya1Nlc3Npb246OnNldEFjY2VwdExhbmd1YWdlcyhjb25zdCBDU3RyaW5nJiBsYW5ndWFnZXMp
CiB7Ci0gICAgZ19vYmplY3Rfc2V0KG1fc291cFNlc3Npb24uZ2V0KCksICJhY2NlcHQtbGFuZ3Vh
Z2UiLCBidWlsZEFjY2VwdExhbmd1YWdlcyhsYW5ndWFnZXMpLmRhdGEoKSwgbnVsbHB0cik7Cisg
ICAgZ0FjY2VwdExhbmd1YWdlcyA9IGxhbmd1YWdlczsKIH0KIAogdm9pZCBTb3VwTmV0d29ya1Nl
c3Npb246OnNldFNob3VsZElnbm9yZVRMU0Vycm9ycyhib29sIGlnbm9yZVRMU0Vycm9ycykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29y
a1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0
d29ya1Nlc3Npb24uaAppbmRleCA1MDk0Yzg2YmY2NC4uMGRlM2MzZTU1ZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cE5ldHdvcmtT
ZXNzaW9uLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXR1cEhUVFBQ
cm94eUZyb21FbnZpcm9ubWVudCgpOwogCi0gICAgdm9pZCBzZXRBY2NlcHRMYW5ndWFnZXMoY29u
c3QgVmVjdG9yPFN0cmluZz4mKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRBY2NlcHRMYW5ndWFnZXMo
Y29uc3QgQ1N0cmluZyYpOwogCiAgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkSWdub3JlVExTRXJy
b3JzKGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIGNoZWNrVExTRXJyb3JzKFNvdXBSZXF1ZXN0Kiwg
U291cE1lc3NhZ2UqLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IFJlc291cmNlRXJyb3ImKT4m
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggZmUyZDk0YTg0MzguLjY1YTQ3NDdmMzJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMTcgQEAKIDIwMTctMDEtMTIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCisgICAgICAgIFtTT1VQXSBGaXggaGFuZGxpbmcgb2YgYWNjZXB0IGxh
bmd1YWdlIHByb3BlcnR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjY5NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6YnVpbGRBY2NlcHRMYW5ndWFnZXMpOiBNb3ZlZCBmcm9tIFdlYkNvcmUu
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
Q2hhbmdlZCk6IEJ1aWxkIHRoZSBhY2NlcHQgbGFuZ3VhZ2Ugc3RyaW5nIGZyb20gdGhlIHZlY3Rv
ciBhbmQKKyAgICAgICAgcGFzcyBzZXQgaXQgdG8gU291cE5ldHdvcmtTZXNzaW9uIHRvIGJlIHVz
ZWQgZm9yIG5ldyBzZXNzaW9ucywgYW5kIGFsc28gdG8gYWxsIG90aGVyIGV4aXN0aW5nIHNlc3Np
b25zLgorCisyMDE3LTAxLTEyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKwogICAgICAgICBbU09VUF0gU2ltcGxpZnkgY29va2llIHN0b3JhZ2UgaGFuZGxpbmcK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Njk2Nwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQ
cm9jZXNzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdv
cmtQcm9jZXNzU291cC5jcHAKaW5kZXggZjZjYTg2NDEzM2QuLmEyNWI3ZDBhOTlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291
cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJv
Y2Vzc1NvdXAuY3BwCkBAIC00MSwxNCArNDEsNjUgQEAKICNpbmNsdWRlIDx3dGYvUkFNU2l6ZS5o
PgogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5p
cXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCitzdGF0aWMgQ1N0cmluZyBidWlsZEFjY2VwdExhbmd1YWdlcyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VzKQoreworICAgIHNpemVfdCBsYW5ndWFnZXNDb3Vu
dCA9IGxhbmd1YWdlcy5zaXplKCk7CisKKyAgICAvLyBJZ25vcmUgIkMiIGxvY2FsZS4KKyAgICBz
aXplX3QgY0xvY2FsZVBvc2l0aW9uID0gbGFuZ3VhZ2VzLmZpbmQoImMiKTsKKyAgICBpZiAoY0xv
Y2FsZVBvc2l0aW9uICE9IG5vdEZvdW5kKQorICAgICAgICBsYW5ndWFnZXNDb3VudC0tOworCisg
ICAgLy8gRmFsbGJhY2sgdG8gImVuIiBpZiB0aGUgbGlzdCBpcyBlbXB0eS4KKyAgICBpZiAoIWxh
bmd1YWdlc0NvdW50KQorICAgICAgICByZXR1cm4gImVuIjsKKworICAgIC8vIENhbGN1bGF0ZSBk
ZWx0YXMgZm9yIHRoZSBxdWFsaXR5IHZhbHVlcy4KKyAgICBpbnQgZGVsdGE7CisgICAgaWYgKGxh
bmd1YWdlc0NvdW50IDwgMTApCisgICAgICAgIGRlbHRhID0gMTA7CisgICAgZWxzZSBpZiAobGFu
Z3VhZ2VzQ291bnQgPCAyMCkKKyAgICAgICAgZGVsdGEgPSA1OworICAgIGVsc2UKKyAgICAgICAg
ZGVsdGEgPSAxOworCisgICAgLy8gU2V0IHF1YWxpdHkgdmFsdWVzIGZvciBlYWNoIGxhbmd1YWdl
LgorICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGxhbmd1YWdlcy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoaSA9PSBjTG9jYWxlUG9zaXRp
b24pCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoaSkKKyAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKKworICAgICAgICBidWlsZGVyLmFwcGVuZChs
YW5ndWFnZXNbaV0pOworCisgICAgICAgIGludCBxdWFsaXR5ID0gMTAwIC0gaSAqIGRlbHRhOwor
ICAgICAgICBpZiAocXVhbGl0eSA+IDAgJiYgcXVhbGl0eSA8IDEwMCkgeworICAgICAgICAgICAg
Y2hhciBidWZmZXJbOF07CisgICAgICAgICAgICBnX2FzY2lpX2Zvcm1hdGQoYnVmZmVyLCA4LCAi
JS4yZiIsIHF1YWxpdHkgLyAxMDAuMCk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmc6OmZvcm1hdCgiO3E9JXMiLCBidWZmZXIpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNz
Ojp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFu
Z3VhZ2VzKQogewotICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNz
aW9uKCkuc291cE5ldHdvcmtTZXNzaW9uKCkuc2V0QWNjZXB0TGFuZ3VhZ2VzKGxhbmd1YWdlcyk7
CisgICAgYXV0byBhY2NlcHRMYW5ndWFnZXMgPSBidWlsZEFjY2VwdExhbmd1YWdlcyhsYW5ndWFn
ZXMpOworICAgIFNvdXBOZXR3b3JrU2Vzc2lvbjo6c2V0QWNjZXB0TGFuZ3VhZ2VzKGFjY2VwdExh
bmd1YWdlcyk7CisgICAgZ19vYmplY3Rfc2V0KE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVs
dFN0b3JhZ2VTZXNzaW9uKCkuc291cE5ldHdvcmtTZXNzaW9uKCkuc291cFNlc3Npb24oKSwgImFj
Y2VwdC1sYW5ndWFnZSIsIGFjY2VwdExhbmd1YWdlcy5kYXRhKCksIG51bGxwdHIpOworICAgIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Zm9yRWFjaChbYWNjZXB0TGFuZ3VhZ2VzXShjb25zdCBXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24pIHsKKyAgICAgICAgZ19vYmplY3Rf
c2V0KHNlc3Npb24uc291cE5ldHdvcmtTZXNzaW9uKCkuc291cFNlc3Npb24oKSwgImFjY2VwdC1s
YW5ndWFnZSIsIGFjY2VwdExhbmd1YWdlcy5kYXRhKCksIG51bGxwdHIpOworICAgIH0pOwogfQog
CiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhj
b25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298752</attachid>
            <date>2017-01-13 00:44:11 -0800</date>
            <delta_ts>2017-01-13 10:18:23 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>wcore-accept-languages.diff</filename>
            <type>text/plain</type>
            <size>9276</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkYWZhMWM1MzViYy4uZjllZjgwZDhkNTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyNCBAQAogMjAxNy0wMS0xMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKKyAgICAgICAgW1NPVVBdIEZpeCBoYW5kbGluZyBvZiBhY2NlcHQgbGFuZ3Vh
Z2UgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2Njk2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBTb3VwTmV0d29ya1Nlc3Npb246OnNldEluaXRpYWxBY2NlcHRMYW5ndWFnZXMoKSBz
dGF0aWMgbWV0aG9kIGFuZCB1cGRhdGUgc2V0QWNjZXB0TGFuZ3VhZ2VzIHRvIHJlY2VpdmUgdGhl
CisgICAgICAgIHN0cmluZyBhbHJlYWR5IGJ1aWx0IGZyb20gdGhlIGxhbmd1YWdlcyB2ZWN0b3Iu
IE5vdyB0aGUgU291cE5ldHdvcmtTZXNzaW9uIHNhdmVzIHRoYXQgdmFsdWUgZ2xvYmFsbHkgdGhh
dAorICAgICAgICBpcyBhbHdheXMgdXNlZCB3aGVuIGNyZWF0aW5nIG5ldyBzZXNzaW9ucy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3Vw
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3dpdGNoVG9O
ZXdUZXN0aW5nU2Vzc2lvbik6IFJlbW92ZSB3b3JrYXJvdW5kLgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U291cE5ldHdvcmtTZXNzaW9uOjpTb3VwTmV0d29ya1Nlc3Npb24pOiBJZiBpbml0aWFsIGFjY2Vw
dCBsYW5ndWFnZXMgd2VyZSBzZXQsIGFwcGx5IHRoZW0gdG8gdGhlIG5ld2x5IGNyZWF0ZWQgY29u
dGV4dC4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXBOZXR3b3JrU2Vzc2lvbjo6c2V0SW5pdGlhbEFj
Y2VwdExhbmd1YWdlcyk6IEp1c3Qgc2F2ZSB0aGUgZ2l2ZW4gdmFsdWUgZ2xvYmFsbHkuCisgICAg
ICAgIChXZWJDb3JlOjpTb3VwTmV0d29ya1Nlc3Npb246OnNldEFjY2VwdExhbmd1YWdlcyk6IEl0
IHJlY2VpdmVzIG5vdyB0aGUgc3RyaW5nLCBzbyBqdXN0IHNldCBpdCB0byB0aGUgc2Vzc2lvbi4K
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmg6CisK
KzIwMTctMDEtMTMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgor
CiAgICAgICAgIFtTT1VQXSBTaW1wbGlmeSBjb29raWUgc3RvcmFnZSBoYW5kbGluZwogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2OTY3CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9O
ZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRleCA3MGRjNDEzYzhhZC4uMThiMDVjZTg0
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3
b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTg0LDggKzg0LDYg
QEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oU2Vzc2lvbklEIHNlc3Npb25JRCwgY28KIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpz
d2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCkKIHsKICAgICBkZWZhdWx0U2Vzc2lvbigpID0gc3Rk
OjptYWtlX3VuaXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFNlc3Npb25JRDo6ZGVmYXVsdFNl
c3Npb25JRCgpLCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXBOZXR3b3JrU2Vzc2lvbj4oKSk7Ci0gICAg
Ly8gRklYTUU6IENyZWF0aW5nIGEgdGVzdGluZyBzZXNzaW9uIGlzIGxvc2luZyBzb3VwIHNlc3Np
b24gdmFsdWVzIHNldCB3aGVuIGluaXRpYWxpemluZyB0aGUgbmV0d29yayBwcm9jZXNzLgotICAg
IGdfb2JqZWN0X3NldChkZWZhdWx0U2Vzc2lvbigpLT5zb3VwTmV0d29ya1Nlc3Npb24oKS5zb3Vw
U2Vzc2lvbigpLCAiYWNjZXB0LWxhbmd1YWdlIiwgImVuLXVzIiwgbnVsbHB0cik7CiB9CiAKIFNv
dXBOZXR3b3JrU2Vzc2lvbiYgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzb3VwTmV0d29ya1Nlc3Np
b24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmNwcAppbmRleCAxNWE4ODY3YmUyYy4uNTg0OTY3
Njc1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9T
b3VwTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24uY3BwCkBAIC00MSwxMSArNDEsMTEgQEAKICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9CYXNlNjQuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBib29sIGdJZ25vcmVU
TFNFcnJvcnM7CitzdGF0aWMgQ1N0cmluZyBnSW5pdGlhbEFjY2VwdExhbmd1YWdlczsKIAogI2lm
ICFMT0dfRElTQUJMRUQKIGlubGluZSBzdGF0aWMgdm9pZCBzb3VwTG9nUHJpbnRlcihTb3VwTG9n
Z2VyKiwgU291cExvZ2dlckxvZ0xldmVsLCBjaGFyIGRpcmVjdGlvbiwgY29uc3QgY2hhciogZGF0
YSwgZ3BvaW50ZXIpCkBAIC0xMzgsNiArMTM4LDkgQEAgU291cE5ldHdvcmtTZXNzaW9uOjpTb3Vw
TmV0d29ya1Nlc3Npb24oU291cENvb2tpZUphciogY29va2llSmFyKQogICAgICAgICBTT1VQX1NF
U1NJT05fU1NMX1NUUklDVCwgRkFMU0UsCiAgICAgICAgIG51bGxwdHIpOwogCisgICAgaWYgKCFn
SW5pdGlhbEFjY2VwdExhbmd1YWdlcy5pc051bGwoKSkKKyAgICAgICAgc2V0QWNjZXB0TGFuZ3Vh
Z2VzKGdJbml0aWFsQWNjZXB0TGFuZ3VhZ2VzKTsKKwogI2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigy
LCA1MywgOTIpCiAgICAgaWYgKHNvdXBfYXV0aF9uZWdvdGlhdGVfc3VwcG9ydGVkKCkpIHsKICAg
ICAgICAgZ19vYmplY3Rfc2V0KG1fc291cFNlc3Npb24uZ2V0KCksCkBAIC0yNDcsNTMgKzI1MCwx
NSBAQCB2b2lkIFNvdXBOZXR3b3JrU2Vzc2lvbjo6c2V0dXBIVFRQUHJveHlGcm9tRW52aXJvbm1l
bnQoKQogI2VuZGlmCiB9CiAKLXN0YXRpYyBDU3RyaW5nIGJ1aWxkQWNjZXB0TGFuZ3VhZ2VzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZXMpCi17Ci0gICAgc2l6ZV90IGxhbmd1YWdlc0Nv
dW50ID0gbGFuZ3VhZ2VzLnNpemUoKTsKLQotICAgIC8vIElnbm9yZSAiQyIgbG9jYWxlLgotICAg
IHNpemVfdCBjTG9jYWxlUG9zaXRpb24gPSBsYW5ndWFnZXMuZmluZCgiYyIpOwotICAgIGlmIChj
TG9jYWxlUG9zaXRpb24gIT0gbm90Rm91bmQpCi0gICAgICAgIGxhbmd1YWdlc0NvdW50LS07Ci0K
LSAgICAvLyBGYWxsYmFjayB0byAiZW4iIGlmIHRoZSBsaXN0IGlzIGVtcHR5LgotICAgIGlmICgh
bGFuZ3VhZ2VzQ291bnQpCi0gICAgICAgIHJldHVybiAiZW4iOwotCi0gICAgLy8gQ2FsY3VsYXRl
IGRlbHRhcyBmb3IgdGhlIHF1YWxpdHkgdmFsdWVzLgotICAgIGludCBkZWx0YTsKLSAgICBpZiAo
bGFuZ3VhZ2VzQ291bnQgPCAxMCkKLSAgICAgICAgZGVsdGEgPSAxMDsKLSAgICBlbHNlIGlmIChs
YW5ndWFnZXNDb3VudCA8IDIwKQotICAgICAgICBkZWx0YSA9IDU7Ci0gICAgZWxzZQotICAgICAg
ICBkZWx0YSA9IDE7Ci0KLSAgICAvLyBTZXQgcXVhbGl0eSB2YWx1ZXMgZm9yIGVhY2ggbGFuZ3Vh
Z2UuCi0gICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbGFuZ3VhZ2VzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmIChpID09IGNMb2NhbGVQb3Np
dGlvbikKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmIChpKQotICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOwogCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGxhbmd1YWdlc1tpXSk7Ci0KLSAgICAgICAgaW50IHF1YWxpdHkgPSAxMDAgLSBpICogZGVsdGE7
Ci0gICAgICAgIGlmIChxdWFsaXR5ID4gMCAmJiBxdWFsaXR5IDwgMTAwKSB7Ci0gICAgICAgICAg
ICBjaGFyIGJ1ZmZlcls4XTsKLSAgICAgICAgICAgIGdfYXNjaWlfZm9ybWF0ZChidWZmZXIsIDgs
ICIlLjJmIiwgcXVhbGl0eSAvIDEwMC4wKTsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZzo6Zm9ybWF0KCI7cT0lcyIsIGJ1ZmZlcikpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7Cit2b2lkIFNvdXBOZXR3b3JrU2Vzc2lv
bjo6c2V0SW5pdGlhbEFjY2VwdExhbmd1YWdlcyhjb25zdCBDU3RyaW5nJiBsYW5ndWFnZXMpCit7
CisgICAgZ0luaXRpYWxBY2NlcHRMYW5ndWFnZXMgPSBsYW5ndWFnZXM7CiB9CiAKLXZvaWQgU291
cE5ldHdvcmtTZXNzaW9uOjpzZXRBY2NlcHRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
IGxhbmd1YWdlcykKK3ZvaWQgU291cE5ldHdvcmtTZXNzaW9uOjpzZXRBY2NlcHRMYW5ndWFnZXMo
Y29uc3QgQ1N0cmluZyYgbGFuZ3VhZ2VzKQogewotICAgIGdfb2JqZWN0X3NldChtX3NvdXBTZXNz
aW9uLmdldCgpLCAiYWNjZXB0LWxhbmd1YWdlIiwgYnVpbGRBY2NlcHRMYW5ndWFnZXMobGFuZ3Vh
Z2VzKS5kYXRhKCksIG51bGxwdHIpOworICAgIGdfb2JqZWN0X3NldChtX3NvdXBTZXNzaW9uLmdl
dCgpLCAiYWNjZXB0LWxhbmd1YWdlIiwgbGFuZ3VhZ2VzLmRhdGEoKSwgbnVsbHB0cik7CiB9CiAK
IHZvaWQgU291cE5ldHdvcmtTZXNzaW9uOjpzZXRTaG91bGRJZ25vcmVUTFNFcnJvcnMoYm9vbCBp
Z25vcmVUTFNFcnJvcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmgKaW5kZXggNTA5NGM4NmJmNjQuLjYxYzk0
YjZkZDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
U291cE5ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5oCkBAIC01OCw3ICs1OCw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc2V0dXBIVFRQUHJveHlGcm9tRW52aXJvbm1lbnQoKTsKIAotICAgIHZvaWQgc2V0
QWNjZXB0TGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisgICAgc3RhdGljIHZvaWQg
c2V0SW5pdGlhbEFjY2VwdExhbmd1YWdlcyhjb25zdCBDU3RyaW5nJik7CisgICAgdm9pZCBzZXRB
Y2NlcHRMYW5ndWFnZXMoY29uc3QgQ1N0cmluZyYpOwogCiAgICAgc3RhdGljIHZvaWQgc2V0U2hv
dWxkSWdub3JlVExTRXJyb3JzKGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIGNoZWNrVExTRXJyb3Jz
KFNvdXBSZXF1ZXN0KiwgU291cE1lc3NhZ2UqLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IFJl
c291cmNlRXJyb3ImKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2VlMjhjN2E4NGIuLmQ2MzM5YTI4MGUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTctMDEtMTMgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCisgICAgICAgIFtTT1VQXSBGaXggaGFuZGxp
bmcgb2YgYWNjZXB0IGxhbmd1YWdlIHByb3BlcnR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY5NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nl
c3NTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6YnVpbGRBY2NlcHRMYW5ndWFnZXMpOiBNb3Zl
ZCBmcm9tIFdlYkNvcmUuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjp1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZCk6IEJ1aWxkIHRoZSBhY2NlcHQgbGFuZ3VhZ2Ugc3RyaW5n
IGZyb20gdGhlIHZlY3RvciBhbmQKKyAgICAgICAgcGFzcyBzZXQgaXQgdG8gU291cE5ldHdvcmtT
ZXNzaW9uIHRvIGJlIHVzZWQgZm9yIG5ldyBzZXNzaW9ucywgYW5kIGFsc28gdG8gYWxsIG90aGVy
IGV4aXN0aW5nIHNlc3Npb25zLgorCisyMDE3LTAxLTEzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBbU09VUF0gU2ltcGxpZnkgY29va2llIHN0
b3JhZ2UgaGFuZGxpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2Njk2NwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAKaW5kZXggZjZjYTg2NDEzM2QuLmM3ZWFl
MjIwNmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtQcm9jZXNzU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
c291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCkBAIC00MSwxNCArNDEsNjUgQEAKICNpbmNsdWRl
IDx3dGYvUkFNU2l6ZS5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitzdGF0aWMgQ1N0cmluZyBidWlsZEFjY2Vw
dExhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VzKQoreworICAgIHNpemVf
dCBsYW5ndWFnZXNDb3VudCA9IGxhbmd1YWdlcy5zaXplKCk7CisKKyAgICAvLyBJZ25vcmUgIkMi
IGxvY2FsZS4KKyAgICBzaXplX3QgY0xvY2FsZVBvc2l0aW9uID0gbGFuZ3VhZ2VzLmZpbmQoImMi
KTsKKyAgICBpZiAoY0xvY2FsZVBvc2l0aW9uICE9IG5vdEZvdW5kKQorICAgICAgICBsYW5ndWFn
ZXNDb3VudC0tOworCisgICAgLy8gRmFsbGJhY2sgdG8gImVuIiBpZiB0aGUgbGlzdCBpcyBlbXB0
eS4KKyAgICBpZiAoIWxhbmd1YWdlc0NvdW50KQorICAgICAgICByZXR1cm4gImVuIjsKKworICAg
IC8vIENhbGN1bGF0ZSBkZWx0YXMgZm9yIHRoZSBxdWFsaXR5IHZhbHVlcy4KKyAgICBpbnQgZGVs
dGE7CisgICAgaWYgKGxhbmd1YWdlc0NvdW50IDwgMTApCisgICAgICAgIGRlbHRhID0gMTA7Cisg
ICAgZWxzZSBpZiAobGFuZ3VhZ2VzQ291bnQgPCAyMCkKKyAgICAgICAgZGVsdGEgPSA1OworICAg
IGVsc2UKKyAgICAgICAgZGVsdGEgPSAxOworCisgICAgLy8gU2V0IHF1YWxpdHkgdmFsdWVzIGZv
ciBlYWNoIGxhbmd1YWdlLgorICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGxhbmd1YWdlcy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoaSA9
PSBjTG9jYWxlUG9zaXRpb24pCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAo
aSkKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKKworICAgICAgICBi
dWlsZGVyLmFwcGVuZChsYW5ndWFnZXNbaV0pOworCisgICAgICAgIGludCBxdWFsaXR5ID0gMTAw
IC0gaSAqIGRlbHRhOworICAgICAgICBpZiAocXVhbGl0eSA+IDAgJiYgcXVhbGl0eSA8IDEwMCkg
eworICAgICAgICAgICAgY2hhciBidWZmZXJbOF07CisgICAgICAgICAgICBnX2FzY2lpX2Zvcm1h
dGQoYnVmZmVyLCA4LCAiJS4yZiIsIHF1YWxpdHkgLyAxMDAuMCk7CisgICAgICAgICAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgiO3E9JXMiLCBidWZmZXIpKTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpOworfQorCiB2b2lk
IE5ldHdvcmtQcm9jZXNzOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZChjb25zdCBWZWN0
b3I8U3RyaW5nPiYgbGFuZ3VhZ2VzKQogewotICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVm
YXVsdFN0b3JhZ2VTZXNzaW9uKCkuc291cE5ldHdvcmtTZXNzaW9uKCkuc2V0QWNjZXB0TGFuZ3Vh
Z2VzKGxhbmd1YWdlcyk7CisgICAgYXV0byBhY2NlcHRMYW5ndWFnZXMgPSBidWlsZEFjY2VwdExh
bmd1YWdlcyhsYW5ndWFnZXMpOworICAgIFNvdXBOZXR3b3JrU2Vzc2lvbjo6c2V0SW5pdGlhbEFj
Y2VwdExhbmd1YWdlcyhhY2NlcHRMYW5ndWFnZXMpOworICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkuc291cE5ldHdvcmtTZXNzaW9uKCkuc2V0QWNjZXB0
TGFuZ3VhZ2VzKGFjY2VwdExhbmd1YWdlcyk7CisgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpm
b3JFYWNoKFthY2NlcHRMYW5ndWFnZXNdKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYgc2Vzc2lvbikgeworICAgICAgICBzZXNzaW9uLnNvdXBOZXR3b3JrU2Vzc2lvbigpLnNl
dEFjY2VwdExhbmd1YWdlcyhhY2NlcHRMYW5ndWFnZXMpOworICAgIH0pOwogfQogCiB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykK
</data>
<flag name="review"
          id="320858"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>