<?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>3659</bug_id>
          
          <creation_ts>2005-06-22 19:22:48 -0700</creation_ts>
          <short_desc>Add Support for the watch() method of Object</short_desc>
          <delta_ts>2012-09-11 18:02:15 -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>412</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc>http://developer-test.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Object:watch</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Wheeler">david</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ian</cc>
    
    <cc>rob.moore</cc>
    
    <cc>webmaster</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>12874</commentid>
    <comment_count>0</comment_count>
    <who name="David Wheeler">david</who>
    <bug_when>2005-06-22 19:22:48 -0700</bug_when>
    <thetext>I think that the watch() method of the Object class is a Netscape-specific add-on not included in the 
ECMAScript spec, but it&apos;s amazingly useful. I have a workaround for this using setTimeout(), but the watch
() method is more elegant and timely.

The watch() method (and the corresponding unwatch() method) is documented in the URL included in this 
bug report, but in short, it allows one to trigger a function whenever an object attribute is changed in 
order to trigger other actions, change the value to be assigned, or whatever. Think of it as a callback on an 
attribute assigment callback.

It&apos;s supported by FireFox. Not sure about IE/Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12895</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2005-06-22 23:21:24 -0700</bug_when>
    <thetext>A quick check verifies that this method is not present in the ECMA specification, and is not supported by IE 
6.0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12930</commentid>
    <comment_count>2</comment_count>
    <who name="David Wheeler">david</who>
    <bug_when>2005-06-23 08:28:09 -0700</bug_when>
    <thetext>Yes, I found the same, Mark. Thanks.

Here&apos;s to hoping that it makes it into the ECMA 4.0 spec! Hrm, don&apos;t see it in the current draft...pity.

  http://www.mozilla.org/js/language/es4.html
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12938</commentid>
    <comment_count>3</comment_count>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2005-06-23 09:55:31 -0700</bug_when>
    <thetext>sounds reasonable to me! confirming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53225</commentid>
    <comment_count>4</comment_count>
    <who name="Rob Moore">rob.moore</who>
    <bug_when>2006-08-23 16:08:13 -0700</bug_when>
    <thetext>Just FYI, IE does support a similar concept -- the propertychange event: 

http://msdn.microsoft.com/workshop/author/dhtml/reference/events/onpropertychange.asp

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>70838</commentid>
    <comment_count>5</comment_count>
      <attachid>19152</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2008-02-15 23:16:57 -0800</bug_when>
    <thetext>Created attachment 19152
_Old_ work in progress patch

I found an old patch that implements this, maybe parts of it can be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717785</commentid>
    <comment_count>6</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-09-11 18:02:15 -0700</bug_when>
    <thetext>A variant on this theme is now gaining traction with TC-39, with is Object.observe / Object.makeObservable.  Mozilla&apos;s documentation also warns against the use of watch.

In light of this, I don&apos;t think we want to implement watch.  This is a useful feature, and I think we should closely track progress of the Object.observe / Object.makeObservable proposals.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19152</attachid>
            <date>2008-02-15 23:16:57 -0800</date>
            <delta_ts>2010-06-10 15:42:48 -0700</delta_ts>
            <desc>_Old_ work in progress patch</desc>
            <filename>wip-object-watch.txt</filename>
            <type>text/plain</type>
            <size>11691</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkyOQpkaWZmIC1wIC11IC1y
MS45MjkgQ2hhbmdlTG9nCi0tLSBDaGFuZ2VMb2cJMjUgRGVjIDIwMDUgMDk6MjI6MzIgLTAwMDAJ
MS45MjkKKysrIENoYW5nZUxvZwkyNiBEZWMgMjAwNSAyMToxMzo0MCAtMDAwMApAQCAtMSwzICsx
LDI2IEBACisyMDA1LTEyLTI2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBtYWMuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoga2pzL2lk
ZW50aWZpZXIuY3BwOgorICAgICAgICAqIGtqcy9pZGVudGlmaWVyLmg6CisgICAgICAgIChLWE1M
Q29yZTo6KToKKyAgICAgICAgKiBranMvbm9kZXMuY3BwOgorICAgICAgICAoQXNzaWduUmVzb2x2
ZU5vZGU6OmV2YWx1YXRlKToKKyAgICAgICAgKEFzc2lnbkRvdE5vZGU6OmV2YWx1YXRlKToKKyAg
ICAgICAgKEFzc2lnbkJyYWNrZXROb2RlOjpldmFsdWF0ZSk6CisgICAgICAgICoga2pzL29iamVj
dC5jcHA6CisgICAgICAgIChLSlM6OkpTT2JqZWN0OjptYXJrKToKKyAgICAgICAgKEtKUzo6SlNP
YmplY3Q6OmFkZFdhdGNoKToKKyAgICAgICAgKEtKUzo6SlNPYmplY3Q6OnJlbW92ZVdhdGNoKToK
KyAgICAgICAgKEtKUzo6SlNPYmplY3Q6OnB1dFdpdGhXYXRjaCk6CisgICAgICAgICoga2pzL29i
amVjdC5oOgorICAgICAgICAqIGtqcy9vYmplY3Rfb2JqZWN0LmNwcDoKKyAgICAgICAgKE9iamVj
dFByb3RvdHlwZTo6T2JqZWN0UHJvdG90eXBlKToKKyAgICAgICAgKE9iamVjdFByb3RvRnVuYzo6
Y2FsbEFzRnVuY3Rpb24pOgorICAgICAgICAqIGtqcy9vYmplY3Rfb2JqZWN0Lmg6CisgICAgICAg
IChLSlM6Ok9iamVjdFByb3RvRnVuYzo6KToKKwogMjAwNS0xMi0yNCAgTWFjaWVqIFN0YWNob3dp
YWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgYW5kIERhdmUg
SHlhdHQuCkluZGV4OiBranMvaWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9pZGVudGlmaWVyLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS4yNwpkaWZmIC1wIC11IC1yMS4yNyBranMvaWRlbnRpZmllci5jcHAKLS0tIGtqcy9p
ZGVudGlmaWVyLmNwcAkyNSBEZWMgMjAwNSAwOToyMjozNCAtMDAwMAkxLjI3CisrKyBranMvaWRl
bnRpZmllci5jcHAJMjYgRGVjIDIwMDUgMjE6MTM6NDEgLTAwMDAKQEAgLTQyLDEzICs0Miw3IEBA
CiAjaW5jbHVkZSA8bmV3PiAvLyBmb3IgcGxhY2VtZW50IG5ldwogCiBuYW1lc3BhY2UgS1hNTENv
cmUgewotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgRGVmYXVsdEhhc2g7Ci0KLSAg
ICB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxLSlM6OlVTdHJpbmc6OlJlcCAqPiB7Ci0g
ICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEtKUzo6VVN0cmluZzo6UmVwICprZXkp
IHsgcmV0dXJuIGtleS0+aGFzaCgpOyB9Ci0gICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0
IEtKUzo6VVN0cmluZzo6UmVwICphLCBjb25zdCBLSlM6OlVTdHJpbmc6OlJlcCAqYikgeyByZXR1
cm4gS0pTOjpJZGVudGlmaWVyOjplcXVhbChhLCBiKTsgfQotICAgIH07CisgICAgY29uc3QgUmVm
UHRyPEtKUzo6VVN0cmluZzo6UmVwPiBIYXNoVHJhaXRzPFJlZlB0cjxLSlM6OlVTdHJpbmc6OlJl
cD4gPjo6X2RlbGV0ZWQgPSBLSlM6OlVTdHJpbmc6OlJlcDo6Y3JlYXRlKDAsIDApOwogfQogCiBu
YW1lc3BhY2UgS0pTIHsKSW5kZXg6IGtqcy9pZGVudGlmaWVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9pZGVudGlmaWVyLmgsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMjIKZGlmZiAtcCAtdSAtcjEuMjIga2pzL2lkZW50aWZpZXIuaAotLS0ga2pz
L2lkZW50aWZpZXIuaAkyMCBEZWMgMjAwNSAyMDoxMjo0NyAtMDAwMAkxLjIyCisrKyBranMvaWRl
bnRpZmllci5oCTI2IERlYyAyMDA1IDIxOjEzOjQxIC0wMDAwCkBAIC0xMjcsNCArMTI3LDM5IEBA
IG5hbWVzcGFjZSBLSlMgewogCiB9CiAKK25hbWVzcGFjZSBLWE1MQ29yZSB7CisgICAgCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgRGVmYXVsdEhhc2g7CisgICAgCisgICAgdGVtcGxh
dGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8S0pTOjpVU3RyaW5nOjpSZXAgKj4geworICAgICAgICBz
dGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBLSlM6OlVTdHJpbmc6OlJlcCAqa2V5KSB7IHJldHVy
biBrZXktPmhhc2goKTsgfQorICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBLSlM6OlVT
dHJpbmc6OlJlcCAqYSwgY29uc3QgS0pTOjpVU3RyaW5nOjpSZXAgKmIpIHsgcmV0dXJuIEtKUzo6
SWRlbnRpZmllcjo6ZXF1YWwoYSwgYik7IH0KKyAgICB9OworICAgIAorICAgIHRlbXBsYXRlPD4g
c3RydWN0IERlZmF1bHRIYXNoPFJlZlB0cjxLSlM6OlVTdHJpbmc6OlJlcD4gPiB7CisgICAgICAg
IHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFJlZlB0cjxLSlM6OlVTdHJpbmc6OlJlcD4mIGtl
eSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGtleS5nZXQoKS0+aGFzaCgpOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBSZWZQdHI8
S0pTOjpVU3RyaW5nOjpSZXA+JiBhLCBjb25zdCBSZWZQdHI8S0pTOjpVU3RyaW5nOjpSZXA+JiBi
KSB7CisgICAgICAgICAgICByZXR1cm4gS0pTOjpJZGVudGlmaWVyOjplcXVhbChhLmdldCgpLCBi
LmdldCgpKTsKKyAgICAgICAgfQorICAgIH07CisgICAgICAgIAorICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPiBjbGFzcyBIYXNoVHJhaXRzOworICAgIAorICAgIHRlbXBsYXRlPD4gc3RydWN0IEhh
c2hUcmFpdHM8UmVmUHRyPEtKUzo6VVN0cmluZzo6UmVwPiA+IHsKKyAgICAgICAgdHlwZWRlZiBS
ZWZQdHI8S0pTOjpVU3RyaW5nOjpSZXA+IFRyYWl0VHlwZTsKKworICAgICAgICBzdGF0aWMgY29u
c3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gdHJ1ZTsKKyAgICAgICAgc3RhdGljIGNvbnN0IGJv
b2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgICAgIHN0YXRpYyBjb25zdCBUcmFpdFR5
cGUgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIFRyYWl0VHlwZSgpOyB9CisKKyAgICAgICAgc3RhdGlj
IGNvbnN0IFRyYWl0VHlwZSBfZGVsZXRlZDsKKyAgICAgICAgc3RhdGljIGNvbnN0IFRyYWl0VHlw
ZSYgZGVsZXRlZFZhbHVlKCkgeyByZXR1cm4gX2RlbGV0ZWQ7IH0KKyAgICB9OworfQorCisKICNl
bmRpZgpJbmRleDoga2pzL25vZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
SmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45MQpk
aWZmIC1wIC11IC1yMS45MSBranMvbm9kZXMuY3BwCi0tLSBranMvbm9kZXMuY3BwCTEzIERlYyAy
MDA1IDIxOjI0OjUxIC0wMDAwCTEuOTEKKysrIGtqcy9ub2Rlcy5jcHAJMjYgRGVjIDIwMDUgMjE6
MTM6NDEgLTAwMDAKQEAgLTEzMjAsOCArMTMyMCw3IEBAIEpTVmFsdWUgKkFzc2lnblJlc29sdmVO
b2RlOjpldmFsdWF0ZShFeGUKIAogICBLSlNfQ0hFQ0tFWENFUFRJT05WQUxVRQogCi0gIGJhc2Ut
PnB1dChleGVjLCBtX2lkZW50LCB2KTsKLSAgcmV0dXJuIHY7CisgIHJldHVybiBiYXNlLT5wdXRX
aXRoV2F0Y2goZXhlYywgbV9pZGVudCwgdik7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSBBc3NpZ25Eb3ROb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCkBAIC0xMzQ2LDggKzEzNDUsNyBAQCBKU1ZhbHVlICpBc3NpZ25Eb3ROb2RlOjpldmFsdWF0
ZShFeGVjU3RhCiAKICAgS0pTX0NIRUNLRVhDRVBUSU9OVkFMVUUKIAotICBiYXNlLT5wdXQoZXhl
YywgbV9pZGVudCwgdik7Ci0gIHJldHVybiB2OworICByZXR1cm4gYmFzZS0+cHV0V2l0aFdhdGNo
KGV4ZWMsIG1faWRlbnQsIHYpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gQXNzaWduQnJhY2tldE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
QEAgLTEzNzYsOCArMTM3NCw3IEBAIEpTVmFsdWUgKkFzc2lnbkJyYWNrZXROb2RlOjpldmFsdWF0
ZShFeGUKIAogICAgIEtKU19DSEVDS0VYQ0VQVElPTlZBTFVFCiAKLSAgICBiYXNlLT5wdXQoZXhl
YywgcHJvcGVydHlJbmRleCwgdik7Ci0gICAgcmV0dXJuIHY7CisgICAgcmV0dXJuIGJhc2UtPnB1
dFdpdGhXYXRjaChleGVjLCBwcm9wZXJ0eUluZGV4LCB2KTsKICAgfQogCiAgIElkZW50aWZpZXIg
cHJvcGVydHlOYW1lKHN1YnNjcmlwdC0+dG9TdHJpbmcoZXhlYykpOwpAQCAtMTM5NSw4ICsxMzky
LDcgQEAgSlNWYWx1ZSAqQXNzaWduQnJhY2tldE5vZGU6OmV2YWx1YXRlKEV4ZQogCiAgIEtKU19D
SEVDS0VYQ0VQVElPTlZBTFVFCiAKLSAgYmFzZS0+cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdik7
Ci0gIHJldHVybiB2OworICByZXR1cm4gYmFzZS0+cHV0V2l0aFdhdGNoKGV4ZWMsIHByb3BlcnR5
TmFtZSwgdik7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDb21tYU5v
ZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkluZGV4OiBranMvb2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL29i
amVjdC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTkKZGlmZiAtcCAtdSAtcjEuNTkga2pz
L29iamVjdC5jcHAKLS0tIGtqcy9vYmplY3QuY3BwCTEzIERlYyAyMDA1IDIxOjI0OjUyIC0wMDAw
CTEuNTkKKysrIGtqcy9vYmplY3QuY3BwCTI2IERlYyAyMDA1IDIxOjEzOjQxIC0wMDAwCkBAIC0x
MjgsNiArMTI4LDEyIEBAIHZvaWQgSlNPYmplY3Q6Om1hcmsoKQogICAgIF9pbnRlcm5hbFZhbHVl
LT5tYXJrKCk7CiAKICAgX3Njb3BlLm1hcmsoKTsKKyAgCisgIFdhdGNoZXNNYXA6Oml0ZXJhdG9y
IGVuZCA9IHdhdGNoZXMuZW5kKCk7CisgIGZvciAoV2F0Y2hlc01hcDo6aXRlcmF0b3IgaXQgPSB3
YXRjaGVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgaWYgKCFpdC0+c2Vjb25k
LT5tYXJrZWQoKSkKKyAgICAgICAgICBpdC0+c2Vjb25kLT5tYXJrKCk7CisgIH0KIH0KIAogVHlw
ZSBKU09iamVjdDo6dHlwZSgpIGNvbnN0CkBAIC0zOTEsNiArMzk3LDc0IEBAIHZvaWQgSlNPYmpl
Y3Q6OmRlZmluZVNldHRlcihFeGVjU3RhdGUgKmUKICAgICBncy0+c2V0U2V0dGVyKHNldHRlckZ1
bmMpOwogfQogCit2b2lkIEpTT2JqZWN0OjphZGRXYXRjaChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QgKndhdGNoRnVuYykKK3sKKyAgICB3
YXRjaGVzLmFkZChwcm9wZXJ0eU5hbWUudXN0cmluZygpLnJlcCgpLCB3YXRjaEZ1bmMpOworfQor
Cit2b2lkIEpTT2JqZWN0OjpyZW1vdmVXYXRjaChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSkKK3sKKyAgICB3YXRjaGVzLnJlbW92ZShwcm9wZXJ0eU5hbWUu
dXN0cmluZygpLnJlcCgpKTsKK30KKworSlNWYWx1ZSAqSlNPYmplY3Q6OnB1dFdpdGhXYXRjaChF
eGVjU3RhdGUgKmV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSAqbmV3VmFsKQor
eworICAgIGlmIChKU09iamVjdCAqd2F0Y2hGdW5jID0gd2F0Y2hlcy5nZXQoSWRlbnRpZmllcjo6
ZnJvbShwcm9wZXJ0eU5hbWUpLnVzdHJpbmcoKS5yZXAoKSkpIHsKKyAgICAgICAgTGlzdCBhcmdz
OworICAgICAgICAKKyAgICAgICAgYXJncy5hcHBlbmQoanNOdW1iZXIocHJvcGVydHlOYW1lKSk7
CisgICAgICAgIGFyZ3MuYXBwZW5kKGdldChleGVjLCBwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAg
YXJncy5hcHBlbmQobmV3VmFsKTsKKyAgICAgICAgCisgICAgICAgIEpTVmFsdWUgKnJldFZhbCA9
IHdhdGNoRnVuYy0+Y2FsbChleGVjLCB0aGlzLCBhcmdzKTsKKyAgICAgICAgCisgICAgICAgIC8q
IElmIHdhdGNoRnVuYyB0aHJvd3MgYW4gZXhjZXB0aW9uLCBzZXQgdGhlIHByb3BlcnR5IHRvIG5l
d1ZhbCwKKyAgICAgICAgICAgICh0aGlzIGlzIHdoYXQgTW96aWxsYSBkb2VzKQorICAgICAgICAg
ICAgKi8KKyAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICBl
eGVjLT5jbGVhckV4Y2VwdGlvbigpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXRWYWwg
PSBuZXdWYWw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1dChleGVjLCBwcm9wZXJ0
eU5hbWUsIHJldFZhbCk7CisgICAgICAgIHJldHVybiByZXRWYWw7CisgICAgfSAKKyAgICAKKyAg
ICBwdXQoZXhlYywgcHJvcGVydHlOYW1lLCBuZXdWYWwpOworICAgIAorICAgIHJldHVybiBuZXdW
YWw7Cit9CisKK0pTVmFsdWUgKkpTT2JqZWN0OjpwdXRXaXRoV2F0Y2goRXhlY1N0YXRlICpleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgKm5ld1ZhbCkKK3sKKyAg
ICBpZiAoSlNPYmplY3QgKndhdGNoRnVuYyA9IHdhdGNoZXMuZ2V0KHByb3BlcnR5TmFtZS51c3Ry
aW5nKCkucmVwKCkpKSB7CisgICAgICAgIExpc3QgYXJnczsKKworICAgICAgICBhcmdzLmFwcGVu
ZChqc1N0cmluZyhwcm9wZXJ0eU5hbWUudXN0cmluZygpKSk7CisgICAgICAgIGFyZ3MuYXBwZW5k
KGdldChleGVjLCBwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgYXJncy5hcHBlbmQobmV3VmFsKTsK
KyAgICAgICAgCisgICAgICAgIEpTVmFsdWUgKnJldFZhbCA9IHdhdGNoRnVuYy0+Y2FsbChleGVj
LCB0aGlzLCBhcmdzKTsKKworICAgICAgICAvKiBJZiB3YXRjaEZ1bmMgdGhyb3dzIGFuIGV4Y2Vw
dGlvbiwgc2V0IHRoZSBwcm9wZXJ0eSB0byBuZXdWYWwsCisgICAgICAgICAgICh0aGlzIGlzIHdo
YXQgTW96aWxsYSBkb2VzKQorICAgICAgICAqLworICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpIHsKKyAgICAgICAgICAgIGV4ZWMtPmNsZWFyRXhjZXB0aW9uKCk7CisKKyAgICAgICAg
ICAgIHJldFZhbCA9IG5ld1ZhbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHV0KGV4
ZWMsIHByb3BlcnR5TmFtZSwgcmV0VmFsKTsKKyAgICAgICAgcmV0dXJuIHJldFZhbDsKKyAgICB9
IAorICAgIAorICAgIHB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIG5ld1ZhbCk7CisgICAgCisgICAg
cmV0dXJuIG5ld1ZhbDsKK30KKwogYm9vbCBKU09iamVjdDo6aW1wbGVtZW50c0NvbnN0cnVjdCgp
IGNvbnN0CiB7CiAgIHJldHVybiBmYWxzZTsKSW5kZXg6IGtqcy9vYmplY3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL29iamVjdC5oLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjUxCmRpZmYgLXAgLXUgLXIxLjUxIGtqcy9vYmplY3QuaAotLS0ga2pz
L29iamVjdC5oCTEzIERlYyAyMDA1IDIxOjI0OjUyIC0wMDAwCTEuNTEKKysrIGtqcy9vYmplY3Qu
aAkyNiBEZWMgMjAwNSAyMToxMzo0MSAtMDAwMApAQCAtNDIsNiArNDIsOCBAQAogI2luY2x1ZGUg
InByb3BlcnR5X3Nsb3QuaCIKICNpbmNsdWRlICJzY29wZV9jaGFpbi5oIgogCisjaW5jbHVkZSA8
a3htbGNvcmUvSGFzaE1hcC5oPgorCiBuYW1lc3BhY2UgS0pTIHsKIAogICBjbGFzcyBIYXNoVGFi
bGU7CkBAIC01MDYsNiArNTA4LDEyIEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHZvaWQgZGVmaW5l
R2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U09iamVjdCAqZ2V0dGVyRnVuYyk7CiAgICAgdm9pZCBkZWZpbmVTZXR0ZXIoRXhlY1N0YXRlICpl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0ICpzZXR0ZXJGdW5j
KTsKIAorICAgIHZvaWQgYWRkV2F0Y2goRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0ICp3YXRjaEZ1bmMpOworICAgIHZvaWQgcmVtb3ZlV2F0
Y2goRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOworICAg
IAorICAgIEpTVmFsdWUgKnB1dFdpdGhXYXRjaChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSAqbmV3VmFsKTsKKyAgICBKU1ZhbHVlICpwdXRX
aXRoV2F0Y2goRXhlY1N0YXRlICpleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
Km5ld1ZhbCk7CisKICAgICAvKioKICAgICAgKiBSZW1vdmUgYWxsIHByb3BlcnRpZXMgZnJvbSB0
aGlzIG9iamVjdC4KICAgICAgKiBUaGlzIGRvZXNuJ3QgdGFrZSBEb250RGVsZXRlIGludG8gYWNj
b3VudCwgYW5kIGlzbid0IGluIHRoZSBFQ01BIHNwZWMuCkBAIC01MjQsNiArNTMyLDkgQEAgbmFt
ZXNwYWNlIEtKUyB7CiAgICAgSlNWYWx1ZSAqX3Byb3RvOwogICAgIEpTVmFsdWUgKl9pbnRlcm5h
bFZhbHVlOwogICAgIFNjb3BlQ2hhaW4gX3Njb3BlOworICAgIAorICAgIHR5cGVkZWYgSGFzaE1h
cDxSZWZQdHI8VVN0cmluZzo6UmVwPiwgSlNPYmplY3QgKj4gV2F0Y2hlc01hcDsKKyAgICBXYXRj
aGVzTWFwIHdhdGNoZXM7CiAgIH07CiAKICAgLyoqCkluZGV4OiBranMvb2JqZWN0X29iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9vYmpl
Y3Rfb2JqZWN0LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMApkaWZmIC1wIC11IC1yMS4y
MCBranMvb2JqZWN0X29iamVjdC5jcHAKLS0tIGtqcy9vYmplY3Rfb2JqZWN0LmNwcAkxOCBEZWMg
MjAwNSAxMzoyNzowMCAtMDAwMAkxLjIwCisrKyBranMvb2JqZWN0X29iamVjdC5jcHAJMjYgRGVj
IDIwMDUgMjE6MTM6NDEgLTAwMDAKQEAgLTQ5LDYgKzQ5LDggQEAgT2JqZWN0UHJvdG90eXBlOjpP
YmplY3RQcm90b3R5cGUoRXhlY1N0YQogICAgIHB1dERpcmVjdCgiX19kZWZpbmVTZXR0ZXJfXyIs
IG5ldyBPYmplY3RQcm90b0Z1bmMoZXhlYywgZnVuY1Byb3RvLCBPYmplY3RQcm90b0Z1bmM6OkRl
ZmluZVNldHRlciwgICAgICAgICAgICAgMiksIERvbnRFbnVtKTsKICAgICBwdXREaXJlY3QoIl9f
bG9va3VwR2V0dGVyX18iLCBuZXcgT2JqZWN0UHJvdG9GdW5jKGV4ZWMsIGZ1bmNQcm90bywgT2Jq
ZWN0UHJvdG9GdW5jOjpMb29rdXBHZXR0ZXIsICAgICAgICAgICAgIDEpLCBEb250RW51bSk7CiAg
ICAgcHV0RGlyZWN0KCJfX2xvb2t1cFNldHRlcl9fIiwgbmV3IE9iamVjdFByb3RvRnVuYyhleGVj
LCBmdW5jUHJvdG8sIE9iamVjdFByb3RvRnVuYzo6TG9va3VwU2V0dGVyLCAgICAgICAgICAgICAx
KSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdCgid2F0Y2giLCBuZXcgT2JqZWN0UHJvdG9GdW5j
KGV4ZWMsIGZ1bmNQcm90bywgT2JqZWN0UHJvdG9GdW5jOjpXYXRjaCwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMiksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3QoInVud2F0Y2giLCBu
ZXcgT2JqZWN0UHJvdG9GdW5jKGV4ZWMsIGZ1bmNQcm90bywgT2JqZWN0UHJvdG9GdW5jOjpVbndh
dGNoLCAgICAgICAgICAgICAgICAgICAgICAgICAgIDIpLCBEb250RW51bSk7ICAgIAogfQogCiAK
QEAgLTE0Niw2ICsxNDgsMTcgQEAgSlNWYWx1ZSAqT2JqZWN0UHJvdG9GdW5jOjpjYWxsQXNGdW5j
dGlvbgogICAgICAgICAgICAgcmV0dXJuIGpzQm9vbGVhbih0aGlzT2JqLT5wcm9wZXJ0eUlzRW51
bWVyYWJsZShleGVjLCBJZGVudGlmaWVyKGFyZ3NbMF0tPnRvU3RyaW5nKGV4ZWMpKSkpOwogICAg
ICAgICBjYXNlIFRvTG9jYWxlU3RyaW5nOgogICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKHRo
aXNPYmotPnRvU3RyaW5nKGV4ZWMpKTsKKyAgICAgICAgY2FzZSBXYXRjaDogCisgICAgICAgICAg
ICBpZiAoIWFyZ3NbMV0tPmlzT2JqZWN0KCkgfHwgIXN0YXRpY19jYXN0PEpTT2JqZWN0ICo+KGFy
Z3NbMV0pLT5pbXBsZW1lbnRzQ2FsbCgpKQorICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vy
cm9yKGV4ZWMsIFR5cGVFcnJvciwgIlZhbHVlIHBhc3NlZCB0byB3YXRjaCBpcyBub3QgYSBmdW5j
dGlvbiIpOworCisgICAgICAgICAgICB0aGlzT2JqLT5hZGRXYXRjaChleGVjLCBJZGVudGlmaWVy
KGFyZ3NbMF0tPnRvU3RyaW5nKGV4ZWMpKSwgc3RhdGljX2Nhc3Q8SlNPYmplY3QgKj4oYXJnc1sx
XSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAg
ICAgICAgY2FzZSBVbndhdGNoOiAKKyAgICAgICAgICAgIHRoaXNPYmotPnJlbW92ZVdhdGNoKGV4
ZWMsIElkZW50aWZpZXIoYXJnc1swXS0+dG9TdHJpbmcoZXhlYykpKTsKKworICAgICAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgICAgIGNhc2UgVG9TdHJpbmc6CiAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4ganNTdHJpbmcoIltvYmplY3QgIiArIHRoaXNPYmot
PmNsYXNzTmFtZSgpICsgIl0iKTsKSW5kZXg6IGtqcy9vYmplY3Rfb2JqZWN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9vYmplY3Rfb2JqZWN0Lmgs
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTMKZGlmZiAtcCAtdSAtcjEuMTMga2pzL29iamVjdF9v
YmplY3QuaAotLS0ga2pzL29iamVjdF9vYmplY3QuaAkxOCBEZWMgMjAwNSAxMzoyNzowMCAtMDAw
MAkxLjEzCisrKyBranMvb2JqZWN0X29iamVjdC5oCTI2IERlYyAyMDA1IDIxOjEzOjQxIC0wMDAw
CkBAIC01Myw3ICs1Myw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHZpcnR1YWwgSlNWYWx1ZSAq
Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICosIEpTT2JqZWN0ICosIGNvbnN0IExpc3QgJmFyZ3Mp
OwogCiAgICAgZW51bSB7IFRvU3RyaW5nLCBUb0xvY2FsZVN0cmluZywgVmFsdWVPZiwgSGFzT3du
UHJvcGVydHksIElzUHJvdG90eXBlT2YsIFByb3BlcnR5SXNFbnVtZXJhYmxlLAotICAgICAgICAg
ICBEZWZpbmVHZXR0ZXIsIERlZmluZVNldHRlciwgTG9va3VwR2V0dGVyLCBMb29rdXBTZXR0ZXIg
fTsKKyAgICAgICAgICAgRGVmaW5lR2V0dGVyLCBEZWZpbmVTZXR0ZXIsIExvb2t1cEdldHRlciwg
TG9va3VwU2V0dGVyLCBXYXRjaCwgVW53YXRjaCB9OwogICBwcml2YXRlOgogICAgIGludCBpZDsK
ICAgfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>