<?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>72986</bug_id>
          
          <creation_ts>2011-11-22 14:14:42 -0800</creation_ts>
          <short_desc>[MutationObservers] Cleanup duplicated code in Element &amp; CharacterData</short_desc>
          <delta_ts>2011-11-23 02:46:24 -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>DOM</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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>68729</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Rafael Weinstein">rafaelw</reporter>
          <assigned_to name="Rafael Weinstein">rafaelw</assigned_to>
          <cc>adamk</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>507812</commentid>
    <comment_count>0</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2011-11-22 14:14:42 -0800</bug_when>
    <thetext>There is nearly indentical code in Element &amp; CharacterData which collects a set of interested MutationObservers, creates appropriate mutation records (with &amp; without oldValues) and delivers them.

We should create some sort of &quot;MutationObserverInterestGroup&quot; which encapsulates this logic</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507814</commentid>
    <comment_count>1</comment_count>
      <attachid>116275</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2011-11-22 14:18:21 -0800</bug_when>
    <thetext>Created attachment 116275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508030</commentid>
    <comment_count>2</comment_count>
      <attachid>116275</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-23 02:46:19 -0800</bug_when>
    <thetext>Comment on attachment 116275
Patch

Clearing flags on attachment: 116275

Committed r101061: &lt;http://trac.webkit.org/changeset/101061&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508031</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-23 02:46:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116275</attachid>
            <date>2011-11-22 14:18:21 -0800</date>
            <delta_ts>2011-11-23 02:46:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72986-20111122141820.patch</filename>
            <type>text/plain</type>
            <size>15085</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwOTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNjNGRkZGUyYjcxYWU3
MjRhYWMyODllZDJlN2ExYmEzOTI1ZjgxOS4uZWM4MjEzODFlMmFhYTlmNTg4MTQ1MTYyNzZlZTg1
N2M4ZTdkODJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDExLTExLTIyICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW011dGF0aW9u
T2JzZXJ2ZXJzXSBDbGVhbnVwIGR1cGxpY2F0ZWQgY29kZSBpbiBFbGVtZW50ICYgQ2hhcmFjdGVy
RGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5
ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGNyZWF0ZXMgYSBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cCB3aGljaCByZXBy
ZXNlbnRzIHRoZSBzZXQKKyAgICAgICAgb2YgTXV0YXRpb25PYnNlcnZlcnMgd2hpY2ggc2hvdWxk
IHJlY2VpdmUgYWxsIG11dGF0aW9ucyBvZiBhIGdpdmVuIHR5cGUgZ2VuZXJhdGVkCisgICAgICAg
IGZyb20gYSBzcGVjaWZpYyBub2RlLgorCisgICAgICAgIE5vIHRlc3RzIG5lZWRlZC4gVGhpcyBw
YXRjaCBpcyBvbmx5IGEgcmVmYWN0b3IuCisKKyAgICAgICAgKiBkb20vQ2hhcmFjdGVyRGF0YS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDaGFyYWN0ZXJEYXRhOjpkaXNwYXRjaE1vZGlmaWVkRXZl
bnQpOgorICAgICAgICAqIGRvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok11dGF0aW9uQWNjdW11bGF0aW9uUm91dGVyOjpDaGlsZExpc3RNdXRhdGlvbkFj
Y3VtdWxhdG9yOjpDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6Ok11dGF0aW9uQWNjdW11bGF0aW9uUm91dGVyOjpDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxh
dG9yOjplbnF1ZXVlTXV0YXRpb25SZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25B
Y2N1bXVsYXRpb25Sb3V0ZXI6Ok11dGF0aW9uQWNjdW11bGF0aW9uUm91dGVyOjppbmNyZW1lbnRT
Y29waW5nTGV2ZWwpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmVucXVldWVBdHRyaWJ1dGVzTXV0YXRpb25SZWNvcmQpOgorICAgICAgICAqIGRvbS9XZWJL
aXRNdXRhdGlvbk9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVGb3JDaGlsZExpc3RNdXRhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hhcmFjdGVy
RGF0YU11dGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVz
dEdyb3VwOjpjcmVhdGVGb3JBdHRyaWJ1dGVzTXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpp
c09sZFZhbHVlUmVxdWVzdGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJ
bnRlcmVzdEdyb3VwOjplbnF1ZXVlTXV0YXRpb25SZWNvcmQpOgorICAgICAgICAqIGRvbS9XZWJL
aXRNdXRhdGlvbk9ic2VydmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVy
SW50ZXJlc3RHcm91cDo6aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cDo6aGFzT2xkVmFsdWUpOgorCiAyMDExLTExLTIxICBSYWtlc2ggS04g
IDxyYWtlc2gua25AbW90b3JvbGEuY29tPgogCiAgICAgICAgIE5lZWQgc3VwcG9ydCBmb3IgZGly
bmFtZSBhdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJE
YXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcAppbmRleCBjMTE5
NjZmMjE2NTRkZDc1NDE1OWVmMTNmZmIwZGQ1Yjk5YTU3ODY0Li4yMWI1MmIzNWZjNjg4ZmNjOGI3
NzQzNjgyMzg0NDljYjk5YzA5ZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hh
cmFjdGVyRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3Bw
CkBAIC0xODgsNTIgKzE4OCwxMSBAQCB2b2lkIENoYXJhY3RlckRhdGE6OnVwZGF0ZVJlbmRlcmVy
KHVuc2lnbmVkIG9mZnNldE9mUmVwbGFjZWREYXRhLCB1bnNpZ25lZCBsZW5ndAogICAgICAgICB0
b1JlbmRlclRleHQocmVuZGVyZXIoKSktPnNldFRleHRXaXRoT2Zmc2V0KG1fZGF0YS5pbXBsKCks
IG9mZnNldE9mUmVwbGFjZWREYXRhLCBsZW5ndGhPZlJlcGxhY2VkRGF0YSk7CiB9CiAKLSNpZiBF
TkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQotc3RhdGljIGlubGluZSBib29sIGhhc09sZFZhbHVl
KE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMpCi17Ci0gICAgcmV0dXJuIG9wdGlvbnMg
JiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWU7Ci19Ci0KLXN0
YXRpYyBib29sIGlzT2xkVmFsdWVSZXF1ZXN0ZWQoY29uc3QgSGFzaE1hcDxXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKiwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnM+JiBvYnNlcnZlcnMpCi17Ci0gICAg
Zm9yIChIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvbk9ic2VydmVyT3B0
aW9ucz46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBvYnNlcnZlcnMuYmVnaW4oKTsgaXRlciAhPSBv
YnNlcnZlcnMuZW5kKCk7ICsraXRlcikgewotICAgICAgICBpZiAoaGFzT2xkVmFsdWUoaXRlci0+
c2Vjb25kKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFs
c2U7Ci19Ci0KLXN0YXRpYyB2b2lkIGVucXVldWVDaGFyYWN0ZXJEYXRhTXV0YXRpb25SZWNvcmQo
Tm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBvbGREYXRhKQotewotICAgIEhhc2hNYXA8V2ViS2l0
TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiBvYnNlcnZl
cnM7Ci0gICAgbm9kZS0+Z2V0UmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKG9ic2Vy
dmVycywgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YSk7Ci0gICAgaWYgKG9i
c2VydmVycy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIEZJWE1FOiBGYWN0
b3IgdGhpcyBsb2dpYyBvdXQgdG8gYXZvaWQgZHVwbGljYXRpb24gd2l0aCBhdHRyaWJ1dGVPbGRW
YWx1ZS4KLSAgICBSZWZQdHI8TXV0YXRpb25SZWNvcmQ+IG11dGF0aW9uID0gTXV0YXRpb25SZWNv
cmQ6OmNyZWF0ZUNoYXJhY3RlckRhdGEobm9kZSwgaXNPbGRWYWx1ZVJlcXVlc3RlZChvYnNlcnZl
cnMpID8gb2xkRGF0YSA6IFN0cmluZygpKTsKLSAgICBSZWZQdHI8TXV0YXRpb25SZWNvcmQ+IG11
dGF0aW9uV2l0aE51bGxPbGRWYWx1ZTsKLSAgICBmb3IgKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25P
YnNlcnZlciosIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zPjo6aXRlcmF0b3IgaXRlciA9IG9ic2Vy
dmVycy5iZWdpbigpOyBpdGVyICE9IG9ic2VydmVycy5lbmQoKTsgKytpdGVyKSB7Ci0gICAgICAg
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyID0gaXRlci0+Zmlyc3Q7Ci0gICAgICAg
IGlmIChoYXNPbGRWYWx1ZShpdGVyLT5zZWNvbmQpKSB7Ci0gICAgICAgICAgICBvYnNlcnZlci0+
ZW5xdWV1ZU11dGF0aW9uUmVjb3JkKG11dGF0aW9uKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICB9Ci0gICAgICAgIGlmICghbXV0YXRpb25XaXRoTnVsbE9sZFZhbHVlKSB7Ci0gICAg
ICAgICAgICBpZiAobXV0YXRpb24tPm9sZFZhbHVlKCkuaXNOdWxsKCkpCi0gICAgICAgICAgICAg
ICAgbXV0YXRpb25XaXRoTnVsbE9sZFZhbHVlID0gbXV0YXRpb247Ci0gICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgbXV0YXRpb25XaXRoTnVsbE9sZFZhbHVlID0gTXV0YXRpb25SZWNv
cmQ6OmNyZWF0ZVdpdGhOdWxsT2xkVmFsdWUobXV0YXRpb24pOwotICAgICAgICB9Ci0gICAgICAg
IG9ic2VydmVyLT5lbnF1ZXVlTXV0YXRpb25SZWNvcmQobXV0YXRpb25XaXRoTnVsbE9sZFZhbHVl
KTsKLSAgICB9Ci19Ci0jZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLQogdm9p
ZCBDaGFyYWN0ZXJEYXRhOjpkaXNwYXRjaE1vZGlmaWVkRXZlbnQoY29uc3QgU3RyaW5nJiBvbGRE
YXRhKQogewogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0gICAgZW5xdWV1ZUNoYXJh
Y3RlckRhdGFNdXRhdGlvblJlY29yZCh0aGlzLCBvbGREYXRhKTsKKyAgICBPd25QdHI8TXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXA+IG11dGF0aW9uUmVjaXBpZW50cyA9IE11dGF0aW9uT2Jz
ZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVGb3JDaGFyYWN0ZXJEYXRhTXV0YXRpb24odGhpcyk7
CisgICAgbXV0YXRpb25SZWNpcGllbnRzLT5lbnF1ZXVlTXV0YXRpb25SZWNvcmQoTXV0YXRpb25S
ZWNvcmQ6OmNyZWF0ZUNoYXJhY3RlckRhdGEodGhpcywgb2xkRGF0YSkpOwogI2VuZGlmCiAgICAg
aWYgKHBhcmVudE5vZGUoKSkKICAgICAgICAgcGFyZW50Tm9kZSgpLT5jaGlsZHJlbkNoYW5nZWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3Bl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcAppbmRl
eCA0M2M0NjFlNjczMDU3ODRhNTcwMGFiZTliMjNlYzNhZjc1ZTlhZWVkLi5kNTM4M2MwZGVkYzRk
MjhhOGNiMjU1MDJlMmU1NzMxNzU2MjNkYTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0No
aWxkTGlzdE11dGF0aW9uU2NvcGUuY3BwCkBAIC01Myw3ICs1Myw3IEBAIG5hbWVzcGFjZSB7CiBj
bGFzcyBDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8Q2hp
bGRMaXN0TXV0YXRpb25BY2N1bXVsYXRvcj4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENo
aWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3IpOwogcHVibGljOgotICAgIENoaWxkTGlzdE11dGF0
aW9uQWNjdW11bGF0b3IoUGFzc1JlZlB0cjxOb2RlPiwgSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9i
c2VydmVyKiwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnM+Jik7CisgICAgQ2hpbGRMaXN0TXV0YXRp
b25BY2N1bXVsYXRvcihQYXNzUmVmUHRyPE5vZGU+LCBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwPiBvYnNlcnZlcnMpOwogICAgIH5DaGlsZExpc3RNdXRhdGlvbkFjY3Vt
dWxhdG9yKCk7CiAKICAgICB2b2lkIGNoaWxkQWRkZWQoUGFzc1JlZlB0cjxOb2RlPik7CkBAIC03
Myw3ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE5vZGU+IG1fbmV4dFNpYmxpbmc7CiAg
ICAgUmVmUHRyPE5vZGU+IG1fbGFzdEFkZGVkOwogCi0gICAgSGFzaE1hcDxXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKiwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnM+IG1fb2JzZXJ2ZXJzOworICAgIE93
blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gbV9vYnNlcnZlcnM7CiB9OwogCiBj
bGFzcyBNdXRhdGlvbkFjY3VtdWxhdGlvblJvdXRlciB7CkBAIC0xMDAsMTAgKzEwMCwxMCBAQCBw
cml2YXRlOgogICAgIHN0YXRpYyBNdXRhdGlvbkFjY3VtdWxhdGlvblJvdXRlciogc19pbnN0YW5j
ZTsKIH07CiAKLUNoaWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3I6OkNoaWxkTGlzdE11dGF0aW9u
QWNjdW11bGF0b3IoUGFzc1JlZlB0cjxOb2RlPiB0YXJnZXQsIEhhc2hNYXA8V2ViS2l0TXV0YXRp
b25PYnNlcnZlciosIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zPiYgb2JzZXJ2ZXJzKQorQ2hpbGRM
aXN0TXV0YXRpb25BY2N1bXVsYXRvcjo6Q2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRvcihQYXNz
UmVmUHRyPE5vZGU+IHRhcmdldCwgUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RH
cm91cD4gb2JzZXJ2ZXJzKQogICAgIDogbV90YXJnZXQodGFyZ2V0KQorICAgICwgbV9vYnNlcnZl
cnMob2JzZXJ2ZXJzKQogewotICAgIG1fb2JzZXJ2ZXJzLnN3YXAob2JzZXJ2ZXJzKTsKICAgICBj
bGVhcigpOwogfQogCkBAIC0xNjYsMTIgKzE2Niw4IEBAIHZvaWQgQ2hpbGRMaXN0TXV0YXRpb25B
Y2N1bXVsYXRvcjo6ZW5xdWV1ZU11dGF0aW9uUmVjb3JkKCkKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIFJlZlB0cjxNdXRhdGlvblJlY29yZD4gbXV0YXRpb24gPSBNdXRhdGlvblJlY29y
ZDo6Y3JlYXRlQ2hpbGRMaXN0KAotICAgICAgICBtX3RhcmdldCwgU3RhdGljTm9kZUxpc3Q6OmFk
b3B0KG1fYWRkZWROb2RlcyksIFN0YXRpY05vZGVMaXN0OjphZG9wdChtX3JlbW92ZWROb2Rlcyks
IG1fcHJldmlvdXNTaWJsaW5nLnJlbGVhc2UoKSwgbV9uZXh0U2libGluZy5yZWxlYXNlKCkpOwot
Ci0gICAgZm9yIChIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9ucz46Oml0ZXJhdG9yIGl0ZXIgPSBtX29ic2VydmVycy5iZWdpbigpOyBpdGVyICE9
IG1fb2JzZXJ2ZXJzLmVuZCgpOyArK2l0ZXIpCi0gICAgICAgIGl0ZXItPmZpcnN0LT5lbnF1ZXVl
TXV0YXRpb25SZWNvcmQobXV0YXRpb24pOwotCisgICAgbV9vYnNlcnZlcnMtPmVucXVldWVNdXRh
dGlvblJlY29yZChNdXRhdGlvblJlY29yZDo6Y3JlYXRlQ2hpbGRMaXN0KAorICAgICAgICAgICAg
bV90YXJnZXQsIFN0YXRpY05vZGVMaXN0OjphZG9wdChtX2FkZGVkTm9kZXMpLCBTdGF0aWNOb2Rl
TGlzdDo6YWRvcHQobV9yZW1vdmVkTm9kZXMpLCBtX3ByZXZpb3VzU2libGluZy5yZWxlYXNlKCks
IG1fbmV4dFNpYmxpbmcucmVsZWFzZSgpKSk7CiAgICAgY2xlYXIoKTsKIH0KIApAQCAtMjQ0LDEy
ICsyNDAsMTEgQEAgdm9pZCBNdXRhdGlvbkFjY3VtdWxhdGlvblJvdXRlcjo6aW5jcmVtZW50U2Nv
cGluZ0xldmVsKE5vZGUqIHRhcmdldCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEhh
c2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRp
b25zPiBvYnNlcnZlcnM7Ci0gICAgdGFyZ2V0LT5nZXRSZWdpc3RlcmVkTXV0YXRpb25PYnNlcnZl
cnNPZlR5cGUob2JzZXJ2ZXJzLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QpOwot
ICAgIGlmIChvYnNlcnZlcnMuaXNFbXB0eSgpKQorICAgIE93blB0cjxNdXRhdGlvbk9ic2VydmVy
SW50ZXJlc3RHcm91cD4gb2JzZXJ2ZXJzID0gTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6
OmNyZWF0ZUZvckNoaWxkTGlzdE11dGF0aW9uKHRhcmdldCk7CisgICAgaWYgKG9ic2VydmVycy0+
aXNFbXB0eSgpKQogICAgICAgICBtX2FjY3VtdWxhdGlvbnMuc2V0KHRhcmdldCwgMCk7CiAgICAg
ZWxzZQotICAgICAgICBtX2FjY3VtdWxhdGlvbnMuc2V0KHRhcmdldCwgYWRvcHRSZWYobmV3IENo
aWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3IodGFyZ2V0LCBvYnNlcnZlcnMpKSk7CisgICAgICAg
IG1fYWNjdW11bGF0aW9ucy5zZXQodGFyZ2V0LCBhZG9wdFJlZihuZXcgQ2hpbGRMaXN0TXV0YXRp
b25BY2N1bXVsYXRvcih0YXJnZXQsIG9ic2VydmVycy5yZWxlYXNlKCkpKSk7CiB9CiAKIHZvaWQg
TXV0YXRpb25BY2N1bXVsYXRpb25Sb3V0ZXI6OmRlY3JlbWVudFNjb3BpbmdMZXZlbChOb2RlKiB0
YXJnZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMWJkNGQ1YzM3NjczZjllZTI2NjA3MTg0
OTZjMTI2OGFhMTEyNDlhZC4uYWNjZDk4NzFhZTVlNGQzNDEyMjMxMjQ0YzM4ZTY3ODgzMTJiZjY5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNjE3LDQ0ICs2MTcsMTAgQEAgY29uc3QgQXRv
bWljU3RyaW5nJiBFbGVtZW50OjpnZXRBdHRyaWJ1dGVOUyhjb25zdCBTdHJpbmcmIG5hbWVzcGFj
ZVVSSSwgY29uc3QgU3QKIH0KIAogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi1zdGF0
aWMgaW5saW5lIGJvb2wgaGFzT2xkVmFsdWUoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9u
cykKK3N0YXRpYyB2b2lkIGVucXVldWVBdHRyaWJ1dGVzTXV0YXRpb25SZWNvcmQoRWxlbWVudCog
dGFyZ2V0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIG9sZFZhbHVlKQogewotICAgIHJldHVybiBvcHRpb25zICYgV2ViS2l0TXV0YXRpb25P
YnNlcnZlcjo6QXR0cmlidXRlT2xkVmFsdWU7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc09s
ZFZhbHVlUmVxdWVzdGVkKGNvbnN0IEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11
dGF0aW9uT2JzZXJ2ZXJPcHRpb25zPiYgb2JzZXJ2ZXJzKQotewotICAgIGZvciAoSGFzaE1hcDxX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnM+Ojpjb25zdF9p
dGVyYXRvciBpdGVyID0gb2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ZXIgIT0gb2JzZXJ2ZXJzLmVuZCgp
OyArK2l0ZXIpIHsKLSAgICAgICAgaWYgKGhhc09sZFZhbHVlKGl0ZXItPnNlY29uZCkpCi0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1zdGF0
aWMgdm9pZCBlbnF1ZXVlQXR0cmlidXRlc011dGF0aW9uUmVjb3JkKEVsZW1lbnQqIGVsZW1lbnQs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgb2xkVmFsdWUp
Ci17Ci0gICAgSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmRE
ZWxpdmVyeU9wdGlvbnM+IG9ic2VydmVyczsKLSAgICBlbGVtZW50LT5nZXRSZWdpc3RlcmVkTXV0
YXRpb25PYnNlcnZlcnNPZlR5cGUob2JzZXJ2ZXJzLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpB
dHRyaWJ1dGVzLCBuYW1lLmxvY2FsTmFtZSgpKTsKLSAgICBpZiAob2JzZXJ2ZXJzLmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gRklYTUU6IEZhY3RvciB0aGlzIGxvZ2ljIG91
dCB0byBhdm9pZCBkdXBsaWNhdGlvbiB3aXRoIGNoYXJhY3RlckRhdGFPbGRWYWx1ZS4KLSAgICBS
ZWZQdHI8TXV0YXRpb25SZWNvcmQ+IG11dGF0aW9uID0gTXV0YXRpb25SZWNvcmQ6OmNyZWF0ZUF0
dHJpYnV0ZXMoZWxlbWVudCwgbmFtZSwgaXNPbGRWYWx1ZVJlcXVlc3RlZChvYnNlcnZlcnMpID8g
b2xkVmFsdWUgOiBudWxsQXRvbSk7Ci0gICAgUmVmUHRyPE11dGF0aW9uUmVjb3JkPiBtdXRhdGlv
bldpdGhOdWxsT2xkVmFsdWU7Ci0gICAgZm9yIChIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXIqLCBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucz46Oml0ZXJhdG9yIGl0ZXIgPSBvYnNlcnZlcnMu
YmVnaW4oKTsgaXRlciAhPSBvYnNlcnZlcnMuZW5kKCk7ICsraXRlcikgewotICAgICAgICBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlciA9IGl0ZXItPmZpcnN0OwotICAgICAgICBpZiAo
aGFzT2xkVmFsdWUoaXRlci0+c2Vjb25kKSkgewotICAgICAgICAgICAgb2JzZXJ2ZXItPmVucXVl
dWVNdXRhdGlvblJlY29yZChtdXRhdGlvbik7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgfQotICAgICAgICBpZiAoIW11dGF0aW9uV2l0aE51bGxPbGRWYWx1ZSkgewotICAgICAgICAg
ICAgaWYgKG11dGF0aW9uLT5vbGRWYWx1ZSgpLmlzTnVsbCgpKQotICAgICAgICAgICAgICAgIG11
dGF0aW9uV2l0aE51bGxPbGRWYWx1ZSA9IG11dGF0aW9uOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIG11dGF0aW9uV2l0aE51bGxPbGRWYWx1ZSA9IE11dGF0aW9uUmVjb3JkOjpj
cmVhdGVXaXRoTnVsbE9sZFZhbHVlKG11dGF0aW9uKS5nZXQoKTsKLSAgICAgICAgfQotICAgICAg
ICBvYnNlcnZlci0+ZW5xdWV1ZU11dGF0aW9uUmVjb3JkKG11dGF0aW9uV2l0aE51bGxPbGRWYWx1
ZSk7Ci0gICAgfQorICAgIE93blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gbXV0
YXRpb25SZWNpcGllbnRzID0gTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUZv
ckF0dHJpYnV0ZXNNdXRhdGlvbih0YXJnZXQsIGF0dHJpYnV0ZU5hbWUubG9jYWxOYW1lKCkpOwor
ICAgIG11dGF0aW9uUmVjaXBpZW50cy0+ZW5xdWV1ZU11dGF0aW9uUmVjb3JkKE11dGF0aW9uUmVj
b3JkOjpjcmVhdGVBdHRyaWJ1dGVzKHRhcmdldCwgYXR0cmlidXRlTmFtZSwgb2xkVmFsdWUpKTsK
IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5jcHAKaW5kZXggNzQ1YmZhMDM1ZWRhZDZkZTgzZTFlYWE1MTc5ZDIyYWRlYTgwZDYxMC4uZDNj
YThiNmExNzJlNjdlNDRjNWY3NjE0ZmM1N2IyZDgzYWE1OWVjZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcApAQCAtMTQxLDYgKzE0MSw2MiBAQCB2
b2lkIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKQogICAgIH0K
IH0KIAorUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gTXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUZvckNoaWxkTGlzdE11dGF0aW9uKE5vZGUqIHRh
cmdldCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVz
dEdyb3VwKHRhcmdldCwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0KSk7Cit9CisK
K1Bhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IE11dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVGb3JDaGFyYWN0ZXJEYXRhTXV0YXRpb24oTm9kZSogdGFy
Z2V0KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgTXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXAodGFyZ2V0LCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhKSk7Cit9
CisKK1Bhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IE11dGF0aW9uT2Jz
ZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVGb3JBdHRyaWJ1dGVzTXV0YXRpb24oTm9kZSogdGFy
Z2V0LCBjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZU5hbWUpCit7CisgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cCh0YXJnZXQsIFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMsIGF0dHJpYnV0ZU5hbWUpKTsKK30KKworTXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXA6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwKE5v
ZGUqIHRhcmdldCwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUsIGNv
bnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRlTmFtZSkKK3sKKyAgICB0YXJnZXQtPmdldFJlZ2lz
dGVyZWRNdXRhdGlvbk9ic2VydmVyc09mVHlwZShtX29ic2VydmVycywgdHlwZSwgYXR0cmlidXRl
TmFtZSk7CisgICAgaWYgKHR5cGUgJiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVz
KQorICAgICAgICBtX29sZFZhbHVlRmxhZyA9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJp
YnV0ZU9sZFZhbHVlOworICAgIGVsc2UgaWYgKHR5cGUgJiBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
OjpDaGFyYWN0ZXJEYXRhKQorICAgICAgICBtX29sZFZhbHVlRmxhZyA9IFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZTsKK30KKworYm9vbCBNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cDo6aXNPbGRWYWx1ZVJlcXVlc3RlZCgpCit7CisgICAgZm9yIChIYXNo
TWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9u
cz46Oml0ZXJhdG9yIGl0ZXIgPSBtX29ic2VydmVycy5iZWdpbigpOyBpdGVyICE9IG1fb2JzZXJ2
ZXJzLmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgaWYgKGhhc09sZFZhbHVlKGl0ZXItPnNlY29u
ZCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit2b2lkIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjplbnF1ZXVlTXV0YXRpb25S
ZWNvcmQoUGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4gcHJwTXV0YXRpb24pCit7CisgICAgaWYg
KG1fb2JzZXJ2ZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPE11
dGF0aW9uUmVjb3JkPiBtdXRhdGlvbiA9IHBycE11dGF0aW9uOworICAgIFJlZlB0cjxNdXRhdGlv
blJlY29yZD4gbXV0YXRpb25XaXRoTnVsbE9sZFZhbHVlOworICAgIGZvciAoSGFzaE1hcDxXZWJL
aXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjppdGVy
YXRvciBpdGVyID0gbV9vYnNlcnZlcnMuYmVnaW4oKTsgaXRlciAhPSBtX29ic2VydmVycy5lbmQo
KTsgKytpdGVyKSB7CisgICAgICAgIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyID0g
aXRlci0+Zmlyc3Q7CisgICAgICAgIGlmIChoYXNPbGRWYWx1ZShpdGVyLT5zZWNvbmQpKSB7Cisg
ICAgICAgICAgICBvYnNlcnZlci0+ZW5xdWV1ZU11dGF0aW9uUmVjb3JkKG11dGF0aW9uKTsKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGlmICghbXV0YXRpb25XaXRo
TnVsbE9sZFZhbHVlKSB7CisgICAgICAgICAgICBpZiAobXV0YXRpb24tPm9sZFZhbHVlKCkuaXNO
dWxsKCkpCisgICAgICAgICAgICAgICAgbXV0YXRpb25XaXRoTnVsbE9sZFZhbHVlID0gbXV0YXRp
b247CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbXV0YXRpb25XaXRoTnVsbE9s
ZFZhbHVlID0gTXV0YXRpb25SZWNvcmQ6OmNyZWF0ZVdpdGhOdWxsT2xkVmFsdWUobXV0YXRpb24p
LmdldCgpOworICAgICAgICB9CisgICAgICAgIG9ic2VydmVyLT5lbnF1ZXVlTXV0YXRpb25SZWNv
cmQobXV0YXRpb25XaXRoTnVsbE9sZFZhbHVlKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaAppbmRleCBiNjk0ZjQ1ODU5YTBj
YzVhM2EyZmQ0YTQwODRhZTkxNmJkNTY5ZjQ0Li5lYWE2NzU0Y2E4ZmRjZGUzOWUwODFhN2MxMmZl
YzFmN2RhMWI1M2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMp
CiAKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpA
QCAtOTQsNiArOTUsMjQgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24qPiBtX3JlZ2lzdHJhdGlvbnM7CiB9OwogCitjbGFzcyBNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8TXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXA+IGNyZWF0ZUZvckNoaWxkTGlzdE11dGF0aW9uKE5vZGUq
IHRhcmdldCk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXA+IGNyZWF0ZUZvckNoYXJhY3RlckRhdGFNdXRhdGlvbihOb2RlKiB0YXJnZXQpOworICAg
IHN0YXRpYyBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVG
b3JBdHRyaWJ1dGVzTXV0YXRpb24oTm9kZSogdGFyZ2V0LCBjb25zdCBBdG9taWNTdHJpbmcmIGF0
dHJpYnV0ZU5hbWUpOworCisgICAgYm9vbCBpc09sZFZhbHVlUmVxdWVzdGVkKCk7CisgICAgYm9v
bCBpc0VtcHR5KCkgeyByZXR1cm4gbV9vYnNlcnZlcnMuaXNFbXB0eSgpOyB9CisgICAgdm9pZCBl
bnF1ZXVlTXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4pOworcHJpdmF0
ZToKKyAgICBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cChOb2RlKiB0YXJnZXQsIFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRy
aWJ1dGVOYW1lID0gbnVsbEF0b20pOworCisgICAgaW5saW5lIGJvb2wgaGFzT2xkVmFsdWUoTXV0
YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb3B0aW9ucykgeyByZXR1cm4gb3B0aW9ucyAmIG1f
b2xkVmFsdWVGbGFnOyB9CisKKyAgICBIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBN
dXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gbV9vYnNlcnZlcnM7CisgICAgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcjo6RGVsaXZlcnlGbGFncyBtX29sZFZhbHVlRmxhZzsKK307CisKIH0KIAog
I2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>