<?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>224565</bug_id>
          
          <creation_ts>2021-04-14 11:31:40 -0700</creation_ts>
          <short_desc>Defer TerminationExceptions when evaluating ASSERT in HashMapIml::addNormalized().</short_desc>
          <delta_ts>2021-04-14 14:53:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1750247</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-04-14 11:31:40 -0700</bug_when>
    <thetext>rdar://76645980</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750259</commentid>
    <comment_count>1</comment_count>
      <attachid>426026</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-04-14 11:49:05 -0700</bug_when>
    <thetext>Created attachment 426026
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750273</commentid>
    <comment_count>2</comment_count>
      <attachid>426026</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-14 12:20:41 -0700</bug_when>
    <thetext>Comment on attachment 426026
proposed patch.

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

&gt; Source/JavaScriptCore/runtime/ExceptionHelpers.h:72
&gt; +#define DEFER_TERMINATION_AND_ASSERT(vm, assertion, ...) do { \
&gt; +        JSC::DeferTerminationForAWhile deferScope(vm); \
&gt; +        ASSERT(assertion, __VA_ARGS__); \
&gt; +    } while (false)
&gt; +
&gt; +#define DEFER_TERMINATION_AND_ASSERT_WITH_MESSAGE(vm, assertion, ...) do { \
&gt; +        JSC::DeferTerminationForAWhile deferScope(vm); \
&gt; +        ASSERT_WITH_MESSAGE(assertion, __VA_ARGS__); \
&gt; +    } while (false)

Let&apos;s make them nop for Release builds. JSC::DeferTerminationForAWhile is calling deferTermination / undoDeferTermination functions. And I think addNormalized is really critical enough so that we should not insert these calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750333</commentid>
    <comment_count>3</comment_count>
      <attachid>426046</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-04-14 14:24:11 -0700</bug_when>
    <thetext>Created attachment 426046
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750336</commentid>
    <comment_count>4</comment_count>
      <attachid>426046</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-14 14:28:32 -0700</bug_when>
    <thetext>Comment on attachment 426046
proposed patch.

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

r=me

&gt; Source/JavaScriptCore/runtime/VMTraps.h:194
&gt; +    enum DeferAction {

Let’s use enum class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750357</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-04-14 14:53:04 -0700</bug_when>
    <thetext>Thanks for the review.  I&apos;ve made the enum class change.

Landed in r275969: &lt;http://trac.webkit.org/r275969&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426026</attachid>
            <date>2021-04-14 11:49:05 -0700</date>
            <delta_ts>2021-04-14 14:24:11 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-224565.patch</filename>
            <type>text/plain</type>
            <size>8999</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzU5NTMpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDIxLTA0LTE0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBEZWZlciBUZXJtaW5hdGlvbkV4Y2VwdGlvbnMgd2hlbiBldmFsdWF0aW5n
IEFTU0VSVCBpbiBIYXNoTWFwSW1sOjphZGROb3JtYWxpemVkKCkuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ1NjUKKyAgICAgICAgcmRhcjovLzc2
NjQ1OTgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBzdHJlc3Mvc3VwcHJlc3MtVGVycm1pbmF0aW9uRXhjZXB0aW9uLWluLUFTU0VSVC1pbi1IYXNo
TWFwSW1wbC1hZGROb3JtYWxpemVkLmpzOiBBZGRlZC4KKwogMjAyMS0wNC0xNCAgQW5nZWxvcyBP
aWtvbm9tb3BvdWxvcyAgPGFuZ2Vsb3NAaWdhbGlhLmNvbT4KIAogICAgICAgICBbSlNDXSBVbnNr
aXAgdHlwZWRhcnJheS1mdW5jdGlvbnMtd2l0aC1uZXV0ZXJlZC5qcyBvbiBNSVBTCkluZGV4OiBK
U1Rlc3RzL3N0cmVzcy9zdXBwcmVzcy1UZXJybWluYXRpb25FeGNlcHRpb24taW4tQVNTRVJULWlu
LUhhc2hNYXBJbXBsLWFkZE5vcm1hbGl6ZWQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJl
c3Mvc3VwcHJlc3MtVGVycm1pbmF0aW9uRXhjZXB0aW9uLWluLUFTU0VSVC1pbi1IYXNoTWFwSW1w
bC1hZGROb3JtYWxpemVkLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvc3RyZXNzL3N1cHBy
ZXNzLVRlcnJtaW5hdGlvbkV4Y2VwdGlvbi1pbi1BU1NFUlQtaW4tSGFzaE1hcEltcGwtYWRkTm9y
bWFsaXplZC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACisvL0AgcnVuRGVmYXVs
dCgiLS13YXRjaGRvZz0zMDAiLCAiLS13YXRjaGRvZy1leGNlcHRpb24tb2siKQorCitmdW5jdGlv
biBmb28oKSB7CisgIGxldCBzID0gbmV3IFNldCgpOworICBnYygpOworICBzLmFkZCgnMScpOyAK
K30KKworZm9yIChsZXQgaT0wOyBpPDEwMDA7IGkrKykgeworICBmb28oKTsKK30KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc1OTQ4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDIxLTA0
LTE0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBEZWZlciBUZXJt
aW5hdGlvbkV4Y2VwdGlvbnMgd2hlbiBldmFsdWF0aW5nIEFTU0VSVCBpbiBIYXNoTWFwSW1sOjph
ZGROb3JtYWxpemVkKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjQ1NjUKKyAgICAgICAgcmRhcjovLzc2NjQ1OTgwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSGFzaE1hcEltcGw6OmFkZE5vcm1hbGl6
ZWQoKSBoYXMgYW4gQVNTRVJUIHRoYXQgY2FsbHMganNNYXBIYXNoKCksIHdoaWNoIGNhbgorICAg
ICAgICBwb3RlbnRpYWxseSB0aHJvdyBleGNlcHRpb25zLiAgQXMgYSByZXN1bHQsIGl0IGhhcyBh
IFJFVFVSTl9JRl9FWENFUFRJT04gd2hpY2gKKyAgICAgICAgcHJvdmlkZXMgYW4gb3Bwb3J0dW5p
dHkgdG8gaGFuZGxlIHRyYXBzIGFuZCB0aHJvdyBhIFRlcm1pbmF0aW9uRXhjZXB0aW9uLiAgVGhp
cworICAgICAgICBpbiB0dXJuIGNhdXNlcyB0aGUgQVNTRVJUIHRvIGZhaWwuCisKKyAgICAgICAg
VG8gZml4IHRoaXMsIHdlIGRvOgorCisgICAgICAgIDEuIEludHJvZHVjZSBWTVRyYXBzOjpEZWZl
ckFjdGlvbiwgd2hpY2ggZ2l2ZXMgdXMgRGVmZXJGb3JBV2hpbGUgYW5kIERlZmVyVW50aWxFbmRP
ZlNjb3BlLgorCisgICAgICAgIDIuIFRlbXBsYXRpemUgdGhlIERlZmVyVGVybWluYXRpb24gUkFJ
SSBvYmplY3Qgb24gVk1UcmFwczo6RGVmZXJBY3Rpb24uCisgICAgICAgICAgIEludHJvZHVjZSBE
ZWZlclRlcnJtaW5hdGlvbkZvckFXaGlsZSwgd2hpY2ggaXMgRGVmZXJUZXJtaW5hdGlvbjxWTVRy
YXBzOjpEZWZlckZvckFXaGlsZT4uCisgICAgICAgICAgIERlZmVyRm9yQVdoaWxlIG1lYW5zIHRo
YXQgdGhlIGRlZmVyU2NvcGUgd2lsbCBub3QgdGhyb3cgdGhlIFRlcm1pbmF0aW9uRXhjZXB0aW9u
CisgICAgICAgICAgIG9uIGV4aXQuICBJbnN0ZWFkLCBpdCB3aWxsIHJlLXNldCB0aGUgTmVlZFRl
cm1pbmF0aW9uIGJpdCBpbiB0aGUgdHJhcHMsIGFuZCBsZXQKKyAgICAgICAgICAgdGhlIG5leHQg
dHJhcCBjaGVjayBoYW5kbGUgaXQuCisKKyAgICAgICAgMy4gSW50cm9kdWNlIERFRkVSX1RFUk1J
TkFUSU9OX0FORF9BU1NFUlRfV0lUSF9NRVNTQUdFIChhbmQgZnJpZW5kcykgd2hpY2ggY3JlYXRl
cworICAgICAgICAgICBhIERlZmVyVGVycm1pbmF0aW9uRm9yQVdoaWxlIHNjb3BlIGJlZm9yZSBk
b2luZyBhbiBBU1NFUlRfV0lUSF9NRVNTQUdFLgorCisgICAgICAgIDQuIFVzZSBERUZFUl9URVJN
SU5BVElPTl9BTkRfQVNTRVJUX1dJVEhfTUVTU0FHRSBpbnN0ZWFkIGluIEhhc2hNYXBJbXBsOjph
ZGROb3JtYWxpemVkKCkuCisKKyAgICAgICAgKiBydW50aW1lL0RlZmVyVGVybWluYXRpb24uaDoK
KyAgICAgICAgKEpTQzo6RGVmZXJUZXJtaW5hdGlvbjo6RGVmZXJUZXJtaW5hdGlvbik6CisgICAg
ICAgIChKU0M6OkRlZmVyVGVybWluYXRpb246On5EZWZlclRlcm1pbmF0aW9uKToKKyAgICAgICAg
KiBydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaDoKKyAgICAgICAgKiBydW50aW1lL0hhc2hNYXBJ
bXBsLmg6CisgICAgICAgIChKU0M6Okhhc2hNYXBJbXBsOjphZGROb3JtYWxpemVkKToKKyAgICAg
ICAgKiBydW50aW1lL1ZNVHJhcHMuY3BwOgorICAgICAgICAoSlNDOjpWTVRyYXBzOjpkZWZlclRl
cm1pbmF0aW9uKToKKyAgICAgICAgKEpTQzo6Vk1UcmFwczo6dW5kb0RlZmVyVGVybWluYXRpb24p
OgorICAgICAgICAqIHJ1bnRpbWUvVk1UcmFwcy5oOgorCiAyMDIxLTA0LTEzICBNYXJrIExhbSAg
PG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgd2F0Y2hkb2cgc2hvdWxkIG5vdCBm
aXJlIHdoZW4gaXQncyBub3QgYWN0aXZlLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGVmZXJUZXJtaW5hdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RlZmVyVGVybWluYXRpb24uaAkocmV2aXNpb24gMjc1OTQ4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGVmZXJUZXJtaW5hdGlvbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSw2ICszMSw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCit0ZW1wbGF0ZTxWTVRy
YXBzOjpEZWZlckFjdGlvbiBkZWZlckFjdGlvbiA9IFZNVHJhcHM6OkRlZmVyVW50aWxFbmRPZlNj
b3BlPgogY2xhc3MgRGVmZXJUZXJtaW5hdGlvbiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
RGVmZXJUZXJtaW5hdGlvbik7CiAgICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CkBAIC0z
OCwxNiArMzksMTggQEAgcHVibGljOgogICAgIERlZmVyVGVybWluYXRpb24oVk0mIHZtKQogICAg
ICAgICA6IG1fdm0odm0pCiAgICAgewotICAgICAgICBtX3ZtLnRyYXBzKCkuZGVmZXJUZXJtaW5h
dGlvbigpOworICAgICAgICBtX3ZtLnRyYXBzKCkuZGVmZXJUZXJtaW5hdGlvbihkZWZlckFjdGlv
bik7CiAgICAgfQogICAgIAogICAgIH5EZWZlclRlcm1pbmF0aW9uKCkKICAgICB7Ci0gICAgICAg
IG1fdm0udHJhcHMoKS51bmRvRGVmZXJUZXJtaW5hdGlvbigpOworICAgICAgICBtX3ZtLnRyYXBz
KCkudW5kb0RlZmVyVGVybWluYXRpb24oZGVmZXJBY3Rpb24pOwogICAgIH0KIAogcHJpdmF0ZToK
ICAgICBWTSYgbV92bTsKIH07CiAKK3VzaW5nIERlZmVyVGVybWluYXRpb25Gb3JBV2hpbGUgPSBE
ZWZlclRlcm1pbmF0aW9uPFZNVHJhcHM6OkRlZmVyRm9yQVdoaWxlPjsKKwogfSAvLyBuYW1lc3Bh
Y2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxw
ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0
aW9uSGVscGVycy5oCShyZXZpc2lvbiAyNzU5NDgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJEZWZlclRlcm1pbmF0aW9uLmgiCiAjaW5j
bHVkZSAiRXJyb3JJbnN0YW5jZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgogI2luY2x1ZGUg
IkpTT2JqZWN0LmgiCkBAIC02MCw0ICs2MSwyNCBAQCBKU19FWFBPUlRfUFJJVkFURSBFeGNlcHRp
b24qIHRocm93T3V0T2ZNCiBKU19FWFBPUlRfUFJJVkFURSBFeGNlcHRpb24qIHRocm93T3V0T2ZN
ZW1vcnlFcnJvcihKU0dsb2JhbE9iamVjdCosIFRocm93U2NvcGUmLCBjb25zdCBTdHJpbmcmKTsK
IEpTX0VYUE9SVF9QUklWQVRFIEV4Y2VwdGlvbiogdGhyb3dTdGFja092ZXJmbG93RXJyb3IoSlNH
bG9iYWxPYmplY3QqLCBUaHJvd1Njb3BlJik7CiAKKyNkZWZpbmUgREVGRVJfVEVSTUlOQVRJT05f
QU5EX0FTU0VSVCh2bSwgYXNzZXJ0aW9uLCAuLi4pIGRvIHsgXAorICAgICAgICBKU0M6OkRlZmVy
VGVybWluYXRpb25Gb3JBV2hpbGUgZGVmZXJTY29wZSh2bSk7IFwKKyAgICAgICAgQVNTRVJUKGFz
c2VydGlvbiwgX19WQV9BUkdTX18pOyBcCisgICAgfSB3aGlsZSAoZmFsc2UpCisKKyNkZWZpbmUg
REVGRVJfVEVSTUlOQVRJT05fQU5EX0FTU0VSVF9XSVRIX01FU1NBR0Uodm0sIGFzc2VydGlvbiwg
Li4uKSBkbyB7IFwKKyAgICAgICAgSlNDOjpEZWZlclRlcm1pbmF0aW9uRm9yQVdoaWxlIGRlZmVy
U2NvcGUodm0pOyBcCisgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoYXNzZXJ0aW9uLCBfX1ZB
X0FSR1NfXyk7IFwKKyAgICB9IHdoaWxlIChmYWxzZSkKKworI2RlZmluZSBERUZFUl9URVJNSU5B
VElPTl9BTkRfUkVMRUFTRV9BU1NFUlQodm0sIGFzc2VydGlvbiwgLi4uKSBkbyB7IFwKKyAgICAg
ICAgSlNDOjpEZWZlclRlcm1pbmF0aW9uRm9yQVdoaWxlIGRlZmVyU2NvcGUodm0pOyBcCisgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKGFzc2VydGlvbiwgX19WQV9BUkdTX18pOyBcCisgICAgfSB3aGls
ZSAoZmFsc2UpCisKKyNkZWZpbmUgREVGRVJfVEVSTUlOQVRJT05fQU5EX1JFTEVBU0VfQVNTRVJU
X1dJVEhfTUVTU0FHRSh2bSwgYXNzZXJ0aW9uLCAuLi4pIGRvIHsgXAorICAgICAgICBKU0M6OkRl
ZmVyVGVybWluYXRpb25Gb3JBV2hpbGUgZGVmZXJTY29wZSh2bSk7IFwKKyAgICAgICAgUkVMRUFT
RV9BU1NFUlRfV0lUSF9NRVNTQUdFKGFzc2VydGlvbiwgX19WQV9BUkdTX18pOyBcCisgICAgfSB3
aGlsZSAoZmFsc2UpCisKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSGFzaE1hcEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9IYXNoTWFwSW1wbC5oCShyZXZpc2lvbiAyNzU5NDgpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IYXNoTWFwSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00OTcsNyArNDk3LDcgQEAgcHVibGljOgogICAgIEFMV0FZU19JTkxJTkUgSGFzaE1hcEJ1Y2tl
dFR5cGUqIGFkZE5vcm1hbGl6ZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBrZXksIEpTVmFsdWUgdmFsdWUsIHVpbnQzMl90IGhhc2gpCiAgICAgewogICAgICAgICBBU1NF
UlRfV0lUSF9NRVNTQUdFKG5vcm1hbGl6ZU1hcEtleShrZXkpID09IGtleSwgIldlIGV4cGVjdCBu
b3JtYWxpemVkIHZhbHVlcyBmbG93aW5nIGludG8gdGhpcyBmdW5jdGlvbi4iKTsKLSAgICAgICAg
QVNTRVJUX1dJVEhfTUVTU0FHRShqc01hcEhhc2goZ2xvYmFsT2JqZWN0LCBnZXRWTShnbG9iYWxP
YmplY3QpLCBrZXkpID09IGhhc2gsICJXZSBleHBlY3QgaGFzaCB2YWx1ZSBpcyB3aGF0IHdlIGV4
cGVjdC4iKTsKKyAgICAgICAgREVGRVJfVEVSTUlOQVRJT05fQU5EX0FTU0VSVF9XSVRIX01FU1NB
R0UoZ2xvYmFsT2JqZWN0LT52bSgpLCBqc01hcEhhc2goZ2xvYmFsT2JqZWN0LCBnZXRWTShnbG9i
YWxPYmplY3QpLCBrZXkpID09IGhhc2gsICJXZSBleHBlY3QgaGFzaCB2YWx1ZSBpcyB3aGF0IHdl
IGV4cGVjdC4iKTsKIAogICAgICAgICBhdXRvKiBidWNrZXQgPSBhZGROb3JtYWxpemVkSW50ZXJu
YWwoZ2V0Vk0oZ2xvYmFsT2JqZWN0KSwga2V5LCB2YWx1ZSwgaGFzaCwgWyZdIChIYXNoTWFwQnVj
a2V0VHlwZSogYnVja2V0KSB7CiAgICAgICAgICAgICByZXR1cm4gIWlzRGVsZXRlZChidWNrZXQp
ICYmIGFyZUtleXNFcXVhbChnbG9iYWxPYmplY3QsIGtleSwgYnVja2V0LT5rZXkoKSk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAkocmV2aXNpb24gMjc1
OTQ4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQxNSw3ICs0MTUsNyBAQCBhdXRvIFZNVHJhcHM6OnRha2VUb3BQcmlvcml0
eVRyYXAoVk1UcmFwCiAgICAgcmV0dXJuIE5vRXZlbnQ7CiB9CiAKLXZvaWQgVk1UcmFwczo6ZGVm
ZXJUZXJtaW5hdGlvbigpCit2b2lkIFZNVHJhcHM6OmRlZmVyVGVybWluYXRpb24oRGVmZXJBY3Rp
b24pCiB7CiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqbV9sb2NrKTsKICAgICBtX2RlZmVy
VGVybWluYXRpb25Db3VudCsrOwpAQCAtNDI5LDE0ICs0MjksMTcgQEAgdm9pZCBWTVRyYXBzOjpk
ZWZlclRlcm1pbmF0aW9uKCkKICAgICB9CiB9CiAKLXZvaWQgVk1UcmFwczo6dW5kb0RlZmVyVGVy
bWluYXRpb24oKQordm9pZCBWTVRyYXBzOjp1bmRvRGVmZXJUZXJtaW5hdGlvbihEZWZlckFjdGlv
biBhY3Rpb24pCiB7CiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqbV9sb2NrKTsKICAgICBB
U1NFUlQobV9kZWZlclRlcm1pbmF0aW9uQ291bnQgPiAwKTsKICAgICBpZiAoLS1tX2RlZmVyVGVy
bWluYXRpb25Db3VudCA9PSAwKSB7CiAgICAgICAgIFZNJiB2bSA9IHRoaXMtPnZtKCk7Ci0gICAg
ICAgIGlmIChtX3N1c3BlbmRlZFRlcm1pbmF0aW9uRXhjZXB0aW9uIHx8IHZtLnRlcm1pbmF0aW9u
SW5Qcm9ncmVzcygpKQotICAgICAgICAgICAgdm0uc2V0RXhjZXB0aW9uKHZtLnRlcm1pbmF0aW9u
RXhjZXB0aW9uKCkpOworICAgICAgICBpZiAobV9zdXNwZW5kZWRUZXJtaW5hdGlvbkV4Y2VwdGlv
bgorICAgICAgICAgICAgfHwgKChhY3Rpb24gPT0gRGVmZXJVbnRpbEVuZE9mU2NvcGUpICYmIHZt
LnRlcm1pbmF0aW9uSW5Qcm9ncmVzcygpKSkKKyAgICAgICAgICAgIHZtLnRocm93VGVybWluYXRp
b25FeGNlcHRpb24oKTsKKyAgICAgICAgZWxzZSBpZiAoKGFjdGlvbiA9PSBEZWZlckZvckFXaGls
ZSkgJiYgdm0udGVybWluYXRpb25JblByb2dyZXNzKCkpCisgICAgICAgICAgICBzZXRUcmFwQml0
KE5lZWRUZXJtaW5hdGlvbik7IC8vIExldCB0aGUgbmV4dCB0cmFwIGNoZWNrIGhhbmRsZSBpdC4K
ICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmgJ
KHJldmlzaW9uIDI3NTk0OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJh
cHMuaAkod29ya2luZyBjb3B5KQpAQCAtMTkxLDkgKzE5MSwxNCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBuZWVkSGFuZGxpbmcoQml0RmllbGQgbWFzaykgY29uc3QgeyByZXR1cm4gbV90cmFwQml0cy5s
b2FkUmVsYXhlZCgpICYgbWFzazsgfQogICAgIHZvaWQqIHRyYXBCaXRzQWRkcmVzcygpIHsgcmV0
dXJuICZtX3RyYXBCaXRzOyB9CiAKKyAgICBlbnVtIERlZmVyQWN0aW9uIHsKKyAgICAgICAgRGVm
ZXJGb3JBV2hpbGUsCisgICAgICAgIERlZmVyVW50aWxFbmRPZlNjb3BlCisgICAgfTsKKwogICAg
IGJvb2wgaXNEZWZlcnJpbmdUZXJtaW5hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXJUZXJt
aW5hdGlvbkNvdW50OyB9Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZWZlclRlcm1pbmF0
aW9uKCk7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCB1bmRvRGVmZXJUZXJtaW5hdGlvbigp
OworICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVmZXJUZXJtaW5hdGlvbihEZWZlckFjdGlv
bik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCB1bmRvRGVmZXJUZXJtaW5hdGlvbihEZWZl
ckFjdGlvbik7CiAKICAgICB2b2lkIG5vdGlmeUdyYWJBbGxMb2NrcygpCiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426046</attachid>
            <date>2021-04-14 14:24:11 -0700</date>
            <delta_ts>2021-04-14 14:28:32 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-224565.patch</filename>
            <type>text/plain</type>
            <size>9376</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzU5NjUpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDIxLTA0LTE0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBEZWZlciBUZXJtaW5hdGlvbkV4Y2VwdGlvbnMgd2hlbiBldmFsdWF0aW5n
IEFTU0VSVCBpbiBIYXNoTWFwSW1sOjphZGROb3JtYWxpemVkKCkuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ1NjUKKyAgICAgICAgcmRhcjovLzc2
NjQ1OTgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBzdHJlc3Mvc3VwcHJlc3MtVGVycm1pbmF0aW9uRXhjZXB0aW9uLWluLUFTU0VSVC1pbi1IYXNo
TWFwSW1wbC1hZGROb3JtYWxpemVkLmpzOiBBZGRlZC4KKwogMjAyMS0wNC0xNCAgR3VpbGxhdW1l
IEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0pTQ10gVW5za2lwIHN0
cmVzcy9pbnRsLXNlZ21lbnRlci5qcwpJbmRleDogSlNUZXN0cy9zdHJlc3Mvc3VwcHJlc3MtVGVy
cm1pbmF0aW9uRXhjZXB0aW9uLWluLUFTU0VSVC1pbi1IYXNoTWFwSW1wbC1hZGROb3JtYWxpemVk
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL3N1cHByZXNzLVRlcnJtaW5hdGlvbkV4
Y2VwdGlvbi1pbi1BU1NFUlQtaW4tSGFzaE1hcEltcGwtYWRkTm9ybWFsaXplZC5qcwkobm9uZXhp
c3RlbnQpCisrKyBKU1Rlc3RzL3N0cmVzcy9zdXBwcmVzcy1UZXJybWluYXRpb25FeGNlcHRpb24t
aW4tQVNTRVJULWluLUhhc2hNYXBJbXBsLWFkZE5vcm1hbGl6ZWQuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMSBAQAorLy9AIHJ1bkRlZmF1bHQoIi0td2F0Y2hkb2c9MzAwIiwgIi0td2F0
Y2hkb2ctZXhjZXB0aW9uLW9rIikKKworZnVuY3Rpb24gZm9vKCkgeworICBsZXQgcyA9IG5ldyBT
ZXQoKTsKKyAgZ2MoKTsKKyAgcy5hZGQoJzEnKTsgCit9CisKK2ZvciAobGV0IGk9MDsgaTwxMDAw
OyBpKyspIHsKKyAgZm9vKCk7Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI3NTk2NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSw0MiBAQAorMjAyMS0wNC0xNCAgTWFyayBMYW0gIDxtYXJrLmxhbUBh
cHBsZS5jb20+CisKKyAgICAgICAgRGVmZXIgVGVybWluYXRpb25FeGNlcHRpb25zIHdoZW4gZXZh
bHVhdGluZyBBU1NFUlQgaW4gSGFzaE1hcEltbDo6YWRkTm9ybWFsaXplZCgpLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NTY1CisgICAgICAgIHJk
YXI6Ly83NjY0NTk4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEhhc2hNYXBJbXBsOjphZGROb3JtYWxpemVkKCkgaGFzIGFuIEFTU0VSVCB0aGF0IGNh
bGxzIGpzTWFwSGFzaCgpLCB3aGljaCBjYW4KKyAgICAgICAgcG90ZW50aWFsbHkgdGhyb3cgZXhj
ZXB0aW9ucy4gIEFzIGEgcmVzdWx0LCBpdCBoYXMgYSBSRVRVUk5fSUZfRVhDRVBUSU9OIHdoaWNo
CisgICAgICAgIHByb3ZpZGVzIGFuIG9wcG9ydHVuaXR5IHRvIGhhbmRsZSB0cmFwcyBhbmQgdGhy
b3cgYSBUZXJtaW5hdGlvbkV4Y2VwdGlvbi4gIFRoaXMKKyAgICAgICAgaW4gdHVybiBjYXVzZXMg
dGhlIEFTU0VSVCB0byBmYWlsLgorCisgICAgICAgIFRvIGZpeCB0aGlzLCB3ZSBkbzoKKworICAg
ICAgICAxLiBJbnRyb2R1Y2UgVk1UcmFwczo6RGVmZXJBY3Rpb24sIHdoaWNoIGdpdmVzIHVzIERl
ZmVyRm9yQVdoaWxlIGFuZCBEZWZlclVudGlsRW5kT2ZTY29wZS4KKworICAgICAgICAyLiBUZW1w
bGF0aXplIHRoZSBEZWZlclRlcm1pbmF0aW9uIFJBSUkgb2JqZWN0IG9uIFZNVHJhcHM6OkRlZmVy
QWN0aW9uLgorICAgICAgICAgICBJbnRyb2R1Y2UgRGVmZXJUZXJybWluYXRpb25Gb3JBV2hpbGUs
IHdoaWNoIGlzIERlZmVyVGVybWluYXRpb248Vk1UcmFwczo6RGVmZXJGb3JBV2hpbGU+LgorICAg
ICAgICAgICBEZWZlckZvckFXaGlsZSBtZWFucyB0aGF0IHRoZSBkZWZlclNjb3BlIHdpbGwgbm90
IHRocm93IHRoZSBUZXJtaW5hdGlvbkV4Y2VwdGlvbgorICAgICAgICAgICBvbiBleGl0LiAgSW5z
dGVhZCwgaXQgd2lsbCByZS1zZXQgdGhlIE5lZWRUZXJtaW5hdGlvbiBiaXQgaW4gdGhlIHRyYXBz
LCBhbmQgbGV0CisgICAgICAgICAgIHRoZSBuZXh0IHRyYXAgY2hlY2sgaGFuZGxlIGl0LgorCisg
ICAgICAgIDMuIEludHJvZHVjZSBERUZFUl9URVJNSU5BVElPTl9BTkRfQVNTRVJUX1dJVEhfTUVT
U0FHRSAoYW5kIGZyaWVuZHMpIHdoaWNoIGNyZWF0ZXMKKyAgICAgICAgICAgYSBEZWZlclRlcnJt
aW5hdGlvbkZvckFXaGlsZSBzY29wZSBiZWZvcmUgZG9pbmcgYW4gQVNTRVJUX1dJVEhfTUVTU0FH
RS4KKworICAgICAgICA0LiBVc2UgREVGRVJfVEVSTUlOQVRJT05fQU5EX0FTU0VSVF9XSVRIX01F
U1NBR0UgaW5zdGVhZCBpbiBIYXNoTWFwSW1wbDo6YWRkTm9ybWFsaXplZCgpLgorCisgICAgICAg
ICogcnVudGltZS9EZWZlclRlcm1pbmF0aW9uLmg6CisgICAgICAgIChKU0M6OkRlZmVyVGVybWlu
YXRpb246OkRlZmVyVGVybWluYXRpb24pOgorICAgICAgICAoSlNDOjpEZWZlclRlcm1pbmF0aW9u
Ojp+RGVmZXJUZXJtaW5hdGlvbik6CisgICAgICAgICogcnVudGltZS9FeGNlcHRpb25IZWxwZXJz
Lmg6CisgICAgICAgICogcnVudGltZS9IYXNoTWFwSW1wbC5oOgorICAgICAgICAoSlNDOjpIYXNo
TWFwSW1wbDo6YWRkTm9ybWFsaXplZCk6CisgICAgICAgICogcnVudGltZS9WTVRyYXBzLmNwcDoK
KyAgICAgICAgKEpTQzo6Vk1UcmFwczo6ZGVmZXJUZXJtaW5hdGlvbik6CisgICAgICAgIChKU0M6
OlZNVHJhcHM6OnVuZG9EZWZlclRlcm1pbmF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1ZNVHJh
cHMuaDoKKwogMjAyMS0wNC0xMyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAg
ICAgICAgVGhlIHdhdGNoZG9nIHNob3VsZCBub3QgZmlyZSB3aGVuIGl0J3Mgbm90IGFjdGl2ZS4K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RlZmVyVGVybWluYXRpb24uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EZWZlclRlcm1pbmF0
aW9uLmgJKHJldmlzaW9uIDI3NTk2NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RlZmVyVGVybWluYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogCiBu
YW1lc3BhY2UgSlNDIHsKIAordGVtcGxhdGU8Vk1UcmFwczo6RGVmZXJBY3Rpb24gZGVmZXJBY3Rp
b24gPSBWTVRyYXBzOjpEZWZlclVudGlsRW5kT2ZTY29wZT4KIGNsYXNzIERlZmVyVGVybWluYXRp
b24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERlZmVyVGVybWluYXRpb24pOwogICAgIFdU
Rl9GT1JCSURfSEVBUF9BTExPQ0FUSU9OOwpAQCAtMzgsMTYgKzM5LDE4IEBAIHB1YmxpYzoKICAg
ICBEZWZlclRlcm1pbmF0aW9uKFZNJiB2bSkKICAgICAgICAgOiBtX3ZtKHZtKQogICAgIHsKLSAg
ICAgICAgbV92bS50cmFwcygpLmRlZmVyVGVybWluYXRpb24oKTsKKyAgICAgICAgbV92bS50cmFw
cygpLmRlZmVyVGVybWluYXRpb24oZGVmZXJBY3Rpb24pOwogICAgIH0KICAgICAKICAgICB+RGVm
ZXJUZXJtaW5hdGlvbigpCiAgICAgewotICAgICAgICBtX3ZtLnRyYXBzKCkudW5kb0RlZmVyVGVy
bWluYXRpb24oKTsKKyAgICAgICAgbV92bS50cmFwcygpLnVuZG9EZWZlclRlcm1pbmF0aW9uKGRl
ZmVyQWN0aW9uKTsKICAgICB9CiAKIHByaXZhdGU6CiAgICAgVk0mIG1fdm07CiB9OwogCit1c2lu
ZyBEZWZlclRlcm1pbmF0aW9uRm9yQVdoaWxlID0gRGVmZXJUZXJtaW5hdGlvbjxWTVRyYXBzOjpE
ZWZlckZvckFXaGlsZT47CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaAkocmV2aXNpb24gMjc1
OTY1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5j
bHVkZSAiRGVmZXJUZXJtaW5hdGlvbi5oIgogI2luY2x1ZGUgIkVycm9ySW5zdGFuY2UuaCIKICNp
bmNsdWRlICJFeGNlcHRpb24uaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgpAQCAtNjAsNCArNjEs
MzMgQEAgSlNfRVhQT1JUX1BSSVZBVEUgRXhjZXB0aW9uKiB0aHJvd091dE9mTQogSlNfRVhQT1JU
X1BSSVZBVEUgRXhjZXB0aW9uKiB0aHJvd091dE9mTWVtb3J5RXJyb3IoSlNHbG9iYWxPYmplY3Qq
LCBUaHJvd1Njb3BlJiwgY29uc3QgU3RyaW5nJik7CiBKU19FWFBPUlRfUFJJVkFURSBFeGNlcHRp
b24qIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKEpTR2xvYmFsT2JqZWN0KiwgVGhyb3dTY29wZSYp
OwogCisjaWYgQVNTRVJUX0VOQUJMRUQKKworI2RlZmluZSBERUZFUl9URVJNSU5BVElPTl9BTkRf
QVNTRVJUKHZtLCBhc3NlcnRpb24sIC4uLikgZG8geyBcCisgICAgICAgIEpTQzo6RGVmZXJUZXJt
aW5hdGlvbkZvckFXaGlsZSBkZWZlclNjb3BlKHZtKTsgXAorICAgICAgICBBU1NFUlQoYXNzZXJ0
aW9uLCBfX1ZBX0FSR1NfXyk7IFwKKyAgICB9IHdoaWxlIChmYWxzZSkKKworI2RlZmluZSBERUZF
Ul9URVJNSU5BVElPTl9BTkRfQVNTRVJUX1dJVEhfTUVTU0FHRSh2bSwgYXNzZXJ0aW9uLCAuLi4p
IGRvIHsgXAorICAgICAgICBKU0M6OkRlZmVyVGVybWluYXRpb25Gb3JBV2hpbGUgZGVmZXJTY29w
ZSh2bSk7IFwKKyAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShhc3NlcnRpb24sIF9fVkFfQVJH
U19fKTsgXAorICAgIH0gd2hpbGUgKGZhbHNlKQorCisjZWxzZQorCisjZGVmaW5lIERFRkVSX1RF
Uk1JTkFUSU9OX0FORF9BU1NFUlQodm0sIGFzc2VydGlvbiwgLi4uKSBVTlVTRURfUEFSQU0odm0p
CisjZGVmaW5lIERFRkVSX1RFUk1JTkFUSU9OX0FORF9BU1NFUlRfV0lUSF9NRVNTQUdFKHZtLCBh
c3NlcnRpb24sIC4uLikgVU5VU0VEX1BBUkFNKHZtKQorCisjZW5kaWYgLy8gQVNTRVJUX0VOQUJM
RUQKKworI2RlZmluZSBERUZFUl9URVJNSU5BVElPTl9BTkRfUkVMRUFTRV9BU1NFUlQodm0sIGFz
c2VydGlvbiwgLi4uKSBkbyB7IFwKKyAgICAgICAgSlNDOjpEZWZlclRlcm1pbmF0aW9uRm9yQVdo
aWxlIGRlZmVyU2NvcGUodm0pOyBcCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGFzc2VydGlvbiwg
X19WQV9BUkdTX18pOyBcCisgICAgfSB3aGlsZSAoZmFsc2UpCisKKyNkZWZpbmUgREVGRVJfVEVS
TUlOQVRJT05fQU5EX1JFTEVBU0VfQVNTRVJUX1dJVEhfTUVTU0FHRSh2bSwgYXNzZXJ0aW9uLCAu
Li4pIGRvIHsgXAorICAgICAgICBKU0M6OkRlZmVyVGVybWluYXRpb25Gb3JBV2hpbGUgZGVmZXJT
Y29wZSh2bSk7IFwKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKGFzc2VydGlv
biwgX19WQV9BUkdTX18pOyBcCisgICAgfSB3aGlsZSAoZmFsc2UpCisKIH0gLy8gbmFtZXNwYWNl
IEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGFzaE1hcEltcGwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IYXNoTWFwSW1wbC5o
CShyZXZpc2lvbiAyNzU5NjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IYXNo
TWFwSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OTYsMTAgKzQ5NiwxMSBAQCBwdWJsaWM6CiAK
ICAgICBBTFdBWVNfSU5MSU5FIEhhc2hNYXBCdWNrZXRUeXBlKiBhZGROb3JtYWxpemVkKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHZhbHVlLCB1aW50
MzJfdCBoYXNoKQogICAgIHsKKyAgICAgICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0KTsK
ICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShub3JtYWxpemVNYXBLZXkoa2V5KSA9PSBrZXks
ICJXZSBleHBlY3Qgbm9ybWFsaXplZCB2YWx1ZXMgZmxvd2luZyBpbnRvIHRoaXMgZnVuY3Rpb24u
Iik7Ci0gICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoanNNYXBIYXNoKGdsb2JhbE9iamVjdCwg
Z2V0Vk0oZ2xvYmFsT2JqZWN0KSwga2V5KSA9PSBoYXNoLCAiV2UgZXhwZWN0IGhhc2ggdmFsdWUg
aXMgd2hhdCB3ZSBleHBlY3QuIik7CisgICAgICAgIERFRkVSX1RFUk1JTkFUSU9OX0FORF9BU1NF
UlRfV0lUSF9NRVNTQUdFKHZtLCBqc01hcEhhc2goZ2xvYmFsT2JqZWN0LCBnZXRWTShnbG9iYWxP
YmplY3QpLCBrZXkpID09IGhhc2gsICJXZSBleHBlY3QgaGFzaCB2YWx1ZSBpcyB3aGF0IHdlIGV4
cGVjdC4iKTsKIAotICAgICAgICBhdXRvKiBidWNrZXQgPSBhZGROb3JtYWxpemVkSW50ZXJuYWwo
Z2V0Vk0oZ2xvYmFsT2JqZWN0KSwga2V5LCB2YWx1ZSwgaGFzaCwgWyZdIChIYXNoTWFwQnVja2V0
VHlwZSogYnVja2V0KSB7CisgICAgICAgIGF1dG8qIGJ1Y2tldCA9IGFkZE5vcm1hbGl6ZWRJbnRl
cm5hbCh2bSwga2V5LCB2YWx1ZSwgaGFzaCwgWyZdIChIYXNoTWFwQnVja2V0VHlwZSogYnVja2V0
KSB7CiAgICAgICAgICAgICByZXR1cm4gIWlzRGVsZXRlZChidWNrZXQpICYmIGFyZUtleXNFcXVh
bChnbG9iYWxPYmplY3QsIGtleSwgYnVja2V0LT5rZXkoKSk7CiAgICAgICAgIH0pOwogICAgICAg
ICBpZiAoc2hvdWxkUmVoYXNoQWZ0ZXJBZGQoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNVHJhcHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNVHJhcHMuY3BwCShyZXZpc2lvbiAyNzU5NjUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDE1LDcgKzQx
NSw3IEBAIGF1dG8gVk1UcmFwczo6dGFrZVRvcFByaW9yaXR5VHJhcChWTVRyYXAKICAgICByZXR1
cm4gTm9FdmVudDsKIH0KIAotdm9pZCBWTVRyYXBzOjpkZWZlclRlcm1pbmF0aW9uKCkKK3ZvaWQg
Vk1UcmFwczo6ZGVmZXJUZXJtaW5hdGlvbihEZWZlckFjdGlvbikKIHsKICAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKCptX2xvY2spOwogICAgIG1fZGVmZXJUZXJtaW5hdGlvbkNvdW50Kys7CkBA
IC00MjksMTQgKzQyOSwxNyBAQCB2b2lkIFZNVHJhcHM6OmRlZmVyVGVybWluYXRpb24oKQogICAg
IH0KIH0KIAotdm9pZCBWTVRyYXBzOjp1bmRvRGVmZXJUZXJtaW5hdGlvbigpCit2b2lkIFZNVHJh
cHM6OnVuZG9EZWZlclRlcm1pbmF0aW9uKERlZmVyQWN0aW9uIGFjdGlvbikKIHsKICAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKCptX2xvY2spOwogICAgIEFTU0VSVChtX2RlZmVyVGVybWluYXRp
b25Db3VudCA+IDApOwogICAgIGlmICgtLW1fZGVmZXJUZXJtaW5hdGlvbkNvdW50ID09IDApIHsK
ICAgICAgICAgVk0mIHZtID0gdGhpcy0+dm0oKTsKLSAgICAgICAgaWYgKG1fc3VzcGVuZGVkVGVy
bWluYXRpb25FeGNlcHRpb24gfHwgdm0udGVybWluYXRpb25JblByb2dyZXNzKCkpCi0gICAgICAg
ICAgICB2bS5zZXRFeGNlcHRpb24odm0udGVybWluYXRpb25FeGNlcHRpb24oKSk7CisgICAgICAg
IGlmIChtX3N1c3BlbmRlZFRlcm1pbmF0aW9uRXhjZXB0aW9uCisgICAgICAgICAgICB8fCAoKGFj
dGlvbiA9PSBEZWZlclVudGlsRW5kT2ZTY29wZSkgJiYgdm0udGVybWluYXRpb25JblByb2dyZXNz
KCkpKQorICAgICAgICAgICAgdm0udGhyb3dUZXJtaW5hdGlvbkV4Y2VwdGlvbigpOworICAgICAg
ICBlbHNlIGlmICgoYWN0aW9uID09IERlZmVyRm9yQVdoaWxlKSAmJiB2bS50ZXJtaW5hdGlvbklu
UHJvZ3Jlc3MoKSkKKyAgICAgICAgICAgIHNldFRyYXBCaXQoTmVlZFRlcm1pbmF0aW9uKTsgLy8g
TGV0IHRoZSBuZXh0IHRyYXAgY2hlY2sgaGFuZGxlIGl0LgogICAgIH0KIH0KIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuaAkocmV2aXNpb24gMjc1OTY1KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xOTEsOSArMTkxLDE0IEBAIHB1YmxpYzoKICAgICBib29sIG5lZWRIYW5kbGluZyhCaXRGaWVs
ZCBtYXNrKSBjb25zdCB7IHJldHVybiBtX3RyYXBCaXRzLmxvYWRSZWxheGVkKCkgJiBtYXNrOyB9
CiAgICAgdm9pZCogdHJhcEJpdHNBZGRyZXNzKCkgeyByZXR1cm4gJm1fdHJhcEJpdHM7IH0KIAor
ICAgIGVudW0gRGVmZXJBY3Rpb24geworICAgICAgICBEZWZlckZvckFXaGlsZSwKKyAgICAgICAg
RGVmZXJVbnRpbEVuZE9mU2NvcGUKKyAgICB9OworCiAgICAgYm9vbCBpc0RlZmVycmluZ1Rlcm1p
bmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZWZlclRlcm1pbmF0aW9uQ291bnQ7IH0KLSAgICBK
U19FWFBPUlRfUFJJVkFURSB2b2lkIGRlZmVyVGVybWluYXRpb24oKTsKLSAgICBKU19FWFBPUlRf
UFJJVkFURSB2b2lkIHVuZG9EZWZlclRlcm1pbmF0aW9uKCk7CisgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBkZWZlclRlcm1pbmF0aW9uKERlZmVyQWN0aW9uKTsKKyAgICBKU19FWFBPUlRfUFJJ
VkFURSB2b2lkIHVuZG9EZWZlclRlcm1pbmF0aW9uKERlZmVyQWN0aW9uKTsKIAogICAgIHZvaWQg
bm90aWZ5R3JhYkFsbExvY2tzKCkKICAgICB7Cg==
</data>
<flag name="review"
          id="446200"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
      

    </bug>

</bugzilla>