<?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>234817</bug_id>
          
          <creation_ts>2022-01-03 06:45:17 -0800</creation_ts>
          <short_desc>[JSC] Fix Intl.PluralRules.selectRange input validation</short_desc>
          <delta_ts>2022-01-03 09:48:19 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1827707</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-03 06:45:17 -0800</bug_when>
    <thetext>[JSC] Fix Intl.PluralRules.selectRange input validation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827708</commentid>
    <comment_count>1</comment_count>
      <attachid>448230</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-03 06:45:56 -0800</bug_when>
    <thetext>Created attachment 448230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827745</commentid>
    <comment_count>2</comment_count>
      <attachid>448230</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-01-03 08:26:30 -0800</bug_when>
    <thetext>Comment on attachment 448230
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        Add specified argument validation to Intl.PluralRules.selectRange.

Should we include a spec link (https://tc39.es/proposal-intl-numberformat-v3/out/pluralrules/proposed.html#sec-intl.pluralrules.prototype.selectrange)? It&apos;s a bit non-trivial to find.

&gt; Source/JavaScriptCore/runtime/IntlPluralRules.cpp:288
&gt; +    if (isNegativeZero(end) &amp;&amp; start &gt;= 0)

Hmm, this is interesting: spec&apos;s numeric operators (&lt; / &lt;= / &gt; / &gt;=) for Number should &quot;refer to the relevant operations within IEEE 754-2019&quot; (paragraph 3 of https://tc39.es/ecma262/multipage/notational-conventions.html#sec-mathematical-operations).
Does the IEEE 754 differentiate between -0 and 0 in comparison operators? Comparing `-0.0 &lt; 0.0` C++ doubles yields `false`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827769</commentid>
    <comment_count>3</comment_count>
      <attachid>448230</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-03 09:11:38 -0800</bug_when>
    <thetext>Comment on attachment 448230
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:8
&gt;&gt; +        Add specified argument validation to Intl.PluralRules.selectRange.
&gt; 
&gt; Should we include a spec link (https://tc39.es/proposal-intl-numberformat-v3/out/pluralrules/proposed.html#sec-intl.pluralrules.prototype.selectrange)? It&apos;s a bit non-trivial to find.

Nice, added.

&gt;&gt; Source/JavaScriptCore/runtime/IntlPluralRules.cpp:288
&gt;&gt; +    if (isNegativeZero(end) &amp;&amp; start &gt;= 0)
&gt; 
&gt; Hmm, this is interesting: spec&apos;s numeric operators (&lt; / &lt;= / &gt; / &gt;=) for Number should &quot;refer to the relevant operations within IEEE 754-2019&quot; (paragraph 3 of https://tc39.es/ecma262/multipage/notational-conventions.html#sec-mathematical-operations).
&gt; Does the IEEE 754 differentiate between -0 and 0 in comparison operators? Comparing `-0.0 &lt; 0.0` C++ doubles yields `false`.

This is aligned to Intl.NumberFormat.formatRange implementation, and IIRC, there is a test for this in test262.
And ICU can distinguish -0 and +0, so I think we should check that here for the sane semantics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827772</commentid>
    <comment_count>4</comment_count>
      <attachid>448247</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-03 09:17:44 -0800</bug_when>
    <thetext>Created attachment 448247
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827776</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-03 09:47:24 -0800</bug_when>
    <thetext>Committed r287546 (245681@main): &lt;https://commits.webkit.org/245681@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448247.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827777</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-03 09:48:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/87068803&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448230</attachid>
            <date>2022-01-03 06:45:56 -0800</date>
            <delta_ts>2022-01-03 08:26:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234817-20220103064555.patch</filename>
            <type>text/plain</type>
            <size>5869</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NTRjYWUyY2E1OWMwNjJlMzJhNTRlMDE2NTczYmU4Y2JjMzg0NzQ4Li4yZWE2YzY4NjI1NGE2N2Zl
YWM4ZjkyNDc1YzlkMWIxMjA3MjdjODExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMi0wMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEZpeCBJbnRsLlBsdXJhbFJ1bGVzLnNlbGVjdFJhbmdlIGlucHV0
IHZhbGlkYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNDgxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBzcGVjaWZpZWQgYXJndW1lbnQgdmFsaWRhdGlvbiB0byBJbnRsLlBsdXJhbFJ1bGVz
LnNlbGVjdFJhbmdlLgorCisgICAgICAgICogcnVudGltZS9JbnRsUGx1cmFsUnVsZXMuY3BwOgor
ICAgICAgICAoSlNDOjpJbnRsUGx1cmFsUnVsZXM6OnNlbGVjdFJhbmdlIGNvbnN0KToKKyAgICAg
ICAgKiBydW50aW1lL0ludGxQbHVyYWxSdWxlc1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisKIDIwMjItMDEtMDIgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBVc2UgZW1pdFB1dFByb3BlcnR5
IC8gZW1pdEdldFByb3BlcnR5VmFsdWUgY29uc2lzdGVudGx5IHRvIGhhbmRsZSBwcml2YXRlIG5h
bWVzIGluIGVkZ2UgY2FzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxQbHVyYWxSdWxlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsUGx1cmFsUnVsZXMuY3BwCmluZGV4IDkwZGI1Njc5OGMwYzYwYmE3OTFkNWYzNWE1ZTE0OGJl
YTQwOGM1ZDQuLmE4NTEzMTFjNzQ0YjVlYWIxNjVhYzdmNGQ1NjcxMDA2ZDg2Njc4M2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVzLmNwcApA
QCAtMjc5LDEwICsyNzksMTQgQEAgSlNWYWx1ZSBJbnRsUGx1cmFsUnVsZXM6OnNlbGVjdFJhbmdl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdWJsZSBzdGFydCwKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCi0gICAgaWYgKHN0YXJ0ID4gZW5kKSB7Ci0gICAgICAgIHRocm93UmFuZ2VFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAic3RhcnQgaXMgbGFyZ2VyIHRoYW4gZW5kIl9zKTsKLSAg
ICAgICAgcmV0dXJuIHsgfTsKLSAgICB9CisgICAgaWYgKHN0ZDo6aXNuYW4oc3RhcnQpIHx8IHN0
ZDo6aXNuYW4oZW5kKSkKKyAgICAgICAgcmV0dXJuIHRocm93UmFuZ2VFcnJvcihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCAiUGFzc2VkIG51bWJlcnMgYXJlIG91dCBvZiByYW5nZSJfcyk7CisKKyAgICBp
ZiAoZW5kIDwgc3RhcnQpCisgICAgICAgIHJldHVybiB0aHJvd1JhbmdlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgInN0YXJ0IGlzIGxhcmdlciB0aGFuIGVuZCJfcyk7CisKKyAgICBpZiAoaXNO
ZWdhdGl2ZVplcm8oZW5kKSAmJiBzdGFydCA+PSAwKQorICAgICAgICByZXR1cm4gdGhyb3dSYW5n
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJzdGFydCBpcyBsYXJnZXIgdGhhbiBlbmQiX3Mp
OwogCiAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CiAgICAgYXV0byByYW5n
ZSA9IHN0ZDo6dW5pcXVlX3B0cjxVRm9ybWF0dGVkTnVtYmVyUmFuZ2UsIElDVURlbGV0ZXI8dW51
bXJmX2Nsb3NlUmVzdWx0Pj4odW51bXJmX29wZW5SZXN1bHQoJnN0YXR1cykpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlc1Byb3Rv
dHlwZS5jcHAKaW5kZXggNDM4YmQ1MTdjYjc4OTAxNTQxZjNiMDdmMjU2OGNlNmM3YmVjMzlkYi4u
Y2UxMDNkM2Y2MTIxMDllYTNkYTQ0MjY3NjY1ZGQ1NDgwNDkxYWQ2ZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVsZXNQcm90b3R5
cGUuY3BwCkBAIC0xMTAsMTAgKzExMCwxNiBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oaW50
bFBsdXJhbFJ1bGVzUHJvdG90eXBlRnVuY1NlbGVjdFJhbmdlLCAoSlNHbG9iYWxPYmplYwogICAg
IGlmICghcGx1cmFsUnVsZXMpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dU
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkludGwuUGx1cmFsUnVsZXMucHJvdG90eXBl
LnNlbGVjdFJhbmdlIGNhbGxlZCBvbiB2YWx1ZSB0aGF0J3Mgbm90IGEgUGx1cmFsUnVsZXMiX3Mp
KTsKIAotICAgIGRvdWJsZSBzdGFydCA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIo
Z2xvYmFsT2JqZWN0KTsKKyAgICBKU1ZhbHVlIHN0YXJ0VmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApOworICAgIEpTVmFsdWUgZW5kVmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOwor
CisgICAgaWYgKHN0YXJ0VmFsdWUuaXNVbmRlZmluZWQoKSB8fCBlbmRWYWx1ZS5pc1VuZGVmaW5l
ZCgpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCAic3RhcnQgb3IgZW5kIGlzIHVuZGVmaW5lZCJfcyk7CisKKyAgICBkb3VibGUgc3RhcnQgPSBz
dGFydFZhbHVlLnRvTnVtYmVyKGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKIAotICAgIGRvdWJsZSBlbmQgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEp
LnRvTnVtYmVyKGdsb2JhbE9iamVjdCk7CisgICAgZG91YmxlIGVuZCA9IGVuZFZhbHVlLnRvTnVt
YmVyKGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsK
IAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHBsdXJhbFJ1
bGVzLT5zZWxlY3RSYW5nZShnbG9iYWxPYmplY3QsIHN0YXJ0LCBlbmQpKSk7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQwNWFkOTU3MWMx
Nzg3ZTJhMTY3MWQ5OWY1ZDk0ZTlkZjUwOWU2ZmYuLjAwZTVjYTU2MjY4YjBhMGE0NDk3ZDlkMjZi
Y2FiNDJkN2QwMjJmODEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDEtMDMgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBGaXggSW50bC5QbHVyYWxSdWxl
cy5zZWxlY3RSYW5nZSBpbnB1dCB2YWxpZGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ4MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9pbnRsLXBsdXJhbHJ1bGVzLXNlbGVjdC1y
YW5nZS12YWxpZGF0ZS1pbnB1dHMuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkVGhyb3cpOgor
ICAgICAgICAoSW50bC5QbHVyYWxSdWxlcy5wcm90b3R5cGUuc2VsZWN0UmFuZ2Uuc2hvdWxkVGhy
b3cpOgorCiAyMDIyLTAxLTAyICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0pTQ10gVXNlIGVtaXRQdXRQcm9wZXJ0eSAvIGVtaXRHZXRQcm9wZXJ0eVZhbHVl
IGNvbnNpc3RlbnRseSB0byBoYW5kbGUgcHJpdmF0ZSBuYW1lcyBpbiBlZGdlIGNhc2VzCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLXBsdXJhbHJ1bGVzLXNlbGVjdC1yYW5nZS12YWxp
ZGF0ZS1pbnB1dHMuanMgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLXBsdXJhbHJ1bGVzLXNlbGVjdC1y
YW5nZS12YWxpZGF0ZS1pbnB1dHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTRkZDE3Y2FkOTFhNTNmZmIxY2E3
NDdjMzljZTczY2JhZWQzNzkyNwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2lu
dGwtcGx1cmFscnVsZXMtc2VsZWN0LXJhbmdlLXZhbGlkYXRlLWlucHV0cy5qcwpAQCAtMCwwICsx
LDQyIEBACitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvck1lc3NhZ2UpIHsKKyAgICB2
YXIgZXJyb3JUaHJvd24gPSBmYWxzZTsKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7
CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yVGhyb3du
ID0gdHJ1ZTsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICBpZiAoIWVycm9yVGhyb3du
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCB0aHJvd24nKTsKKyAgICBpZiAoU3RyaW5n
KGVycm9yKSAhPT0gZXJyb3JNZXNzYWdlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGJhZCBl
cnJvcjogJHtTdHJpbmcoZXJyb3IpfWApOworfQorCitpZiAoSW50bC5QbHVyYWxSdWxlcy5wcm90
b3R5cGUuc2VsZWN0UmFuZ2UpIHsKKyAgICBsZXQgcGwgPSBuZXcgSW50bC5QbHVyYWxSdWxlcygn
ZW4tVVMnKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiB7CisgICAgICAgIHBsLnNlbGVjdFJhbmdl
KCk7CisgICAgfSwgYFR5cGVFcnJvcjogc3RhcnQgb3IgZW5kIGlzIHVuZGVmaW5lZGApOworICAg
IHNob3VsZFRocm93KCgpID0+IHsKKyAgICAgICAgcGwuc2VsZWN0UmFuZ2UoMCwgdW5kZWZpbmVk
KTsKKyAgICB9LCBgVHlwZUVycm9yOiBzdGFydCBvciBlbmQgaXMgdW5kZWZpbmVkYCk7CisgICAg
c2hvdWxkVGhyb3coKCkgPT4geworICAgICAgICBwbC5zZWxlY3RSYW5nZSh1bmRlZmluZWQsIDAp
OworICAgIH0sIGBUeXBlRXJyb3I6IHN0YXJ0IG9yIGVuZCBpcyB1bmRlZmluZWRgKTsKKyAgICBz
aG91bGRUaHJvdygoKSA9PiB7CisgICAgICAgIHBsLnNlbGVjdFJhbmdlKHVuZGVmaW5lZCwgdW5k
ZWZpbmVkKTsKKyAgICB9LCBgVHlwZUVycm9yOiBzdGFydCBvciBlbmQgaXMgdW5kZWZpbmVkYCk7
CisgICAgc2hvdWxkVGhyb3coKCkgPT4geworICAgICAgICBwbC5zZWxlY3RSYW5nZShOYU4sIDAp
OworICAgIH0sIGBSYW5nZUVycm9yOiBQYXNzZWQgbnVtYmVycyBhcmUgb3V0IG9mIHJhbmdlYCk7
CisgICAgc2hvdWxkVGhyb3coKCkgPT4geworICAgICAgICBwbC5zZWxlY3RSYW5nZSgwLCBOYU4p
OworICAgIH0sIGBSYW5nZUVycm9yOiBQYXNzZWQgbnVtYmVycyBhcmUgb3V0IG9mIHJhbmdlYCk7
CisgICAgc2hvdWxkVGhyb3coKCkgPT4geworICAgICAgICBwbC5zZWxlY3RSYW5nZShOYU4sIE5h
Tik7CisgICAgfSwgYFJhbmdlRXJyb3I6IFBhc3NlZCBudW1iZXJzIGFyZSBvdXQgb2YgcmFuZ2Vg
KTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiB7CisgICAgICAgIHBsLnNlbGVjdFJhbmdlKDAsIC0w
KTsKKyAgICB9LCBgUmFuZ2VFcnJvcjogc3RhcnQgaXMgbGFyZ2VyIHRoYW4gZW5kYCk7Cit9Cg==
</data>
<flag name="review"
          id="474064"
          type_id="1"
          status="+"
          setter="ashvayka"
    />
    <flag name="commit-queue"
          id="474070"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448247</attachid>
            <date>2022-01-03 09:17:44 -0800</date>
            <delta_ts>2022-01-03 09:47:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234817-20220103091743.patch</filename>
            <type>text/plain</type>
            <size>5877</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
N2RhOTczNmJjODY5ZWRmZWIwN2E0MGNmMTI0ZWZlYmRhM2MzNmJkLi42N2RmZDgwNmYwZGRiYmVl
MzJkOWZkNjg5ZTY5YmJhOGVmMGUxNjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAyMi0wMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEZpeCBJbnRsLlBsdXJhbFJ1bGVzLnNlbGVjdFJhbmdlIGlucHV0
IHZhbGlkYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNDgxNworCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBTaHZheWthLgorCisgICAg
ICAgIEFkZCBzcGVjaWZpZWQgYXJndW1lbnQgdmFsaWRhdGlvblsxXSB0byBJbnRsLlBsdXJhbFJ1
bGVzLnNlbGVjdFJhbmdlLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2Fs
LWludGwtbnVtYmVyZm9ybWF0LXYzL291dC9wbHVyYWxydWxlcy9wcm9wb3NlZC5odG1sI3NlYy1p
bnRsLnBsdXJhbHJ1bGVzLnByb3RvdHlwZS5zZWxlY3RyYW5nZQorCisgICAgICAgICogcnVudGlt
ZS9JbnRsUGx1cmFsUnVsZXMuY3BwOgorICAgICAgICAoSlNDOjpJbnRsUGx1cmFsUnVsZXM6OnNl
bGVjdFJhbmdlIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0ludGxQbHVyYWxSdWxlc1Byb3Rv
dHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisKIDIw
MjItMDEtMDMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBb
SlNDXSBVcGRhdGUgVUNEIHRvIFVuaWNvZGUgMTQuMC4wCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVsZXMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVzLmNwcAppbmRleCA5MGRiNTY3OThjMGM2MGJh
NzkxZDVmMzVhNWUxNDhiZWE0MDhjNWQ0Li5hODUxMzExYzc0NGI1ZWFiMTY1YWM3ZjRkNTY3MTAw
NmQ4NjY3ODNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
UGx1cmFsUnVsZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQ
bHVyYWxSdWxlcy5jcHAKQEAgLTI3OSwxMCArMjc5LDE0IEBAIEpTVmFsdWUgSW50bFBsdXJhbFJ1
bGVzOjpzZWxlY3RSYW5nZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBkb3VibGUgc3Rh
cnQsCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIGlmIChzdGFydCA+IGVuZCkgewotICAgICAg
ICB0aHJvd1JhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgInN0YXJ0IGlzIGxhcmdlciB0
aGFuIGVuZCJfcyk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQorICAgIGlmIChzdGQ6Omlz
bmFuKHN0YXJ0KSB8fCBzdGQ6OmlzbmFuKGVuZCkpCisgICAgICAgIHJldHVybiB0aHJvd1Jhbmdl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlBhc3NlZCBudW1iZXJzIGFyZSBvdXQgb2YgcmFu
Z2UiX3MpOworCisgICAgaWYgKGVuZCA8IHN0YXJ0KQorICAgICAgICByZXR1cm4gdGhyb3dSYW5n
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJzdGFydCBpcyBsYXJnZXIgdGhhbiBlbmQiX3Mp
OworCisgICAgaWYgKGlzTmVnYXRpdmVaZXJvKGVuZCkgJiYgc3RhcnQgPj0gMCkKKyAgICAgICAg
cmV0dXJuIHRocm93UmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAic3RhcnQgaXMgbGFy
Z2VyIHRoYW4gZW5kIl9zKTsKIAogICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9S
OwogICAgIGF1dG8gcmFuZ2UgPSBzdGQ6OnVuaXF1ZV9wdHI8VUZvcm1hdHRlZE51bWJlclJhbmdl
LCBJQ1VEZWxldGVyPHVudW1yZl9jbG9zZVJlc3VsdD4+KHVudW1yZl9vcGVuUmVzdWx0KCZzdGF0
dXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVy
YWxSdWxlc1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
UGx1cmFsUnVsZXNQcm90b3R5cGUuY3BwCmluZGV4IGFmYmU4M2Y1NThlMjA0NDczMGMzY2I5ZTdm
ZTEyNmU0MGIzOTY0ZmEuLjYyYzA4YmY5NTdhMTMyZjEyZDZkNGJmYjJkODFjZGIwOThkM2E1OTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxl
c1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBs
dXJhbFJ1bGVzUHJvdG90eXBlLmNwcApAQCAtMTEwLDEwICsxMTAsMTYgQEAgSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGludGxQbHVyYWxSdWxlc1Byb3RvdHlwZUZ1bmNTZWxlY3RSYW5nZSwgKEpT
R2xvYmFsT2JqZWMKICAgICBpZiAoIXBsdXJhbFJ1bGVzKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJJbnRsLlBsdXJh
bFJ1bGVzLnByb3RvdHlwZS5zZWxlY3RSYW5nZSBjYWxsZWQgb24gdmFsdWUgdGhhdCdzIG5vdCBh
IFBsdXJhbFJ1bGVzIl9zKSk7CiAKLSAgICBkb3VibGUgc3RhcnQgPSBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCk7CisgICAgSlNWYWx1ZSBzdGFydFZhbHVlID0g
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICBKU1ZhbHVlIGVuZFZhbHVlID0gY2FsbEZyYW1l
LT5hcmd1bWVudCgxKTsKKworICAgIGlmIChzdGFydFZhbHVlLmlzVW5kZWZpbmVkKCkgfHwgZW5k
VmFsdWUuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgInN0YXJ0IG9yIGVuZCBpcyB1bmRlZmluZWQiX3MpOworCisgICAg
ZG91YmxlIHN0YXJ0ID0gc3RhcnRWYWx1ZS50b051bWJlcihnbG9iYWxPYmplY3QpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKLSAgICBkb3VibGUgZW5kID0gY2FsbEZy
YW1lLT5hcmd1bWVudCgxKS50b051bWJlcihnbG9iYWxPYmplY3QpOworICAgIGRvdWJsZSBlbmQg
PSBlbmRWYWx1ZS50b051bWJlcihnbG9iYWxPYmplY3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7CiAKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShwbHVyYWxSdWxlcy0+c2VsZWN0UmFuZ2UoZ2xvYmFsT2JqZWN0LCBzdGFydCwgZW5k
KSkpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwpp
bmRleCBmYzViMzZjM2JlZGE4YmVkNjA3YjQ2ZTNiMDM2MTY5Mjk0YThmNTZlLi5lNWM3NGNkNGFk
MTUwMzE3YmU1ZGZlNDZmOGJmMjhkOWI5ODBlMGY2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5n
ZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAxLTAz
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gRml4
IEludGwuUGx1cmFsUnVsZXMuc2VsZWN0UmFuZ2UgaW5wdXQgdmFsaWRhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0ODE3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQWxleGV5IFNodmF5a2EuCisKKyAgICAgICAgKiBzdHJlc3MvaW50bC1wbHVy
YWxydWxlcy1zZWxlY3QtcmFuZ2UtdmFsaWRhdGUtaW5wdXRzLmpzOiBBZGRlZC4KKyAgICAgICAg
KHNob3VsZFRocm93KToKKyAgICAgICAgKEludGwuUGx1cmFsUnVsZXMucHJvdG90eXBlLnNlbGVj
dFJhbmdlLnNob3VsZFRocm93KToKKwogMjAyMi0wMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFVwZGF0ZSBVQ0QgdG8gVW5pY29kZSAxNC4w
LjAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ludGwtcGx1cmFscnVsZXMtc2VsZWN0LXJh
bmdlLXZhbGlkYXRlLWlucHV0cy5qcyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtcGx1cmFscnVsZXMt
c2VsZWN0LXJhbmdlLXZhbGlkYXRlLWlucHV0cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGRkMTdjYWQ5MWE1
M2ZmYjFjYTc0N2MzOWNlNzNjYmFlZDM3OTI3Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9z
dHJlc3MvaW50bC1wbHVyYWxydWxlcy1zZWxlY3QtcmFuZ2UtdmFsaWRhdGUtaW5wdXRzLmpzCkBA
IC0wLDAgKzEsNDIgQEAKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yTWVzc2FnZSkg
eworICAgIHZhciBlcnJvclRocm93biA9IGZhbHNlOworICAgIHZhciBlcnJvciA9IG51bGw7Cisg
ICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJy
b3JUaHJvd24gPSB0cnVlOworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICghZXJy
b3JUaHJvd24pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignbm90IHRocm93bicpOworICAgIGlm
IChTdHJpbmcoZXJyb3IpICE9PSBlcnJvck1lc3NhZ2UpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cihgYmFkIGVycm9yOiAke1N0cmluZyhlcnJvcil9YCk7Cit9CisKK2lmIChJbnRsLlBsdXJhbFJ1
bGVzLnByb3RvdHlwZS5zZWxlY3RSYW5nZSkgeworICAgIGxldCBwbCA9IG5ldyBJbnRsLlBsdXJh
bFJ1bGVzKCdlbi1VUycpOworICAgIHNob3VsZFRocm93KCgpID0+IHsKKyAgICAgICAgcGwuc2Vs
ZWN0UmFuZ2UoKTsKKyAgICB9LCBgVHlwZUVycm9yOiBzdGFydCBvciBlbmQgaXMgdW5kZWZpbmVk
YCk7CisgICAgc2hvdWxkVGhyb3coKCkgPT4geworICAgICAgICBwbC5zZWxlY3RSYW5nZSgwLCB1
bmRlZmluZWQpOworICAgIH0sIGBUeXBlRXJyb3I6IHN0YXJ0IG9yIGVuZCBpcyB1bmRlZmluZWRg
KTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiB7CisgICAgICAgIHBsLnNlbGVjdFJhbmdlKHVuZGVm
aW5lZCwgMCk7CisgICAgfSwgYFR5cGVFcnJvcjogc3RhcnQgb3IgZW5kIGlzIHVuZGVmaW5lZGAp
OworICAgIHNob3VsZFRocm93KCgpID0+IHsKKyAgICAgICAgcGwuc2VsZWN0UmFuZ2UodW5kZWZp
bmVkLCB1bmRlZmluZWQpOworICAgIH0sIGBUeXBlRXJyb3I6IHN0YXJ0IG9yIGVuZCBpcyB1bmRl
ZmluZWRgKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiB7CisgICAgICAgIHBsLnNlbGVjdFJhbmdl
KE5hTiwgMCk7CisgICAgfSwgYFJhbmdlRXJyb3I6IFBhc3NlZCBudW1iZXJzIGFyZSBvdXQgb2Yg
cmFuZ2VgKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiB7CisgICAgICAgIHBsLnNlbGVjdFJhbmdl
KDAsIE5hTik7CisgICAgfSwgYFJhbmdlRXJyb3I6IFBhc3NlZCBudW1iZXJzIGFyZSBvdXQgb2Yg
cmFuZ2VgKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiB7CisgICAgICAgIHBsLnNlbGVjdFJhbmdl
KE5hTiwgTmFOKTsKKyAgICB9LCBgUmFuZ2VFcnJvcjogUGFzc2VkIG51bWJlcnMgYXJlIG91dCBv
ZiByYW5nZWApOworICAgIHNob3VsZFRocm93KCgpID0+IHsKKyAgICAgICAgcGwuc2VsZWN0UmFu
Z2UoMCwgLTApOworICAgIH0sIGBSYW5nZUVycm9yOiBzdGFydCBpcyBsYXJnZXIgdGhhbiBlbmRg
KTsKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>