<?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>208976</bug_id>
          
          <creation_ts>2020-03-11 22:58:25 -0700</creation_ts>
          <short_desc>Catch parameters must not be lexically redeclared</short_desc>
          <delta_ts>2020-03-23 11:24:12 -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="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <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>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1629061</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-11 22:58:25 -0700</bug_when>
    <thetext>Catch parameters must not be lexically redeclared</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629065</commentid>
    <comment_count>1</comment_count>
      <attachid>393344</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-11 23:17:22 -0700</bug_when>
    <thetext>Created attachment 393344
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629069</commentid>
    <comment_count>2</comment_count>
      <attachid>393344</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-11 23:21:44 -0700</bug_when>
    <thetext>Comment on attachment 393344
Patch

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

&gt; Source/JavaScriptCore/parser/Parser.h:1648
&gt; -    template &lt;class TreeBuilder&gt; TreeStatement parseBlockStatement(TreeBuilder&amp;);
&gt; +    template &lt;class TreeBuilder&gt; TreeStatement parseBlockStatement(TreeBuilder&amp;, bool isCatchBlock = false);

I know this isn&apos;t the greatest, but if we don&apos;t mark the catch block scope itself, our error checking would blimp out to something like this:

    if (scope.hasContainingScope()) {
        ScopeRef containingScope = scope.containingScope();
        if (containingScope-&gt;catchParameterScopeType() != CatchParameterScopeType::None &amp;&amp; containingScope-&gt;hasLexicallyDeclaredVariable(*ident))
            return DeclarationResult::InvalidDuplicateDeclaration;
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630542</commentid>
    <comment_count>3</comment_count>
      <attachid>393344</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-03-16 16:36:55 -0700</bug_when>
    <thetext>Comment on attachment 393344
Patch

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

&gt;&gt; Source/JavaScriptCore/parser/Parser.h:1648
&gt;&gt; +    template &lt;class TreeBuilder&gt; TreeStatement parseBlockStatement(TreeBuilder&amp;, bool isCatchBlock = false);
&gt; 
&gt; I know this isn&apos;t the greatest, but if we don&apos;t mark the catch block scope itself, our error checking would blimp out to something like this:
&gt; 
&gt;     if (scope.hasContainingScope()) {
&gt;         ScopeRef containingScope = scope.containingScope();
&gt;         if (containingScope-&gt;catchParameterScopeType() != CatchParameterScopeType::None &amp;&amp; containingScope-&gt;hasLexicallyDeclaredVariable(*ident))
&gt;             return DeclarationResult::InvalidDuplicateDeclaration;
&gt;     }

Why can&apos;t we just use the catch parameter&apos;s scope as the block&apos;s scope?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630545</commentid>
    <comment_count>4</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-16 16:43:59 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #3)
&gt; Why can&apos;t we just use the catch parameter&apos;s scope as the block&apos;s scope?

I tried that briefly but it seemed like the very test you fixed in bug 189914 was expecting them to be separate. Looking more closely now though, I feel like this shouldn&apos;t be the case, so maybe I had something else mistaken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630971</commentid>
    <comment_count>5</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-17 17:40:01 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #4)
&gt; (In reply to Keith Miller from comment #3)
&gt; &gt; Why can&apos;t we just use the catch parameter&apos;s scope as the block&apos;s scope?
&gt; 
&gt; I tried that briefly but it seemed like the very test you fixed in bug
&gt; 189914 was expecting them to be separate. Looking more closely now though, I
&gt; feel like this shouldn&apos;t be the case, so maybe I had something else mistaken.

So that *particular* test failing was my own mistake, but there is a neighboring test which specifically ensures that the param scope is separate from the block scope:
https://github.com/tc39/test262/blob/master/test/language/statements/try/scope-catch-block-lex-open.js

Was a good exercise to verify though. :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631828</commentid>
    <comment_count>6</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-19 14:24:29 -0700</bug_when>
    <thetext>Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632942</commentid>
    <comment_count>7</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-03-23 11:18:38 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #5)
&gt; (In reply to Ross Kirsling from comment #4)
&gt; &gt; (In reply to Keith Miller from comment #3)
&gt; &gt; &gt; Why can&apos;t we just use the catch parameter&apos;s scope as the block&apos;s scope?
&gt; &gt; 
&gt; &gt; I tried that briefly but it seemed like the very test you fixed in bug
&gt; &gt; 189914 was expecting them to be separate. Looking more closely now though, I
&gt; &gt; feel like this shouldn&apos;t be the case, so maybe I had something else mistaken.
&gt; 
&gt; So that *particular* test failing was my own mistake, but there is a
&gt; neighboring test which specifically ensures that the param scope is separate
&gt; from the block scope:
&gt; https://github.com/tc39/test262/blob/master/test/language/statements/try/
&gt; scope-catch-block-lex-open.js
&gt; 
&gt; Was a good exercise to verify though. :P

Ahh, lame, I guess that makes sense though...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632943</commentid>
    <comment_count>8</comment_count>
      <attachid>393344</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-03-23 11:19:21 -0700</bug_when>
    <thetext>Comment on attachment 393344
Patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632944</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-23 11:23:56 -0700</bug_when>
    <thetext>Committed r258861: &lt;https://trac.webkit.org/changeset/258861&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 393344.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632945</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-23 11:24:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/60783189&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393344</attachid>
            <date>2020-03-11 23:17:22 -0700</date>
            <delta_ts>2020-03-23 11:23:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208976-20200311231721.patch</filename>
            <type>text/plain</type>
            <size>9743</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MTIxZjk2N2JjZTdjNWNiNzc5ZjU1ODlmZDY5MzhiNWRlYmJjYTViLi5lN2IxMmNjY2E1MjlmNTEz
ZTdkNTk1YjNlMjM3ZDdhZDY4ZDViMTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAyMC0wMy0xMSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgQ2F0Y2ggcGFyYW1ldGVycyBtdXN0IG5vdCBiZSBsZXhpY2FsbHkg
cmVkZWNsYXJlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA4OTc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRnJvbSBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRyeS1zdGF0ZW1lbnQtc3RhdGlj
LXNlbWFudGljcy1lYXJseS1lcnJvcnM6CisgICAgICAgICAgQ2F0Y2ggOiBjYXRjaCAoIENhdGNo
UGFyYW1ldGVyICkgQmxvY2sKKyAgICAgICAgICAgIEl0IGlzIGEgU3ludGF4IEVycm9yIGlmIGFu
eSBlbGVtZW50IG9mIHRoZSBCb3VuZE5hbWVzIG9mIENhdGNoUGFyYW1ldGVyCisgICAgICAgICAg
ICBhbHNvIG9jY3VycyBpbiB0aGUgTGV4aWNhbGx5RGVjbGFyZWROYW1lcyBvZiBCbG9jay4KKwor
ICAgICAgICBJbiBvdGhlciB3b3JkcywgbGV0L2NvbnN0L2NsYXNzL2Z1bmN0aW9uIGRlY2xhcmF0
aW9ucyBpbiB0aGUgaW1tZWRpYXRlIGNhdGNoIGJsb2NrIHNjb3BlCisgICAgICAgIG11c3Qgbm90
IHNoYWRvdyBjYXRjaCBwYXJhbWV0ZXJzLgorCisgICAgICAgICogcGFyc2VyL1BhcnNlci5jcHA6
CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVRyeVN0YXRlbWVudCk6Cisg
ICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUJsb2NrU3RhdGVtZW50KToKKyAg
ICAgICAgKiBwYXJzZXIvUGFyc2VyLmg6CisgICAgICAgIChKU0M6OlNjb3BlOjpTY29wZSk6Cisg
ICAgICAgIChKU0M6OlNjb3BlOjpzZXRJc0NhdGNoQmxvY2tTY29wZSk6IEFkZGVkLgorICAgICAg
ICAoSlNDOjpTY29wZTo6aXNDYXRjaEJsb2NrU2NvcGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6
UGFyc2VyOjpkZWNsYXJlVmFyaWFibGUpOgorICAgICAgICAoSlNDOjpQYXJzZXI6OmRlY2xhcmVG
dW5jdGlvbik6CisKIDIwMjAtMDMtMTEgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgVGVzdDI2Mi1ydW5uZXIgc2hvdWxkIGFsd2F5cyBjb25zaWRlciBj
cmFzaGVzIGFzIG5ldyBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIu
Y3BwCmluZGV4IDJmNzRjNjAyZGFkNTJmYzBmODE4NTk3MmM3MjRmYmYzZjczYmEyNWUuLjcxNzkx
MWVmMjU3NmQ3ZWYyYTVjMGY2NjRlOTdhZDUyOWYxNjg3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTE3NzksNyArMTc3OSw4IEBAIHRlbXBsYXRlIDxjbGFz
cyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWVudCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VUcnlT
dGF0ZW1lbnQoCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBoYW5kbGVQcm9kdWN0aW9uT3JG
YWlsKENMT1NFUEFSRU4sICIpIiwgImVuZCIsICInY2F0Y2gnIHRhcmdldCIpOwogICAgICAgICAg
ICAgbWF0Y2hPckZhaWwoT1BFTkJSQUNFLCAiRXhwZWN0ZWQgZXhjZXB0aW9uIGhhbmRsZXIgdG8g
YmUgYSBibG9jayBzdGF0ZW1lbnQiKTsKLSAgICAgICAgICAgIGNhdGNoQmxvY2sgPSBwYXJzZUJs
b2NrU3RhdGVtZW50KGNvbnRleHQpOworICAgICAgICAgICAgY29uc3RleHByIGJvb2wgaXNDYXRj
aEJsb2NrID0gdHJ1ZTsKKyAgICAgICAgICAgIGNhdGNoQmxvY2sgPSBwYXJzZUJsb2NrU3RhdGVt
ZW50KGNvbnRleHQsIGlzQ2F0Y2hCbG9jayk7CiAgICAgICAgICAgICBmYWlsSWZGYWxzZShjYXRj
aEJsb2NrLCAiVW5hYmxlIHRvIHBhcnNlICdjYXRjaCcgYmxvY2siKTsKICAgICAgICAgICAgIGNh
dGNoRW52aXJvbm1lbnQgPSBjYXRjaFNjb3BlLT5maW5hbGl6ZUxleGljYWxFbnZpcm9ubWVudCgp
OwogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWlkZW50IHx8IChjYXRjaEVudmlyb25tZW50
LnNpemUoKSA9PSAxICYmIGNhdGNoRW52aXJvbm1lbnQuY29udGFpbnMoaWRlbnQtPmltcGwoKSkp
KTsKQEAgLTE4MTIsNyArMTgxMyw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJl
ZVN0YXRlbWVudCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VEZWJ1Z2dlclN0YXRlCiB9CiAKIHRl
bXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+Ci10ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+
IFRyZWVTdGF0ZW1lbnQgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQmxvY2tTdGF0ZW1lbnQoVHJl
ZUJ1aWxkZXImIGNvbnRleHQpCit0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0
ZW1lbnQgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQmxvY2tTdGF0ZW1lbnQoVHJlZUJ1aWxkZXIm
IGNvbnRleHQsIGJvb2wgaXNDYXRjaEJsb2NrKQogewogICAgIEFTU0VSVChtYXRjaChPUEVOQlJB
Q0UpKTsKIApAQCAtMTgyNCw2ICsxODI1LDggQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVy
PiBUcmVlU3RhdGVtZW50IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUJsb2NrU3RhdGVtZW4KICAg
ICAgICAgU2NvcGVSZWYgbmV3U2NvcGUgPSBwdXNoU2NvcGUoKTsKICAgICAgICAgbmV3U2NvcGUt
PnNldElzTGV4aWNhbFNjb3BlKCk7CiAgICAgICAgIG5ld1Njb3BlLT5wcmV2ZW50VmFyRGVjbGFy
YXRpb25zKCk7CisgICAgICAgIGlmIChpc0NhdGNoQmxvY2spCisgICAgICAgICAgICBuZXdTY29w
ZS0+c2V0SXNDYXRjaEJsb2NrU2NvcGUoKTsKICAgICAgICAgbGV4aWNhbFNjb3BlLnNldElzVmFs
aWQobmV3U2NvcGUsIHRoaXMpOwogICAgIH0KICAgICBKU1Rva2VuTG9jYXRpb24gbG9jYXRpb24o
dG9rZW5Mb2NhdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCmluZGV4
IDc5ZWEwOTY2ZGI2MjQ1OTRmMmFjMmMzOGNmODRiYzNiYzM2ZWMzNWQuLmMyOWRlZDY0OGNiYzk4
NTZiMzk4MWQxMzk1N2Y4OGJhYzg1YjBkMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Q
YXJzZXIuaApAQCAtMTc2LDYgKzE3Niw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2lzTGV4aWNh
bFNjb3BlKGZhbHNlKQogICAgICAgICAsIG1faXNHbG9iYWxDb2RlU2NvcGUoZmFsc2UpCiAgICAg
ICAgICwgbV9pc1NpbXBsZUNhdGNoUGFyYW1ldGVyU2NvcGUoZmFsc2UpCisgICAgICAgICwgbV9p
c0NhdGNoQmxvY2tTY29wZShmYWxzZSkKICAgICAgICAgLCBtX2lzRnVuY3Rpb25Cb3VuZGFyeShm
YWxzZSkKICAgICAgICAgLCBtX2lzVmFsaWRTdHJpY3RNb2RlKHRydWUpCiAgICAgICAgICwgbV9o
YXNBcmd1bWVudHMoZmFsc2UpCkBAIC0yOTksNiArMzAwLDkgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0SXNTaW1wbGVDYXRjaFBhcmFtZXRlclNjb3BlKCkgeyBtX2lzU2ltcGxlQ2F0Y2hQYXJhbWV0
ZXJTY29wZSA9IHRydWU7IH0KICAgICBib29sIGlzU2ltcGxlQ2F0Y2hQYXJhbWV0ZXJTY29wZSgp
IHsgcmV0dXJuIG1faXNTaW1wbGVDYXRjaFBhcmFtZXRlclNjb3BlOyB9CiAKKyAgICB2b2lkIHNl
dElzQ2F0Y2hCbG9ja1Njb3BlKCkgeyBtX2lzQ2F0Y2hCbG9ja1Njb3BlID0gdHJ1ZTsgfQorICAg
IGJvb2wgaXNDYXRjaEJsb2NrU2NvcGUoKSB7IHJldHVybiBtX2lzQ2F0Y2hCbG9ja1Njb3BlOyB9
CisKICAgICB2b2lkIHNldElzTGV4aWNhbFNjb3BlKCkgCiAgICAgeyAKICAgICAgICAgbV9pc0xl
eGljYWxTY29wZSA9IHRydWU7CkBAIC04MjksNiArODMzLDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1faXNMZXhpY2FsU2NvcGU7CiAgICAgYm9vbCBtX2lzR2xvYmFsQ29kZVNjb3BlOwogICAgIGJv
b2wgbV9pc1NpbXBsZUNhdGNoUGFyYW1ldGVyU2NvcGU7CisgICAgYm9vbCBtX2lzQ2F0Y2hCbG9j
a1Njb3BlOwogICAgIGJvb2wgbV9pc0Z1bmN0aW9uQm91bmRhcnk7CiAgICAgYm9vbCBtX2lzVmFs
aWRTdHJpY3RNb2RlOwogICAgIGJvb2wgbV9oYXNBcmd1bWVudHM7CkBAIC0xMjgwLDcgKzEyODUs
MTEgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKCFtX2xleGVyLT5pc1JlcGFyc2luZ0Z1bmN0aW9u
KCkgJiYgbV9zdGF0ZW1lbnREZXB0aCA9PSAxICYmIChoYXNEZWNsYXJlZFBhcmFtZXRlcigqaWRl
bnQpIHx8IGhhc0RlY2xhcmVkVmFyaWFibGUoKmlkZW50KSkpCiAgICAgICAgICAgICByZXR1cm4g
RGVjbGFyYXRpb25SZXN1bHQ6OkludmFsaWREdXBsaWNhdGVEZWNsYXJhdGlvbjsKIAotICAgICAg
ICByZXR1cm4gY3VycmVudExleGljYWxEZWNsYXJhdGlvblNjb3BlKCktPmRlY2xhcmVMZXhpY2Fs
VmFyaWFibGUoaWRlbnQsIHR5cGUgPT0gRGVjbGFyYXRpb25UeXBlOjpDb25zdERlY2xhcmF0aW9u
LCBpbXBvcnRUeXBlKTsKKyAgICAgICAgU2NvcGVSZWYgc2NvcGUgPSBjdXJyZW50TGV4aWNhbERl
Y2xhcmF0aW9uU2NvcGUoKTsKKyAgICAgICAgaWYgKHNjb3BlLT5pc0NhdGNoQmxvY2tTY29wZSgp
ICYmIHNjb3BlLmNvbnRhaW5pbmdTY29wZSgpLT5oYXNMZXhpY2FsbHlEZWNsYXJlZFZhcmlhYmxl
KCppZGVudCkpCisgICAgICAgICAgICByZXR1cm4gRGVjbGFyYXRpb25SZXN1bHQ6OkludmFsaWRE
dXBsaWNhdGVEZWNsYXJhdGlvbjsKKworICAgICAgICByZXR1cm4gc2NvcGUtPmRlY2xhcmVMZXhp
Y2FsVmFyaWFibGUoaWRlbnQsIHR5cGUgPT0gRGVjbGFyYXRpb25UeXBlOjpDb25zdERlY2xhcmF0
aW9uLCBpbXBvcnRUeXBlKTsKICAgICB9CiAKICAgICBzdGQ6OnBhaXI8RGVjbGFyYXRpb25SZXN1
bHRNYXNrLCBTY29wZVJlZj4gZGVjbGFyZUZ1bmN0aW9uKGNvbnN0IElkZW50aWZpZXIqIGlkZW50
KQpAQCAtMTI5NSw2ICsxMzA0LDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gc3Rk
OjptYWtlX3BhaXIodmFyaWFibGVTY29wZS0+ZGVjbGFyZUZ1bmN0aW9uKGlkZW50LCBkZWNsYXJl
QXNWYXIsIGlzU2xvcHB5TW9kZUhvaXN0aW5nQ2FuZGlkYXRlKSwgdmFyaWFibGVTY29wZSk7CiAg
ICAgICAgIH0KIAorICAgICAgICBib29sIGRlY2xhcmVBc1ZhciA9IGZhbHNlOworICAgICAgICBT
Y29wZVJlZiBsZXhpY2FsVmFyaWFibGVTY29wZSA9IGN1cnJlbnRMZXhpY2FsRGVjbGFyYXRpb25T
Y29wZSgpOworICAgICAgICBpZiAobGV4aWNhbFZhcmlhYmxlU2NvcGUtPmlzQ2F0Y2hCbG9ja1Nj
b3BlKCkgJiYgbGV4aWNhbFZhcmlhYmxlU2NvcGUuY29udGFpbmluZ1Njb3BlKCktPmhhc0xleGlj
YWxseURlY2xhcmVkVmFyaWFibGUoKmlkZW50KSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1h
a2VfcGFpcihEZWNsYXJhdGlvblJlc3VsdDo6SW52YWxpZER1cGxpY2F0ZURlY2xhcmF0aW9uLCBs
ZXhpY2FsVmFyaWFibGVTY29wZSk7CisKICAgICAgICAgaWYgKCFzdHJpY3RNb2RlKCkpIHsKICAg
ICAgICAgICAgIEFTU0VSVChjdXJyZW50U2NvcGUoKS0+aXNGdW5jdGlvbigpIHx8IGNsb3Nlc3RQ
YXJlbnRPcmRpbmFyeUZ1bmN0aW9uTm9uTGV4aWNhbFNjb3BlKCktPmlzRXZhbENvbnRleHQoKSk7
CiAKQEAgLTEzMDYsMTggKzEzMjAsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8vIHRoZXJl
IGFyZSBpcyBhIGxldC9jbGFzcy9jb25zdCB3aXRoIHRoZSBzYW1lIG5hbWUpLiBOb3RlIHRoYXQg
dGhpcyBtZWFuIHdlIG9ubHkgZG8gdGhlICJ2YXIiIGhvaXN0aW5nIAogICAgICAgICAgICAgLy8g
YmluZGluZyBpZiB0aGUgYmxvY2sgZXZhbHVhdGVzLiBGb3IgZXhhbXBsZSwgdGhpcyBtZWFucyB3
ZSB3b250IHdvbid0IHBlcmZvcm0gdGhlIGJpbmRpbmcgaWYgaXQncyBpbnNpZGUKICAgICAgICAg
ICAgIC8vIHRoZSB1bnRha2VuIGJyYW5jaCBvZiBhbiBpZiBzdGF0ZW1lbnQuCi0gICAgICAgICAg
ICBib29sIGRlY2xhcmVBc1ZhciA9IGZhbHNlOwogICAgICAgICAgICAgYm9vbCBpc1Nsb3BweU1v
ZGVIb2lzdGluZ0NhbmRpZGF0ZSA9IHRydWU7Ci0gICAgICAgICAgICBTY29wZVJlZiBsZXhpY2Fs
VmFyaWFibGVTY29wZSA9IGN1cnJlbnRMZXhpY2FsRGVjbGFyYXRpb25TY29wZSgpOwogICAgICAg
ICAgICAgU2NvcGVSZWYgdmFyU2NvcGUgPSBjdXJyZW50VmFyaWFibGVTY29wZSgpOwogICAgICAg
ICAgICAgdmFyU2NvcGUtPmFkZFNsb3BweU1vZGVIb2lzdGFibGVGdW5jdGlvbkNhbmRpZGF0ZShp
ZGVudCk7CiAgICAgICAgICAgICBBU1NFUlQodmFyU2NvcGUgIT0gbGV4aWNhbFZhcmlhYmxlU2Nv
cGUpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGxleGljYWxWYXJpYWJsZVNj
b3BlLT5kZWNsYXJlRnVuY3Rpb24oaWRlbnQsIGRlY2xhcmVBc1ZhciwgaXNTbG9wcHlNb2RlSG9p
c3RpbmdDYW5kaWRhdGUpLCBsZXhpY2FsVmFyaWFibGVTY29wZSk7CiAgICAgICAgIH0KIAotICAg
ICAgICBib29sIGRlY2xhcmVBc1ZhciA9IGZhbHNlOwogICAgICAgICBib29sIGlzU2xvcHB5TW9k
ZUhvaXN0aW5nQ2FuZGlkYXRlID0gZmFsc2U7Ci0gICAgICAgIFNjb3BlUmVmIGxleGljYWxWYXJp
YWJsZVNjb3BlID0gY3VycmVudExleGljYWxEZWNsYXJhdGlvblNjb3BlKCk7CiAgICAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfcGFpcihsZXhpY2FsVmFyaWFibGVTY29wZS0+ZGVjbGFyZUZ1bmN0aW9u
KGlkZW50LCBkZWNsYXJlQXNWYXIsIGlzU2xvcHB5TW9kZUhvaXN0aW5nQ2FuZGlkYXRlKSwgbGV4
aWNhbFZhcmlhYmxlU2NvcGUpOwogICAgIH0KIApAQCAtMTYzNSw3ICsxNjQ1LDcgQEAgcHJpdmF0
ZToKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lbnQgcGFyc2VF
eHByZXNzaW9uU3RhdGVtZW50KFRyZWVCdWlsZGVyJik7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRy
ZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50IHBhcnNlRXhwcmVzc2lvbk9yTGFiZWxTdGF0ZW1lbnQo
VHJlZUJ1aWxkZXImLCBib29sIGFsbG93RnVuY3Rpb25EZWNsYXJhdGlvbkFzU3RhdGVtZW50KTsK
ICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lbnQgcGFyc2VJZlN0
YXRlbWVudChUcmVlQnVpbGRlciYpOwotICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4g
VHJlZVN0YXRlbWVudCBwYXJzZUJsb2NrU3RhdGVtZW50KFRyZWVCdWlsZGVyJik7CisgICAgdGVt
cGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50IHBhcnNlQmxvY2tTdGF0ZW1l
bnQoVHJlZUJ1aWxkZXImLCBib29sIGlzQ2F0Y2hCbG9jayA9IGZhbHNlKTsKICAgICB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIHBhcnNlRXhwcmVzc2lvbihUcmVl
QnVpbGRlciYpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Np
b24gcGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbihUcmVlQnVpbGRlciYsIEV4cHJlc3Npb25FcnJv
ckNsYXNzaWZpZXImKTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHBy
ZXNzaW9uIHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24oVHJlZUJ1aWxkZXImKTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmIzNzViZmI1
MmM4YmY3NGZkMzZmYWZlZTc2NzM4NDYyOWNjOGQzYi4uM2Y0OWIzOTM3OWUyMjI1Y2Y0OTNmNWQ0
ZDdkMTg3ZTFiNzM5OTFhZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMy0xMSAgUm9zcyBLaXJzbGlu
ZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CisKKyAgICAgICAgQ2F0Y2ggcGFyYW1ldGVycyBt
dXN0IG5vdCBiZSBsZXhpY2FsbHkgcmVkZWNsYXJlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4OTc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOgorICAg
ICAgICBNYXJrIGZvdXIgdGVzdCBjYXNlcyBhcyBwYXNzaW5nLgorCiAyMDIwLTAzLTExICBLZWl0
aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFRlc3QyNjItcnVu
bmVyIHNob3VsZCBhbHdheXMgY29uc2lkZXIgY3Jhc2hlcyBhcyBuZXcgZmFpbHVyZXMKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2
Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCA2MDk4MWIxNjQyYzNiNTk0MGU0YTQ1OGUzYWU2NDFj
YTM1OWQxMWNmLi5mYTg4ODBiOGMzYWQwNzgyYjRmODRiMTZlMTU5YTk5Nzg5MTM3M2I0IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90
ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC0zNjk3LDEyICszNjk3LDYgQEAgdGVzdC9sYW5n
dWFnZS9zdGF0ZW1lbnRzL3N3aXRjaC9zeW50YXgvcmVkZWNsYXJhdGlvbi92YXItbmFtZS1yZWRl
Y2xhcmF0aW9uLWF0dGUKIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9zd2l0Y2gvc3ludGF4L3Jl
ZGVjbGFyYXRpb24vdmFyLW5hbWUtcmVkZWNsYXJhdGlvbi1hdHRlbXB0LXdpdGgtZ2VuZXJhdG9y
LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBl
dmFsdWF0ZWQuJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3Vs
ZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy90cnkvZWFybHkt
Y2F0Y2gtZnVuY3Rpb24uanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBz
aG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBz
dGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9zdGF0ZW1l
bnRzL3RyeS9lYXJseS1jYXRjaC1sZXguanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0
YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2
MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwogdGVzdC9sYW5ndWFn
ZS9zdGF0ZW1lbnRzL3doaWxlL2xldC1hcnJheS13aXRoLW5ld2xpbmUuanM6CiAgIGRlZmF1bHQ6
ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCiB0ZXN0
L2xhbmd1YWdlL3N0YXRlbWVudHMvd2l0aC9sZXQtYXJyYXktd2l0aC1uZXdsaW5lLmpzOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>