<?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>80577</bug_id>
          
          <creation_ts>2012-03-07 23:51:56 -0800</creation_ts>
          <short_desc>Object.freeze broken on latest Nightly</short_desc>
          <delta_ts>2012-03-19 14:40: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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://es-lab.googlecode.com/svn/trunk/src/ses/explicit.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark S. Miller">erights</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>barraclough</cc>
    
    <cc>erights</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>573663</commentid>
    <comment_count>0</comment_count>
    <who name="Mark S. Miller">erights</who>
    <bug_when>2012-03-07 23:51:56 -0800</bug_when>
    <thetext>When executing the following three lines on Safari Version 5.1.3 (7534.53.10), the last correctly returned true. On WebKit Nightly Version 5.1.3 (7534.53.10, r110098), it gives false, which is wrong.

&gt; function foo(){}
&gt; Object.freeze(foo);
&gt; Object.isFrozen(foo);

The problem seems to be the prototype property. On WebKit Nightly

&gt; JSON.stringify(Object.getOwnPropertyDescriptor(foo, &apos;prototype&apos;))
{&quot;value&quot;:{},&quot;writable&quot;:true,&quot;enumerable&quot;:false,&quot;configurable&quot;:false}

On Safari, we instead get the correct &quot;writable&quot;:false

For some reason, it seems this same problem manifests differently on http://es-lab.googlecode.com/svn/trunk/src/ses/explicit.html

When freezing a particular function with a writable non-configurable prototype, this page now throws 

      &quot;TypeError: Attempting to change access mechanism for an unconfigurable property&quot; 

on this latest Nightly. It did not do so on last night&apos;s Nightly. From the nature of this symptom, I&apos;m not sure that the problem is with the &apos;prototype&apos; property specifically, since the error doesn&apos;t say what property it is complaining about. Regardless, it is never correct from Object.freeze itself to fail because of (non) configurability. All the state changes it causes are always allowed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574165</commentid>
    <comment_count>1</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-08 13:56:21 -0800</bug_when>
    <thetext>Ugh, will look into this.  I&apos;m guessing this is related to the fact the prototype property is added lazily, but haven&apos;t figured out exactly what went wrong here.

Cheers for the bug report Mark.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575404</commentid>
    <comment_count>2</comment_count>
      <attachid>131147</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-09 18:50:43 -0800</bug_when>
    <thetext>Created attachment 131147
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575809</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-11 11:58:25 -0700</bug_when>
    <thetext>Fixed in r110396</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576061</commentid>
    <comment_count>4</comment_count>
    <who name="Mark S. Miller">erights</who>
    <bug_when>2012-03-12 04:24:01 -0700</bug_when>
    <thetext>On r110411 visiting http://es-lab.googlecode.com/svn/trunk/src/ses/explicit.html I&apos;m still seeing

    TypeError: Attempting to change access mechanism for an unconfigurable property

thrown when freezing a function. Reopening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576207</commentid>
    <comment_count>5</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-12 10:00:52 -0700</bug_when>
    <thetext>Gah, I bet I know what this is.  The problem is probably preventExtension then freeze.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582212</commentid>
    <comment_count>6</comment_count>
      <attachid>132663</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-19 14:03:07 -0700</bug_when>
    <thetext>Created attachment 132663
More fixed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582272</commentid>
    <comment_count>7</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-19 14:40:12 -0700</bug_when>
    <thetext>Fixed in r111250 - last time I forgot to check http://eslab.googlecode.com/svn/trunk/src/ses/explicit.html - this time I did, &amp; looks like all is good, so hopefully this bug is fully fixed now!

Thanks for the bug report Mark, cheers, G.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131147</attachid>
            <date>2012-03-09 18:50:43 -0800</date>
            <delta_ts>2012-03-09 20:27:31 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>80577.patch</filename>
            <type>text/plain</type>
            <size>5244</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTEwMzU5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDEyLTAzLTA5ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBPYmplY3QuZnJlZXplIGJyb2tlbiBvbiBsYXRlc3QgTmlnaHRseQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA1NzcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJvYmxlbSBoZXJl
IGlzIHRoYXQgZGVsZXRlUHJvcGVydHkgcmVqZWN0cyBkZWxldGlvbiBvZiBwcm90b3R5cGUuCisg
ICAgICAgIFRoaXMgaXMgY29ycmVjdCBpbiBtb3N0IGNhc2VzLCBob3dldmVyIGRlZmluZU93blBy
b3BlcnkgaXMgcHJlc2VudGx5CisgICAgICAgIGltcGxlbWVudGVkIGludGVybmFsbHkgdG8gZW5z
dXJlIHRoZSBhdHRyaWJ1dGVzIGNoYW5nZSBieSBkZWxldGluZyB0aGUKKyAgICAgICAgb2xkIHBy
b3BlcnR5LCBhbmQgY3JlYXRpbmcgYSBuZXcgb25lLgorCisgICAgICAgICogcnVudGltZS9KU0Z1
bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6ZGVsZXRlUHJvcGVydHkpOgor
ICAgICAgICAgICAgLSBJZiBkZWxldGVQcm9wZXJ5IGlzIGNhbGxlZCB2aWEgZGVmaW5lT3duUHJv
cGVyeSwgYWxsb3cgb2xkIHByb3RvdHlwZSB0byBiZSByZW1vdmVkLgorCiAyMDEyLTAzLTA5ICBH
YXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBBcnJh
eS5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcgdmlzaXRzIGVsZW1lbnRzIGluIHdyb25nIG9yZGVy
IHVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDExMDMyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDgs
OSArMzQ4LDEyIEBAIHZvaWQgSlNGdW5jdGlvbjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1MKIGJv
b2wgSlNGdW5jdGlvbjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICBKU0Z1bmN0aW9uKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTRnVuY3Rpb24qPihjZWxsKTsKLSAgICBpZiAodGhpc09iamVj
dC0+aXNIb3N0RnVuY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5
KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci0gICAgaWYgKHByb3BlcnR5TmFtZSA9
PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYXJndW1lbnRzIHx8IHByb3BlcnR5TmFtZSA9PSBleGVj
LT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoIHx8IHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkucHJvdG90eXBlIHx8IHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkuY2FsbGVyKQorICAgIC8vIEZvciBub24taG9zdCBmdW5jdGlvbnMsIGRvbid0IGxldCB0aGVz
ZSBwcm9wZXJ0aWVzIGJ5IGRlbGV0ZWQgLSBleGNlcHQgYnkgRGVmaW5lT3duUHJvcGVydHkuCisg
ICAgaWYgKCF0aGlzT2JqZWN0LT5pc0hvc3RGdW5jdGlvbigpICYmICFleGVjLT5nbG9iYWxEYXRh
KCkuaXNJbkRlZmluZU93blByb3BlcnR5KCkKKyAgICAgICAgJiYgKHByb3BlcnR5TmFtZSA9PSBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkuYXJndW1lbnRzCisgICAgICAgICAgICB8fCBwcm9wZXJ0eU5h
bWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aAorICAgICAgICAgICAgfHwgcHJvcGVy
dHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUKKyAgICAgICAgICAgIHx8
IHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVyKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0
LCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTEwMzU5KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTItMDMtMDkgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisg
ICAgICAgIE9iamVjdC5mcmVlemUgYnJva2VuIG9uIGxhdGVzdCBOaWdodGx5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDU3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9qcy9wcmV2ZW50RXh0
ZW5zaW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVzdHMvcHJl
dmVudEV4dGVuc2lvbnMuanM6CisgICAgICAgICAgICAtIEFkZGVkIHRlc3QgY2FzZXMuCisKIDIw
MTItMDMtMDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBVcGRh
dGUgYmFzZWxpbmUgYWZ0ZXIgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTEwMzUy
IHRvIHNob3cKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcHJldmVudEV4dGVuc2lvbnMtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcHJldmVudEV4dGVu
c2lvbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTAzMjkpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2pzL3ByZXZlbnRFeHRlbnNpb25zLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTgs
OCArMTgsMTMgQEAgUEFTUyB2YXIgYXJyID0gT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKAogUEFT
UyB2YXIgYXJyID0gT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKFtdKTsgYXJyWzBdID0gNDI7IGFy
ci5sZW5ndGggaXMgMAogUEFTUyAidXNlIHN0cmljdCI7IHZhciBhcnIgPSBPYmplY3QucHJldmVu
dEV4dGVuc2lvbnMoW10pOyBhcnJbMF0gPSA0MjsgYXJyWzBdIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IEF0dGVtcHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJvcGVydHkuLgogUEFTUyBv
YmouZm9vIGlzIDEKK1BBU1MgT2JqZWN0LmlzRnJvemVuKGZ1bmMpIGlzIHRydWUKK1BBU1MgZnVu
Yy5wcm90b3R5cGUgPT09IDQyIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZnVuYywgInByb3RvdHlwZSIpLndyaXRhYmxlIGlzIGZhbHNlCitQQVNTIE9iamVj
dC5pc0Zyb3plbihhcnJheSkgaXMgdHJ1ZQogUEFTUyBhcnJheVswXSBpcyAwCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYXJyYXksICJsZW5ndGgiKS53cml0YWJsZSBpcyBm
YWxzZQorUEFTUyBPYmplY3QuaXNGcm96ZW4oYXJncykgaXMgdHJ1ZQogUEFTUyBhcmdzWzBdIGlz
IDAKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhcmdzLCAibGVuZ3RoIiku
d3JpdGFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihh
cmdzLCAiY2FsbGVlIikud3JpdGFibGUgaXMgZmFsc2UKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
anMvc2NyaXB0LXRlc3RzL3ByZXZlbnRFeHRlbnNpb25zLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL3ByZXZlbnRFeHRlbnNpb25zLmpzCShyZXZpc2lv
biAxMTAzMjkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9wcmV2ZW50RXh0
ZW5zaW9ucy5qcwkod29ya2luZyBjb3B5KQpAQCAtODksMTQgKzg5LDIzIEBAIHZhciBvYmogPSBu
ZXcgQ29uc3RydWN0b3IoKTsKIG9iai5mb28gPSAyOwogc2hvdWxkQmUoJ29iai5mb28nLCAnMScp
OwogCisvLyBDaGVjayB0aGF0IGZyZWV6aW5nIGEgZnVuY3Rpb24gd29ya3MgY29ycmVjdGx5Lgor
dmFyIGZ1bmMgPSBmcmVlemUoZnVuY3Rpb24gZm9vKCl7fSk7CitzaG91bGRCZVRydWUoJ09iamVj
dC5pc0Zyb3plbihmdW5jKScpCitmdW5jLnByb3RvdHlwZSA9IDQyOworc2hvdWxkQmVGYWxzZSgn
ZnVuYy5wcm90b3R5cGUgPT09IDQyJyk7CitzaG91bGRCZUZhbHNlKCdPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGZ1bmMsICJwcm90b3R5cGUiKS53cml0YWJsZScpCisKIC8vIENoZWNr
IHRoYXQgZnJlZXppbmcgYXJyYXkgb2JqZWN0cyB3b3JrcyBjb3JyZWN0bHkuCiB2YXIgYXJyYXkg
PSBmcmVlemUoWzAsMSwyXSk7CitzaG91bGRCZVRydWUoJ09iamVjdC5pc0Zyb3plbihhcnJheSkn
KQogYXJyYXlbMF0gPSAzOwogc2hvdWxkQmUoJ2FycmF5WzBdJywgJzAnKTsKIHNob3VsZEJlRmFs
c2UoJ09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYXJyYXksICJsZW5ndGgiKS53cml0
YWJsZScpCiAKIC8vIENoZWNrIHRoYXQgZnJlZXppbmcgYXJndW1lbnRzIG9iamVjdHMgd29ya3Mg
Y29ycmVjdGx5LgogdmFyIGFyZ3MgPSBmcmVlemUoKGZ1bmN0aW9uKCl7IHJldHVybiBhcmd1bWVu
dHM7IH0pKDAsMSwyKSk7CitzaG91bGRCZVRydWUoJ09iamVjdC5pc0Zyb3plbihhcmdzKScpCiBh
cmdzWzBdID0gMzsKIHNob3VsZEJlKCdhcmdzWzBdJywgJzAnKTsKIHNob3VsZEJlRmFsc2UoJ09i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYXJncywgImxlbmd0aCIpLndyaXRhYmxlJykK
</data>
<flag name="review"
          id="134364"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132663</attachid>
            <date>2012-03-19 14:03:07 -0700</date>
            <delta_ts>2012-03-19 14:07:37 -0700</delta_ts>
            <desc>More fixed!</desc>
            <filename>80577.patch</filename>
            <type>text/plain</type>
            <size>13297</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTExMjM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDEyLTAzLTE5ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBPYmplY3QuZnJlZXplIGJyb2tlbiBvbiBsYXRlc3QgTmlnaHRseQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA1NzcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRpbWUvQXJndW1l
bnRzLmNwcDoKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpkZWZpbmVPd25Qcm9wZXJ0eSk6Cisg
ICAgICAgICAgICAtIGRlZmluZU93blByb3BlcnR5IHdhcyBjaGVja2luZyBmb3IgY29ycmVjdCBi
ZWhhdmlvdXIsIHByb3ZpZGVkIHRoYXQgbGVuZ3RoL2NhbGxlZSBoYWRuJ3QKKyAgICAgICAgICAg
IGJlZW4gb3ZlcnJyaWRkZW4uIGluc3RlYWQsIGp1c3QgcmVpZnkgbGVuZ3RoL2NhbGxlZSAmIHJl
bHkgb24gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5LgorICAgICAgICAqIHJ1bnRpbWUvSlNG
dW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmRlZmluZU93blByb3BlcnR5
KToKKyAgICAgICAgICAgIC0gZm9yIGFyZ3VtZW50cy9jYWxsZXIvbGVuZ3RoIHByb3BlcnRpZXMs
IGRlZmluZU93blByb3BlcnR5IHdhcyBpbmNvcnJlY3RseSBhc3NlcnRpbmcgdGhhdAorICAgICAg
ICAgICAgdGhlIG9iamVjdCBtdXN0IGJlIGV4dGVuc2libGU7IHRoaXMgaXMgaW5jb3JyZWN0IHNp
bmNlIHRoZXNlIHByb3BlcnRpZXMgc2hvdWxkIGFscmVhZHkgZXhpc3QKKyAgICAgICAgICAgIG9u
IHRoZSBvYmplY3QuIEluIGFkZGl0aW9uLCBpdCB3YXMgYXNzZXJ0aW5nIHRoYXQgdGhlIGFyZ3Vt
ZW50cy9jYWxsZXIgdmFsdWVzIG11c3QgbWF0Y2ggdGhlCisgICAgICAgICAgICBjb3JyZXNwb25k
aW5nIG1hZ2ljIGRhdGEgcHJvcGVydGllcywgYnV0IGZvciBzdHJpY3QgbW9kZSBmdW5jdGlvbiB0
aGlzIGlzIGluY29ycmVjdC4gSW5zdGVhZCwKKyAgICAgICAgICAgIGp1c3QgcmVpZnkgdGhlIGFy
Z3VtZW50cy9jYWxsZXIgYWNjZXNzb3IgJiBkZWZlciB0byBKU09iamVjdDo6ZGVmaW5lT3duUHJv
cGVydHkuCisKIDIwMTItMDMtMTkgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CiAKICAgICAgICAg
W0JsYWNrQmVycnldIEltcGxlbWVudCBPU0FsbG9jYXRvcjo6Y29tbWl0L2RlY29tbWl0IGluIHRo
ZSBjb3JyZWN0IHdheQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1
bWVudHMuY3BwCShyZXZpc2lvbiAxMTEyMjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Bcmd1bWVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDYsNiArMzA2LDcgQEAgYm9v
bCBBcmd1bWVudHM6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZQogICAgIGJvb2wgaXNBcnJheUlu
ZGV4OwogICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUudG9BcnJheUluZGV4KGlzQXJyYXlJ
bmRleCk7CiAgICAgaWYgKGlzQXJyYXlJbmRleCAmJiBpIDwgdGhpc09iamVjdC0+ZC0+bnVtQXJn
dW1lbnRzKSB7CisgICAgICAgIG9iamVjdC0+cHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwg
cHJvcGVydHlOYW1lLCB0aGlzT2JqZWN0LT5hcmd1bWVudChpKS5nZXQoKSwgMCk7CiAgICAgICAg
IGlmICghQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUs
IGRlc2NyaXB0b3IsIHNob3VsZFRocm93KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApA
QCAtMzMxLDM1ICszMzIsMTYgQEAgYm9vbCBBcmd1bWVudHM6OmRlZmluZU93blByb3BlcnR5KEpT
T2JqZQogICAgICAgICAgICAgICAgICAgICB0aGlzT2JqZWN0LT5kLT5kZWxldGVkQXJndW1lbnRz
W2ldID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1l
cygpLmxlbmd0aCAmJiAhdGhpc09iamVjdC0+ZC0+b3ZlcnJvZGVMZW5ndGgpIHsKKyAgICAgICAg
dGhpc09iamVjdC0+cHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1lLCBq
c051bWJlcih0aGlzT2JqZWN0LT5kLT5udW1Bcmd1bWVudHMpLCBEb250RW51bSk7CiAgICAgICAg
IHRoaXNPYmplY3QtPmQtPm92ZXJyb2RlTGVuZ3RoID0gdHJ1ZTsKLSAgICAgICAgaWYgKCFkZXNj
cmlwdG9yLmlzQWNjZXNzb3JEZXNjcmlwdG9yKCkpIHsKLSAgICAgICAgICAgIGlmICghZGVzY3Jp
cHRvci52YWx1ZSgpKQotICAgICAgICAgICAgICAgIGRlc2NyaXB0b3Iuc2V0VmFsdWUoanNOdW1i
ZXIodGhpc09iamVjdC0+ZC0+bnVtQXJndW1lbnRzKSk7Ci0gICAgICAgICAgICBpZiAoIWRlc2Ny
aXB0b3IuY29uZmlndXJhYmxlUHJlc2VudCgpKQotICAgICAgICAgICAgICAgIGRlc2NyaXB0b3Iu
c2V0Q29uZmlndXJhYmxlKHRydWUpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghZGVzY3JpcHRv
ci5jb25maWd1cmFibGVQcmVzZW50KCkpCi0gICAgICAgICAgICBkZXNjcmlwdG9yLnNldENvbmZp
Z3VyYWJsZSh0cnVlKTsKLSAgICB9Ci0KLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5jYWxsZWUgJiYgIXRoaXNPYmplY3QtPmQtPm92ZXJyb2RlQ2FsbGVlKSB7
CisgICAgfSBlbHNlIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNh
bGxlZSAmJiAhdGhpc09iamVjdC0+ZC0+b3ZlcnJvZGVDYWxsZWUpIHsKKyAgICAgICAgdGhpc09i
amVjdC0+cHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1lLCB0aGlzT2Jq
ZWN0LT5kLT5jYWxsZWUuZ2V0KCksIERvbnRFbnVtKTsKICAgICAgICAgdGhpc09iamVjdC0+ZC0+
b3ZlcnJvZGVDYWxsZWUgPSB0cnVlOwotICAgICAgICBpZiAoIWRlc2NyaXB0b3IuaXNBY2Nlc3Nv
ckRlc2NyaXB0b3IoKSkgewotICAgICAgICAgICAgaWYgKCFkZXNjcmlwdG9yLnZhbHVlKCkpCi0g
ICAgICAgICAgICAgICAgZGVzY3JpcHRvci5zZXRWYWx1ZSh0aGlzT2JqZWN0LT5kLT5jYWxsZWUu
Z2V0KCkpOwotICAgICAgICAgICAgaWYgKCFkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZVByZXNlbnQo
KSkKLSAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLnNldENvbmZpZ3VyYWJsZSh0cnVlKTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoIWRlc2NyaXB0b3IuY29uZmlndXJhYmxlUHJlc2VudCgpKQot
ICAgICAgICAgICAgZGVzY3JpcHRvci5zZXRDb25maWd1cmFibGUodHJ1ZSk7Ci0gICAgfQotCi0g
ICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVyICYmIHRo
aXNPYmplY3QtPmQtPmlzU3RyaWN0TW9kZSkKKyAgICB9IGVsc2UgaWYgKHByb3BlcnR5TmFtZSA9
PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVyICYmIHRoaXNPYmplY3QtPmQtPmlzU3RyaWN0
TW9kZSkKICAgICAgICAgdGhpc09iamVjdC0+Y3JlYXRlU3RyaWN0TW9kZUNhbGxlcklmTmVjZXNz
YXJ5KGV4ZWMpOwogCiAgICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwg
ZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAkocmV2aXNpb24gMTEx
MjIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM3MCw0NiArMzcwLDU1IEBAIGJvb2wgSlNGdW5jdGlvbjo6ZGVmaW5l
T3duUHJvcGVydHkoSlNPYmoKICAgICAgICAgLy8gZm9sbG93aW5nIHRoZSBydWxlcyBzZXQgb3V0
IGluIEVDTUEtMjYyIDguMTIuOS4KICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Q7CiAgICAgICAg
IHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotICAgIH0gZWxzZSBpZiAocHJvcGVydHlOYW1l
ID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMgfHwgcHJvcGVydHlOYW1lID09IGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGggfHwgcHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5jYWxsZXIpIHsKLSAgICAgICAgaWYgKCFvYmplY3QtPmlzRXh0ZW5zaWJsZSgp
KSB7Ci0gICAgICAgICAgICBpZiAodGhyb3dFeGNlcHRpb24pCi0gICAgICAgICAgICAgICAgdGhy
b3dFcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIkF0dGVtcHRpbmcgdG8gZGVmaW5l
IHByb3BlcnR5IG9uIG9iamVjdCB0aGF0IGlzIG5vdCBleHRlbnNpYmxlLiIpKTsKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoZGVzY3JpcHRvci5jb25m
aWd1cmFibGVQcmVzZW50KCkgJiYgZGVzY3JpcHRvci5jb25maWd1cmFibGUoKSkgewotICAgICAg
ICAgICAgaWYgKHRocm93RXhjZXB0aW9uKQotICAgICAgICAgICAgICAgIHRocm93RXJyb3IoZXhl
YywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJBdHRlbXB0aW5nIHRvIGNvbmZpZ3VyYWJsZSBhdHRy
aWJ1dGUgb2YgdW5jb25maWd1cmFibGUgcHJvcGVydHkuIikpOwotICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChkZXNjcmlwdG9yLmVudW1lcmFibGVQcmVz
ZW50KCkgJiYgZGVzY3JpcHRvci5lbnVtZXJhYmxlKCkpIHsKLSAgICAgICAgICAgIGlmICh0aHJv
d0V4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVR5cGVF
cnJvcihleGVjLCAiQXR0ZW1wdGluZyB0byBjaGFuZ2UgZW51bWVyYWJsZSBhdHRyaWJ1dGUgb2Yg
dW5jb25maWd1cmFibGUgcHJvcGVydHkuIikpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICB9Ci0gICAgICAgIGlmIChkZXNjcmlwdG9yLmlzQWNjZXNzb3JEZXNjcmlwdG9yKCkp
IHsKLSAgICAgICAgICAgIGlmICh0aHJvd0V4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICB0aHJv
d0Vycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiQXR0ZW1wdGluZyB0byBjaGFuZ2Ug
YWNjZXNzIG1lY2hhbmlzbSBmb3IgYW4gdW5jb25maWd1cmFibGUgcHJvcGVydHkuIikpOwotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJv
cGVydHkob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHRocm93RXhjZXB0
aW9uKTsKKyAgICB9CisKKyAgICBib29sIHZhbHVlQ2hlY2s7CisgICAgaWYgKHByb3BlcnR5TmFt
ZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYXJndW1lbnRzKSB7CisgICAgICAgIGlmICh0aGlz
T2JqZWN0LT5qc0V4ZWN1dGFibGUoKS0+aXNTdHJpY3RNb2RlKCkpIHsKKyAgICAgICAgICAgIGlm
ICghQmFzZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXNPYmplY3QsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgZGVzY3JpcHRvcikpCisgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+cHV0RGly
ZWN0QWNjZXNzb3IoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWUsIHRoaXNPYmplY3Qt
Pmdsb2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRlcihleGVjKSwgRG9udERl
bGV0ZSB8IERvbnRFbnVtIHwgQWNjZXNzb3IpOworICAgICAgICAgICAgcmV0dXJuIEJhc2U6OmRl
ZmluZU93blByb3BlcnR5KG9iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCB0
aHJvd0V4Y2VwdGlvbik7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGRlc2NyaXB0b3Iud3JpdGFi
bGVQcmVzZW50KCkgJiYgZGVzY3JpcHRvci53cml0YWJsZSgpKSB7Ci0gICAgICAgICAgICBpZiAo
dGhyb3dFeGNlcHRpb24pCi0gICAgICAgICAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVU
eXBlRXJyb3IoZXhlYywgIkF0dGVtcHRpbmcgdG8gY2hhbmdlIHdyaXRhYmxlIGF0dHJpYnV0ZSBv
ZiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4iKSk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIHZhbHVlQ2hlY2sgPSAhZGVzY3JpcHRvci52YWx1ZSgpIHx8IHNhbWVWYWx1ZShl
eGVjLCBkZXNjcmlwdG9yLnZhbHVlKCksIGV4ZWMtPmludGVycHJldGVyKCktPnJldHJpZXZlQXJn
dW1lbnRzRnJvbVZNQ29kZShleGVjLCB0aGlzT2JqZWN0KSk7CisgICAgfSBlbHNlIGlmIChwcm9w
ZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNhbGxlcikgeworICAgICAgICBpZiAo
dGhpc09iamVjdC0+anNFeGVjdXRhYmxlKCktPmlzU3RyaWN0TW9kZSgpKSB7CisgICAgICAgICAg
ICBpZiAoIUJhc2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVjLCBw
cm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpKQorICAgICAgICAgICAgICAgIHRoaXNPYmplY3QtPnB1
dERpcmVjdEFjY2Vzc29yKGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1lLCB0aGlzT2Jq
ZWN0LT5nbG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIoZXhlYyksIERv
bnREZWxldGUgfCBEb250RW51bSB8IEFjY2Vzc29yKTsKKyAgICAgICAgICAgIHJldHVybiBCYXNl
OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRv
ciwgdGhyb3dFeGNlcHRpb24pOwogICAgICAgICB9Ci0gICAgICAgIGlmICghZGVzY3JpcHRvci52
YWx1ZSgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChwcm9wZXJ0eU5h
bWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cyAmJiBzYW1lVmFsdWUoZXhlYywg
ZGVzY3JpcHRvci52YWx1ZSgpLCBleGVjLT5pbnRlcnByZXRlcigpLT5yZXRyaWV2ZUFyZ3VtZW50
c0Zyb21WTUNvZGUoZXhlYywgdGhpc09iamVjdCkpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0
aCAmJiBzYW1lVmFsdWUoZXhlYywgZGVzY3JpcHRvci52YWx1ZSgpLCBqc051bWJlcih0aGlzT2Jq
ZWN0LT5qc0V4ZWN1dGFibGUoKS0+cGFyYW1ldGVyQ291bnQoKSkpKQotICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1l
cygpLmNhbGxlciAmJiBzYW1lVmFsdWUoZXhlYywgZGVzY3JpcHRvci52YWx1ZSgpLCBleGVjLT5p
bnRlcnByZXRlcigpLT5yZXRyaWV2ZUNhbGxlckZyb21WTUNvZGUoZXhlYywgdGhpc09iamVjdCkp
KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHZhbHVlQ2hlY2sgPSAhZGVzY3Jp
cHRvci52YWx1ZSgpIHx8IHNhbWVWYWx1ZShleGVjLCBkZXNjcmlwdG9yLnZhbHVlKCksIGV4ZWMt
PmludGVycHJldGVyKCktPnJldHJpZXZlQ2FsbGVyRnJvbVZNQ29kZShleGVjLCB0aGlzT2JqZWN0
KSk7CisgICAgfSBlbHNlIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygp
Lmxlbmd0aCkKKyAgICAgICAgdmFsdWVDaGVjayA9ICFkZXNjcmlwdG9yLnZhbHVlKCkgfHwgc2Ft
ZVZhbHVlKGV4ZWMsIGRlc2NyaXB0b3IudmFsdWUoKSwganNOdW1iZXIodGhpc09iamVjdC0+anNF
eGVjdXRhYmxlKCktPnBhcmFtZXRlckNvdW50KCkpKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVy
biBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVz
Y3JpcHRvciwgdGhyb3dFeGNlcHRpb24pOworICAgICAKKyAgICBpZiAoZGVzY3JpcHRvci5jb25m
aWd1cmFibGVQcmVzZW50KCkgJiYgZGVzY3JpcHRvci5jb25maWd1cmFibGUoKSkgeworICAgICAg
ICBpZiAodGhyb3dFeGNlcHRpb24pCisgICAgICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0
ZVR5cGVFcnJvcihleGVjLCAiQXR0ZW1wdGluZyB0byBjb25maWd1cmFibGUgYXR0cmlidXRlIG9m
IHVuY29uZmlndXJhYmxlIHByb3BlcnR5LiIpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKyAgICBpZiAoZGVzY3JpcHRvci5lbnVtZXJhYmxlUHJlc2VudCgpICYmIGRlc2NyaXB0b3Iu
ZW51bWVyYWJsZSgpKSB7CisgICAgICAgIGlmICh0aHJvd0V4Y2VwdGlvbikKKyAgICAgICAgICAg
IHRocm93RXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJBdHRlbXB0aW5nIHRvIGNo
YW5nZSBlbnVtZXJhYmxlIGF0dHJpYnV0ZSBvZiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4iKSk7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKGRlc2NyaXB0b3IuaXNBY2Nl
c3NvckRlc2NyaXB0b3IoKSkgeworICAgICAgICBpZiAodGhyb3dFeGNlcHRpb24pCisgICAgICAg
ICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiQXR0ZW1wdGluZyB0
byBjaGFuZ2UgYWNjZXNzIG1lY2hhbmlzbSBmb3IgYW4gdW5jb25maWd1cmFibGUgcHJvcGVydHku
IikpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmIChkZXNjcmlwdG9yLndy
aXRhYmxlUHJlc2VudCgpICYmIGRlc2NyaXB0b3Iud3JpdGFibGUoKSkgeworICAgICAgICBpZiAo
dGhyb3dFeGNlcHRpb24pCisgICAgICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVR5cGVF
cnJvcihleGVjLCAiQXR0ZW1wdGluZyB0byBjaGFuZ2Ugd3JpdGFibGUgYXR0cmlidXRlIG9mIHVu
Y29uZmlndXJhYmxlIHByb3BlcnR5LiIpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KyAgICBpZiAoIXZhbHVlQ2hlY2spIHsKICAgICAgICAgaWYgKHRocm93RXhjZXB0aW9uKQogICAg
ICAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIkF0dGVtcHRp
bmcgdG8gY2hhbmdlIHZhbHVlIG9mIGEgcmVhZG9ubHkgcHJvcGVydHkuIikpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQotCi0gICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5
KG9iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCB0aHJvd0V4Y2VwdGlvbik7
CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIC8vIEVDTUEgMTMuMi4yIFtbQ29uc3RydWN0XV0KSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDExMTIzOCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAzLTE5ICBHYXZpbiBCYXJyYWNsb3VnaCAg
PGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBPYmplY3QuZnJlZXplIGJyb2tlbiBv
biBsYXRlc3QgTmlnaHRseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODA1NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGZhc3QvanMvcHJldmVudEV4dGVuc2lvbnMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL3ByZXZlbnRFeHRlbnNpb25zLmpzOgorICAgICAgICAo
c2hvdWxkQmVUcnVlKToKKyAgICAgICAgKHNob3VsZEJlRmFsc2Uuc2hvdWxkQmVGYWxzZS5wcmV2
ZW50RXh0ZW5zaW9uc0ZyZWV6ZUlzRnJvemVuKToKKyAgICAgICAgICAgIC0gQWRkZWQgdGVzdCBj
YXNlcy4KKwogMjAxMi0wMy0xOSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFp
bC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwOTAxNC4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvanMvcHJldmVudEV4dGVuc2lvbnMtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcHJldmVudEV4dGVuc2lvbnMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxMTExMjkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3ByZXZlbnRFeHRl
bnNpb25zLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsOSBAQCBQQVNT
IG9iai5mb28gaXMgMQogUEFTUyBPYmplY3QuaXNGcm96ZW4oZnVuYykgaXMgdHJ1ZQogUEFTUyBm
dW5jLnByb3RvdHlwZSA9PT0gNDIgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihmdW5jLCAicHJvdG90eXBlIikud3JpdGFibGUgaXMgZmFsc2UKK1BBU1MgT2Jq
ZWN0LmlzRnJvemVuKHN0cmljdEZ1bmMpIGlzIHRydWUKK1BBU1Mgc3RyaWN0RnVuYy5wcm90b3R5
cGUgPT09IDQyIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
c3RyaWN0RnVuYywgInByb3RvdHlwZSIpLndyaXRhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5p
c0Zyb3plbihhcnJheSkgaXMgdHJ1ZQogUEFTUyBhcnJheVswXSBpcyAwCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYXJyYXksICJsZW5ndGgiKS53cml0YWJsZSBpcyBmYWxz
ZQpAQCAtMjgsNiArMzEsMTAgQEAgUEFTUyBPYmplY3QuaXNGcm96ZW4oYXJncykgaXMgdHJ1ZQog
UEFTUyBhcmdzWzBdIGlzIDAKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihh
cmdzLCAibGVuZ3RoIikud3JpdGFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihhcmdzLCAiY2FsbGVlIikud3JpdGFibGUgaXMgZmFsc2UKK1BBU1MgcHJl
dmVudEV4dGVuc2lvbnNGcmVlemVJc0Zyb3plbihmdW5jdGlvbiBmb28oKXt9KSBpcyB0cnVlCitQ
QVNTIHByZXZlbnRFeHRlbnNpb25zRnJlZXplSXNGcm96ZW4oZnVuY3Rpb24gZm9vKCl7ICJ1c2Ug
c3RyaWN0IjsgfSkgaXMgdHJ1ZQorUEFTUyBwcmV2ZW50RXh0ZW5zaW9uc0ZyZWV6ZUlzRnJvemVu
KFswLDEsMl0pIGlzIHRydWUKK1BBU1MgcHJldmVudEV4dGVuc2lvbnNGcmVlemVJc0Zyb3plbigo
ZnVuY3Rpb24oKXsgcmV0dXJuIGFyZ3VtZW50czsgfSkoMCwxLDIpKSBpcyB0cnVlCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL3ByZXZlbnRFeHRlbnNpb25zLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL3ByZXZlbnRFeHRlbnNpb25zLmpz
CShyZXZpc2lvbiAxMTExMjkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9w
cmV2ZW50RXh0ZW5zaW9ucy5qcwkod29ya2luZyBjb3B5KQpAQCAtOTYsNiArOTYsMTMgQEAgZnVu
Yy5wcm90b3R5cGUgPSA0MjsKIHNob3VsZEJlRmFsc2UoJ2Z1bmMucHJvdG90eXBlID09PSA0Micp
Owogc2hvdWxkQmVGYWxzZSgnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihmdW5jLCAi
cHJvdG90eXBlIikud3JpdGFibGUnKQogCisvLyBDaGVjayB0aGF0IGZyZWV6aW5nIGEgc3RyaWN0
IGZ1bmN0aW9uIHdvcmtzIGNvcnJlY3RseS4KK3ZhciBzdHJpY3RGdW5jID0gZnJlZXplKGZ1bmN0
aW9uIGZvbygpeyAidXNlIHN0cmljdCI7IH0pOworc2hvdWxkQmVUcnVlKCdPYmplY3QuaXNGcm96
ZW4oc3RyaWN0RnVuYyknKQorc3RyaWN0RnVuYy5wcm90b3R5cGUgPSA0MjsKK3Nob3VsZEJlRmFs
c2UoJ3N0cmljdEZ1bmMucHJvdG90eXBlID09PSA0MicpOworc2hvdWxkQmVGYWxzZSgnT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzdHJpY3RGdW5jLCAicHJvdG90eXBlIikud3JpdGFi
bGUnKQorCiAvLyBDaGVjayB0aGF0IGZyZWV6aW5nIGFycmF5IG9iamVjdHMgd29ya3MgY29ycmVj
dGx5LgogdmFyIGFycmF5ID0gZnJlZXplKFswLDEsMl0pOwogc2hvdWxkQmVUcnVlKCdPYmplY3Qu
aXNGcm96ZW4oYXJyYXkpJykKQEAgLTExMCwzICsxMTcsMTYgQEAgYXJnc1swXSA9IDM7CiBzaG91
bGRCZSgnYXJnc1swXScsICcwJyk7CiBzaG91bGRCZUZhbHNlKCdPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGFyZ3MsICJsZW5ndGgiKS53cml0YWJsZScpCiBzaG91bGRCZUZhbHNlKCdP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFyZ3MsICJjYWxsZWUiKS53cml0YWJsZScp
CisKKy8vIENoZWNrIHRoYXQgZnJlZXplIHN0aWxsIHdvcmtzIGlmIHByZXZlbnRFeHRlbnNpb25z
IGhhcyBiZWVuIGNhbGxlZCBvbiB0aGUgb2JqZWN0LgorZnVuY3Rpb24gcHJldmVudEV4dGVuc2lv
bnNGcmVlemVJc0Zyb3plbih4KQoreworICAgIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh4KTsK
KyAgICBPYmplY3QuZnJlZXplKHgpOworICAgIHJldHVybiBPYmplY3QuaXNGcm96ZW4oeCk7Cit9
CitzaG91bGRCZVRydWUoJ3ByZXZlbnRFeHRlbnNpb25zRnJlZXplSXNGcm96ZW4oZnVuY3Rpb24g
Zm9vKCl7fSknKQorc2hvdWxkQmVUcnVlKCdwcmV2ZW50RXh0ZW5zaW9uc0ZyZWV6ZUlzRnJvemVu
KGZ1bmN0aW9uIGZvbygpeyAidXNlIHN0cmljdCI7IH0pJykKK3Nob3VsZEJlVHJ1ZSgncHJldmVu
dEV4dGVuc2lvbnNGcmVlemVJc0Zyb3plbihbMCwxLDJdKScpCitzaG91bGRCZVRydWUoJ3ByZXZl
bnRFeHRlbnNpb25zRnJlZXplSXNGcm96ZW4oKGZ1bmN0aW9uKCl7IHJldHVybiBhcmd1bWVudHM7
IH0pKDAsMSwyKSknKQorCg==
</data>
<flag name="review"
          id="136381"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>