<?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>24182</bug_id>
          
          <creation_ts>2009-02-25 21:10:08 -0800</creation_ts>
          <short_desc>Add custom V8 bindings for TreeWalker, NoderIterator, NodeFilter</short_desc>
          <delta_ts>2009-02-26 12:48:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>111105</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-02-25 21:10:08 -0800</bug_when>
    <thetext>Little by little...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111107</commentid>
    <comment_count>1</comment_count>
      <attachid>28004</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-02-25 21:19:25 -0800</bug_when>
    <thetext>Created attachment 28004
Add NodeFilter, NodeIterator, and Luke TreeWalker custom V8 bindings, v1.

 WebCore/ChangeLog                                  |   16 +++
 WebCore/bindings/v8/custom/V8NodeFilterCustom.cpp  |   48 ++++++++
 .../bindings/v8/custom/V8NodeIteratorCustom.cpp    |   81 +++++++++++++
 WebCore/bindings/v8/custom/V8TreeWalkerCustom.cpp  |  127 ++++++++++++++++++++
 4 files changed, 272 insertions(+), 0 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111108</commentid>
    <comment_count>2</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-02-25 21:20:34 -0800</bug_when>
    <thetext>Dear reviewer, if you&apos;re eseidel, then this is a deja-revu.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111245</commentid>
    <comment_count>3</comment_count>
      <attachid>28004</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-02-26 11:33:01 -0800</bug_when>
    <thetext>Comment on attachment 28004
Add NodeFilter, NodeIterator, and Luke TreeWalker custom V8 bindings, v1.

still looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111278</commentid>
    <comment_count>4</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-02-26 12:48:31 -0800</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/41263.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28004</attachid>
            <date>2009-02-25 21:19:25 -0800</date>
            <delta_ts>2009-02-26 11:33:01 -0800</delta_ts>
            <desc>Add NodeFilter, NodeIterator, and Luke TreeWalker custom V8 bindings, v1.</desc>
            <filename>Add-NodeFilter-NodeIterator-and-Luke-TreeWalker-custom-V8-bindings-v1..patch</filename>
            <type>text/plain</type>
            <size>11064</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">ZjI3MzNiOGM3OTkwYTA0NWE0NjYxN2VjOTdmMDg2YzZlNDhhNDY4NwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxODdjZmIxLi44YTFkNTY5
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDA5LTAyLTI1ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MTgyCisgICAg
ICAgIEFkZCBOb2RlRmlsdGVyLCBOb2RlSXRlcmF0b3IsIGFuZCBUcmVlV2Fsa2VyIGN1c3RvbSBW
OCBiaW5kaW5ncy4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVGaWx0ZXJD
dXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNBTExCQUNLX0ZVTkNfREVDTCk6
CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKFdlYkNvcmU6OkNBTExC
QUNLX0ZVTkNfREVDTCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4VHJlZVdhbGtl
ckN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6CisgICAgICAgIChX
ZWJDb3JlOjpDQUxMQkFDS19GVU5DX0RFQ0wpOgorCiAyMDA5LTAyLTI1ICBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4
LiBBZGQgV2ViQ29yZS93b3JrZXJzIHRvIHRoZSBsaXN0IG9mIHBhdGhzCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVGaWx0ZXJDdXN0b20uY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOb2RlRmlsdGVyQ3VzdG9tLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODM5NDIwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOb2RlRmlsdGVyQ3VzdG9tLmNwcApAQCAtMCwwICsxLDQ4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTm9kZUZpbHRlci5oIgorCisj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5j
bHVkZSAiVjhDdXN0b21CaW5kaW5nLmgiCisjaW5jbHVkZSAiVjhQcm94eS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK0NBTExCQUNLX0ZVTkNfREVDTChOb2RlRmlsdGVyQWNjZXB0Tm9kZSkK
K3sKKyAgICBJTkNfU1RBVFMoIkRPTS5Ob2RlRmlsdGVyLmFjY2VwdE5vZGUoKSIpOworICAgIHJl
dHVybiB0aHJvd0Vycm9yKE5PVF9TVVBQT1JURURfRVJSKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOb2RlSXRl
cmF0b3JDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOb2RlSXRlcmF0
b3JDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1MjY5ZjMK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVJdGVy
YXRvckN1c3RvbS5jcHAKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
Ny0yMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIk5vZGVJdGVyYXRvci5oIgorCisjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKwor
I2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4Q3VzdG9tQmluZGluZy5oIgorI2lu
Y2x1ZGUgIlY4UHJveHkuaCIKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBpbmxpbmUg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoUGFzc1JlZlB0cjxOb2RlPiBvYmplY3QsIEV4Y2Vw
dGlvbkNvZGUgZWMsIFNjcmlwdFN0YXRlKiBzdGF0ZSkKK3sKKyAgICBpZiAoZWMpCisgICAgICAg
IHJldHVybiB0aHJvd0Vycm9yKGVjKTsKKworICAgIGlmIChzdGF0ZS0+aGFkRXhjZXB0aW9uKCkp
CisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHN0YXRlLT5leGNlcHRpb24oKSk7CisKKyAgICBp
ZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKKworICAgIHJldHVy
biBWOFByb3h5OjpOb2RlVG9WOE9iamVjdChvYmplY3QuZ2V0KCkpOworfQorCitDQUxMQkFDS19G
VU5DX0RFQ0woTm9kZUl0ZXJhdG9yTmV4dE5vZGUpCit7CisgICAgSU5DX1NUQVRTKCJET00uTm9k
ZUl0ZXJhdG9yLm5leHROb2RlKCkiKTsKKyAgICBOb2RlSXRlcmF0b3IqIG5vZGVJdGVyYXRvciA9
IFY4UHJveHk6OlRvTmF0aXZlT2JqZWN0PE5vZGVJdGVyYXRvcj4oVjhDbGFzc0luZGV4OjpOT0RF
SVRFUkFUT1IsIGFyZ3MuSG9sZGVyKCkpOworCisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Cisg
ICAgU2NyaXB0U3RhdGUgc3RhdGU7CisgICAgUmVmUHRyPE5vZGU+IHJlc3VsdCA9IG5vZGVJdGVy
YXRvci0+bmV4dE5vZGUoJnN0YXRlLCBlYyk7CisgICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVh
c2UoKSwgZWMsICZzdGF0ZSk7Cit9CisKK0NBTExCQUNLX0ZVTkNfREVDTChOb2RlSXRlcmF0b3JQ
cmV2aW91c05vZGUpCit7CisgICAgSU5DX1NUQVRTKCJET00uTm9kZUl0ZXJhdG9yLnByZXZpb3Vz
Tm9kZSgpIik7CisgICAgTm9kZUl0ZXJhdG9yKiBub2RlSXRlcmF0b3IgPSBWOFByb3h5OjpUb05h
dGl2ZU9iamVjdDxOb2RlSXRlcmF0b3I+KFY4Q2xhc3NJbmRleDo6Tk9ERUlURVJBVE9SLCBhcmdz
LkhvbGRlcigpKTsKKworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIFNjcmlwdFN0YXRl
IHN0YXRlOworICAgIFJlZlB0cjxOb2RlPiByZXN1bHQgPSBub2RlSXRlcmF0b3ItPnByZXZpb3Vz
Tm9kZSgmc3RhdGUsIGVjKTsKKyAgICByZXR1cm4gdG9WOChyZXN1bHQucmVsZWFzZSgpLCBlYywg
JnN0YXRlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhUcmVlV2Fsa2VyQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4VHJlZVdhbGtlckN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMDhmZDY2YgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4VHJlZVdhbGtlckN1c3RvbS5jcHAKQEAgLTAsMCArMSwxMjcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUcmVlV2Fsa2VyLmgiCisKKyNpbmNs
dWRlICJOb2RlLmgiCisjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKworI2luY2x1ZGUgIlY4Qmlu
ZGluZy5oIgorI2luY2x1ZGUgIlY4Q3VzdG9tQmluZGluZy5oIgorI2luY2x1ZGUgIlY4UHJveHku
aCIKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBpbmxpbmUgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IHRvVjgoUGFzc1JlZlB0cjxOb2RlPiBvYmplY3QsIFNjcmlwdFN0YXRlKiBzdGF0ZSkK
K3sKKyAgICBpZiAoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcihzdGF0ZS0+ZXhjZXB0aW9uKCkpOworCisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIHJl
dHVybiB2ODo6VW5kZWZpbmVkKCk7CisKKyAgICByZXR1cm4gVjhQcm94eTo6Tm9kZVRvVjhPYmpl
Y3Qob2JqZWN0LmdldCgpKTsKK30KKworQ0FMTEJBQ0tfRlVOQ19ERUNMKFRyZWVXYWxrZXJQYXJl
bnROb2RlKQoreworICAgIElOQ19TVEFUUygiRE9NLlRyZWVXYWxrZXIucGFyZW50Tm9kZSgpIik7
CisgICAgVHJlZVdhbGtlciogdHJlZVdhbGtlciA9IFY4UHJveHk6OlRvTmF0aXZlT2JqZWN0PFRy
ZWVXYWxrZXI+KFY4Q2xhc3NJbmRleDo6VFJFRVdBTEtFUiwgYXJncy5Ib2xkZXIoKSk7CisKKyAg
ICBTY3JpcHRTdGF0ZSBzdGF0ZTsKKyAgICBSZWZQdHI8Tm9kZT4gcmVzdWx0ID0gdHJlZVdhbGtl
ci0+cGFyZW50Tm9kZSgmc3RhdGUpOworICAgIHJldHVybiB0b1Y4KHJlc3VsdC5yZWxlYXNlKCks
ICZzdGF0ZSk7Cit9CisKK0NBTExCQUNLX0ZVTkNfREVDTChUcmVlV2Fsa2VyRmlyc3RDaGlsZCkK
K3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UcmVlV2Fsa2VyLmZpcnN0Q2hpbGQoKSIpOworICAgIFRy
ZWVXYWxrZXIqIHRyZWVXYWxrZXIgPSBWOFByb3h5OjpUb05hdGl2ZU9iamVjdDxUcmVlV2Fsa2Vy
PihWOENsYXNzSW5kZXg6OlRSRUVXQUxLRVIsIGFyZ3MuSG9sZGVyKCkpOworCisgICAgU2NyaXB0
U3RhdGUgc3RhdGU7CisgICAgUmVmUHRyPE5vZGU+IHJlc3VsdCA9IHRyZWVXYWxrZXItPmZpcnN0
Q2hpbGQoJnN0YXRlKTsKKyAgICByZXR1cm4gdG9WOChyZXN1bHQucmVsZWFzZSgpLCAmc3RhdGUp
OworfQorCitDQUxMQkFDS19GVU5DX0RFQ0woVHJlZVdhbGtlckxhc3RDaGlsZCkKK3sKKyAgICBJ
TkNfU1RBVFMoIkRPTS5UcmVlV2Fsa2VyLmxhc3RDaGlsZCgpIik7CisgICAgVHJlZVdhbGtlciog
dHJlZVdhbGtlciA9IFY4UHJveHk6OlRvTmF0aXZlT2JqZWN0PFRyZWVXYWxrZXI+KFY4Q2xhc3NJ
bmRleDo6VFJFRVdBTEtFUiwgYXJncy5Ib2xkZXIoKSk7CisKKyAgICBTY3JpcHRTdGF0ZSBzdGF0
ZTsKKyAgICBSZWZQdHI8Tm9kZT4gcmVzdWx0ID0gdHJlZVdhbGtlci0+bGFzdENoaWxkKCZzdGF0
ZSk7CisgICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSwgJnN0YXRlKTsKK30KKworQ0FM
TEJBQ0tfRlVOQ19ERUNMKFRyZWVXYWxrZXJOZXh0Tm9kZSkKK3sKKyAgICBJTkNfU1RBVFMoIkRP
TS5UcmVlV2Fsa2VyLm5leHROb2RlKCkiKTsKKyAgICBUcmVlV2Fsa2VyKiB0cmVlV2Fsa2VyID0g
VjhQcm94eTo6VG9OYXRpdmVPYmplY3Q8VHJlZVdhbGtlcj4oVjhDbGFzc0luZGV4OjpUUkVFV0FM
S0VSLCBhcmdzLkhvbGRlcigpKTsKKworICAgIFNjcmlwdFN0YXRlIHN0YXRlOworICAgIFJlZlB0
cjxOb2RlPiByZXN1bHQgPSB0cmVlV2Fsa2VyLT5uZXh0Tm9kZSgmc3RhdGUpOworICAgIHJldHVy
biB0b1Y4KHJlc3VsdC5yZWxlYXNlKCksICZzdGF0ZSk7Cit9CisKK0NBTExCQUNLX0ZVTkNfREVD
TChUcmVlV2Fsa2VyUHJldmlvdXNOb2RlKQoreworICAgIElOQ19TVEFUUygiRE9NLlRyZWVXYWxr
ZXIucHJldmlvdXNOb2RlKCkiKTsKKyAgICBUcmVlV2Fsa2VyKiB0cmVlV2Fsa2VyID0gVjhQcm94
eTo6VG9OYXRpdmVPYmplY3Q8VHJlZVdhbGtlcj4oVjhDbGFzc0luZGV4OjpUUkVFV0FMS0VSLCBh
cmdzLkhvbGRlcigpKTsKKworICAgIFNjcmlwdFN0YXRlIHN0YXRlOworICAgIFJlZlB0cjxOb2Rl
PiByZXN1bHQgPSB0cmVlV2Fsa2VyLT5wcmV2aW91c05vZGUoJnN0YXRlKTsKKyAgICByZXR1cm4g
dG9WOChyZXN1bHQucmVsZWFzZSgpLCAmc3RhdGUpOworfQorCitDQUxMQkFDS19GVU5DX0RFQ0wo
VHJlZVdhbGtlck5leHRTaWJsaW5nKQoreworICAgIElOQ19TVEFUUygiRE9NLlRyZWVXYWxrZXIu
bmV4dFNpYmxpbmcoKSIpOworICAgIFRyZWVXYWxrZXIqIHRyZWVXYWxrZXIgPSBWOFByb3h5OjpU
b05hdGl2ZU9iamVjdDxUcmVlV2Fsa2VyPihWOENsYXNzSW5kZXg6OlRSRUVXQUxLRVIsIGFyZ3Mu
SG9sZGVyKCkpOworCisgICAgU2NyaXB0U3RhdGUgc3RhdGU7CisgICAgUmVmUHRyPE5vZGU+IHJl
c3VsdCA9IHRyZWVXYWxrZXItPm5leHRTaWJsaW5nKCZzdGF0ZSk7CisgICAgcmV0dXJuIHRvVjgo
cmVzdWx0LnJlbGVhc2UoKSwgJnN0YXRlKTsKK30KKworQ0FMTEJBQ0tfRlVOQ19ERUNMKFRyZWVX
YWxrZXJQcmV2aW91c1NpYmxpbmcpCit7CisgICAgSU5DX1NUQVRTKCJET00uVHJlZVdhbGtlci5w
cmV2aW91c1NpYmxpbmcoKSIpOworICAgIFRyZWVXYWxrZXIqIHRyZWVXYWxrZXIgPSBWOFByb3h5
OjpUb05hdGl2ZU9iamVjdDxUcmVlV2Fsa2VyPihWOENsYXNzSW5kZXg6OlRSRUVXQUxLRVIsIGFy
Z3MuSG9sZGVyKCkpOworCisgICAgU2NyaXB0U3RhdGUgc3RhdGU7CisgICAgUmVmUHRyPE5vZGU+
IHJlc3VsdCA9IHRyZWVXYWxrZXItPnByZXZpb3VzU2libGluZygmc3RhdGUpOworICAgIHJldHVy
biB0b1Y4KHJlc3VsdC5yZWxlYXNlKCksICZzdGF0ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUK
</data>
<flag name="review"
          id="13644"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>