<?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>52481</bug_id>
          
          <creation_ts>2011-01-14 14:09:45 -0800</creation_ts>
          <short_desc>Stop instantiating legacy editing positions in AccessibilityRenderObject.cpp, Element.cpp, BreakBlockquoteCommand.cpp, CompositeEditCommand.cpp, and DeleteButtonController.cpp</short_desc>
          <delta_ts>2011-01-17 13:02:12 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>52099</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>kalman</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>334599</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-14 14:09:45 -0800</bug_when>
    <thetext>This is a cleanup bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334626</commentid>
    <comment_count>1</comment_count>
      <attachid>79004</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-14 14:43:15 -0800</bug_when>
    <thetext>Created attachment 79004
cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334627</commentid>
    <comment_count>2</comment_count>
      <attachid>79004</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-14 14:44:55 -0800</bug_when>
    <thetext>Comment on attachment 79004
cleanup

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334628</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-14 14:45:24 -0800</bug_when>
    <thetext>We&apos;re going to have to solve the Position ref-churn problem at some point.  All these functions should be reutrning some sort of PassPosition object which knows how to avoid the ref-churn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334631</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-14 14:49:00 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; We&apos;re going to have to solve the Position ref-churn problem at some point.  All these functions should be reutrning some sort of PassPosition object which knows how to avoid the ref-churn.

Yeah, that&apos;ll be nice.  In fact, PassPosition can just contain Node* and offset because we shouldn&apos;t be relying on positions to hang onto nodes given Position&apos;s constructor takes Node*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334708</commentid>
    <comment_count>5</comment_count>
      <attachid>79004</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-14 16:17:00 -0800</bug_when>
    <thetext>Comment on attachment 79004
cleanup

Clearing flags on attachment: 79004

Committed r75835: &lt;http://trac.webkit.org/changeset/75835&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334709</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-14 16:17:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335468</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-17 12:57:46 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; PassPosition can just contain Node* and offset because we shouldn&apos;t be relying on positions to hang onto nodes given Position&apos;s constructor takes Node*.

That’t not right. I think PassPosition needs to contain a RefPtr or PassRefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335475</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-17 13:02:12 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #4)
&gt; &gt; PassPosition can just contain Node* and offset because we shouldn&apos;t be relying on positions to hang onto nodes given Position&apos;s constructor takes Node*.
&gt; 
&gt; That’t not right. I think PassPosition needs to contain a RefPtr or PassRefPtr.

Yeah, it would have worked if only Position&apos;s helper functions (which also take Node*) returned PassPosition but to allow other functions return PassPosition, we need to use PassRefPtr (my work-in-progress patch uses PassRefPtr).  Anyhow, PassPosition is to be implemented in the bug 52504.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79004</attachid>
            <date>2011-01-14 14:43:15 -0800</date>
            <delta_ts>2011-01-14 16:17:00 -0800</delta_ts>
            <desc>cleanup</desc>
            <filename>bug-52481-20110114144314.patch</filename>
            <type>text/plain</type>
            <size>13268</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhZjFhOThjYTkyMzQ0ZjAyNmU3NGVjNGM4OGNhOGMwMWNjODNlZTE1Li5j
MjcxZmY4ZTM5YWVmYjAyNmM0M2EwMDA1YjVmN2QxOThiZDRmNjlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzggQEAKKzIwMTEtMDEtMTQgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RvcCBp
bnN0YW50aWF0aW5nIGxlZ2FjeSBlZGl0aW5nIHBvc2l0aW9ucyBpbiBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcCwgRWxlbWVudC5jcHAsCisgICAgICAgIEJyZWFrQmxvY2txdW90ZUNvbW1h
bmQuY3BwLCBDb21wb3NpdGVFZGl0Q29tbWFuZC5jcHAsIGFuZCBEZWxldGVCdXR0b25Db250cm9s
bGVyLmNwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTI0ODEKKworICAgICAgICBSZW1vdmVkIGluc3RhbnRpYXRpb24gb2YgbGVnYWN5IGVkaXRpbmcg
cG9zaXRpb25zLgorICAgICAgICBDYWxscyB0byBQb3NpdGlvbjo6UG9zaXRpb24gYXJlIHJlcGxh
Y2VkIGJ5IGNhbGxzIHRvIFBvc2l0aW9uJ3MgY29udmVuaWVuY2UgZnVuY3Rpb25zLgorICAgICAg
ICAKKyAgICAgICAgQWxzbyBmaXhlZCBmaXJzdFBvc2l0aW9uSW5PckJlZm9yZU5vZGUgYW5kIGxh
c3RQb3NpdGlvbkluT3JBZnRlck5vZGUgc28gdGhhdAorICAgICAgICB0aGV5IGluc3RhbnRpYXRl
IHJpZ2h0IHBvc2l0aW9ucyBmb3IgdGV4dCBub2Rlcy4KKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAgICAgICog
ZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6dXBkYXRlRm9jdXNB
cHBlYXJhbmNlKToKKyAgICAgICAgKiBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNvbW1hbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QnJlYWtCbG9ja3F1b3RlQ29tbWFuZDo6ZG9BcHBseSk6Cisg
ICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5wdXRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZWJhbGFuY2VXaGl0ZXNwYWNlQXQpOgorICAgICAgICAo
V2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhDb250ZW50c1RvTmV3
QmxvY2tJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6bW92ZVBhcmFncmFwaHMpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1h
bmQ6OmJyZWFrT3V0T2ZFbXB0eUxpc3RJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
ZUVkaXRDb21tYW5kOjpicmVha091dE9mRW1wdHlNYWlsQmxvY2txdW90ZWRQYXJhZ3JhcGgpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnNwbGl0VHJlZVRvTm9kZSk6
CisgICAgICAgICogZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmVuY2xvc2luZ0RlbGV0YWJsZUVsZW1lbnQpOgorICAgICAgICAqIGVkaXRpbmcv
aHRtbGVkaXRpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OmZpcnN0UG9zaXRpb25Jbk9yQmVmb3Jl
Tm9kZSk6IEluc3RhbnRpYXRlcyBmaXJzdFBvc2l0aW9uSW5Ob2RlIGluc3RlYWQgb2YKKyAgICAg
ICAgcG9zaXRpb25CZWZvcmVOb2RlIGZvciBhIHRleHQgbm9kZS4KKyAgICAgICAgKFdlYkNvcmU6
Omxhc3RQb3NpdGlvbkluT3JBZnRlck5vZGUpOiBEaXR0by4KKwogMjAxMS0wMS0xNCAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBMZXQgWGNvZGUgaGF2
ZSBpdCdzIHdheSB3aXRoIHRoZSBwcm9qZWN0IGZpbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRl
eCA3ZGM2ODQwMmJlYWRlZjgxYTc3ZDM0NDk3ZTBjYjI4MzQ3YzQxYmE0Li44YjBjNWNhMjY5M2E1
MDBlNWI3ZmQ3YmYxMjcwMGIyYWI2YzA1YjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTIw
MjYsOCArMjAyNiw4IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0
ZWRUZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmIHJhbmdlCiAgICAgaWYgKCFmcmFtZSkK
ICAgICAgICAgcmV0dXJuOwogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0g
ICAgZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3Np
dGlvbihub2RlLCByYW5nZS5zdGFydCksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0
YXJ0ICsgcmFuZ2UubGVuZ3RoKSwgRE9XTlNUUkVBTSkpOworICAgIGZyYW1lLT5zZWxlY3Rpb24o
KS0+c2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3Rh
cnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLAorICAgICAgICBQb3NpdGlv
bihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNP
ZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pKTsKIH0KIAogS1VSTCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojp1cmwoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDZkMTgzZWY5
YzE4NjNlZDYwMGI0YzhhYmUzNjU4MDFiOTM1ZmIyNDUuLmM2MWI5NWQ3YzE1MmI3MDg3NjRmYzhi
Y2M0ZjNkNTJhM2M5Y2JjZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTE0ODEsNyArMTQ4
MSw3IEBAIHZvaWQgRWxlbWVudDo6dXBkYXRlRm9jdXNBcHBlYXJhbmNlKGJvb2wgLypyZXN0b3Jl
UHJldmlvdXNTZWxlY3Rpb24qLykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIHJlc3RvcmUgdGhlIHByZXZpb3VzIHNlbGVjdGlvbiBpZiB0aGVyZSBp
cyBvbmUuCi0gICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNl
bGVjdGlvbihQb3NpdGlvbih0aGlzLCAwKSwgRE9XTlNUUkVBTSk7CisgICAgICAgIFZpc2libGVT
ZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihmaXJzdFBvc2l0aW9uSW5O
b2RlKHRoaXMpLCBET1dOU1RSRUFNKTsKICAgICAgICAgCiAgICAgICAgIGlmIChmcmFtZS0+c2Vs
ZWN0aW9uKCktPnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CiAgICAgICAg
ICAgICBmcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5jcHAKaW5k
ZXggNjM5NTZlNWE4NzkwZjdkMTI5ODAyZTFkZmZiZTE5OGYwZDhmM2YxMy4uYWU0MDljNmIwNzE2
MWFiN2MxZGJkNWY3ODFmOGZjZjUwNjZmZjg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNvbW1hbmQuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQg
QnJlYWtCbG9ja3F1b3RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgLy8gSW5zdGVhZCwgaW5zZXJ0
IHRoZSBicmVhayBiZWZvcmUgdGhlIGJsb2NrcXVvdGUsIHVubGVzcyB0aGUgcG9zaXRpb24gaXMg
YXMgdGhlIGVuZCBvZiB0aGUgdGhlIHF1b3RlZCBjb250ZW50LgogICAgIGlmIChpc0ZpcnN0Vmlz
aWJsZVBvc2l0aW9uSW5Ob2RlKHZpc2libGVQb3MsIHRvcEJsb2NrcXVvdGUpICYmICFpc0xhc3RW
aXNQb3NJbk5vZGUpIHsKICAgICAgICAgaW5zZXJ0Tm9kZUJlZm9yZShicmVha05vZGUuZ2V0KCks
IHRvcEJsb2NrcXVvdGUpOwotICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVj
dGlvbihQb3NpdGlvbihicmVha05vZGUuZ2V0KCksIDApLCBET1dOU1RSRUFNKSk7CisgICAgICAg
IHNldEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvc2l0aW9uQmVmb3JlTm9kZShi
cmVha05vZGUuZ2V0KCkpLCBET1dOU1RSRUFNKSk7CiAgICAgICAgIHJlYmFsYW5jZVdoaXRlc3Bh
Y2UoKTsgICAKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBC
cmVha0Jsb2NrcXVvdGVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIC8vIElmIHdlJ3JlIGluc2Vy
dGluZyB0aGUgYnJlYWsgYXQgdGhlIGVuZCBvZiB0aGUgcXVvdGVkIGNvbnRlbnQsIHdlIGRvbid0
IG5lZWQgdG8gYnJlYWsgdGhlIHF1b3RlLgogICAgIGlmIChpc0xhc3RWaXNQb3NJbk5vZGUpIHsK
LSAgICAgICAgc2V0RW5kaW5nU2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oUG9zaXRpb24oYnJl
YWtOb2RlLmdldCgpLCAwKSwgRE9XTlNUUkVBTSkpOworICAgICAgICBzZXRFbmRpbmdTZWxlY3Rp
b24oVmlzaWJsZVNlbGVjdGlvbihwb3NpdGlvbkJlZm9yZU5vZGUoYnJlYWtOb2RlLmdldCgpKSwg
RE9XTlNUUkVBTSkpOwogICAgICAgICByZWJhbGFuY2VXaGl0ZXNwYWNlKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBCcmVha0Jsb2NrcXVvdGVDb21t
YW5kOjpkb0FwcGx5KCkKICAgICAKICAgICAvLyBJZiB0aGVyZSdzIG5vdGhpbmcgaW5zaWRlIHRv
cEJsb2NrcXVvdGUgdG8gbW92ZSwgd2UncmUgZmluaXNoZWQuCiAgICAgaWYgKCFzdGFydE5vZGUt
PmlzRGVzY2VuZGFudE9mKHRvcEJsb2NrcXVvdGUpKSB7Ci0gICAgICAgIHNldEVuZGluZ1NlbGVj
dGlvbihWaXNpYmxlU2VsZWN0aW9uKFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihzdGFydE5vZGUs
IDApKSkpOworICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihWaXNp
YmxlUG9zaXRpb24oZmlyc3RQb3NpdGlvbkluT3JCZWZvcmVOb2RlKHN0YXJ0Tm9kZSkpKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkBAIC0xOTgsNyArMTk4LDcgQEAgdm9pZCBCcmVh
a0Jsb2NrcXVvdGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICBhZGRCbG9ja1BsYWNlaG9sZGVySWZO
ZWVkZWQoY2xvbmVkQmxvY2txdW90ZS5nZXQoKSk7CiAgICAgCiAgICAgLy8gUHV0IHRoZSBzZWxl
Y3Rpb24gcmlnaHQgYmVmb3JlIHRoZSBicmVhay4KLSAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlz
aWJsZVNlbGVjdGlvbihQb3NpdGlvbihicmVha05vZGUuZ2V0KCksIDApLCBET1dOU1RSRUFNKSk7
CisgICAgc2V0RW5kaW5nU2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zaXRpb25CZWZvcmVO
b2RlKGJyZWFrTm9kZS5nZXQoKSksIERPV05TVFJFQU0pKTsKICAgICByZWJhbGFuY2VXaGl0ZXNw
YWNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHAKaW5kZXggNzQ4Nzc3ZDYwYWJhYjJlOWZiYTA5NjNjZmQ2NzAyZTgwOWMxNDlhZi4u
OWUxZGZjYTU1OGNkYTg5ZmRlY2FhNzE0YmVhNjgyMmIwNzk3ZWUwOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTMwMSw3ICszMDEs
NyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5nJiB0
ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dAogewogICAgIHVuc2lnbmVkIG9mZnNldCA9IDA7
CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gdGV4dC5sZW5ndGgoKTsKLSAgICBSZWZQdHI8UmFuZ2U+
IHN0YXJ0UmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKGRvY3VtZW50KCksIFBvc2l0aW9uKGRvY3VtZW50
KCktPmRvY3VtZW50RWxlbWVudCgpLCAwKSwgZW5kaW5nU2VsZWN0aW9uKCkuc3RhcnQoKSk7Cisg
ICAgUmVmUHRyPFJhbmdlPiBzdGFydFJhbmdlID0gUmFuZ2U6OmNyZWF0ZShkb2N1bWVudCgpLCBm
aXJzdFBvc2l0aW9uSW5Ob2RlKGRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpKSwgZW5kaW5n
U2VsZWN0aW9uKCkuc3RhcnQoKSk7CiAgICAgdW5zaWduZWQgc3RhcnRJbmRleCA9IFRleHRJdGVy
YXRvcjo6cmFuZ2VMZW5ndGgoc3RhcnRSYW5nZS5nZXQoKSk7CiAgICAgc2l6ZV90IG5ld2xpbmU7
CiAgICAgZG8gewpAQCAtMzk4LDE3ICszOTgsMTcgQEAgc3RhdGljIGlubGluZSBib29sIGlzV2hp
dGVzcGFjZShVQ2hhciBjKQogLy8gRklYTUU6IERvZXNuJ3QgZ28gaW50byB0ZXh0IG5vZGVzIHRo
YXQgY29udHJpYnV0ZSBhZGphY2VudCB0ZXh0IChzaWJsaW5ncywgY291c2lucywgZXRjKS4KIHZv
aWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlYmFsYW5jZVdoaXRlc3BhY2VBdChjb25zdCBQb3Np
dGlvbiYgcG9zaXRpb24pCiB7Ci0gICAgTm9kZSogbm9kZSA9IHBvc2l0aW9uLm5vZGUoKTsKLSAg
ICBpZiAoIW5vZGUgfHwgIW5vZGUtPmlzVGV4dE5vZGUoKSkKKyAgICBOb2RlKiBub2RlID0gcG9z
aXRpb24uY29udGFpbmVyTm9kZSgpOworICAgIGlmIChwb3NpdGlvbi5hbmNob3JUeXBlKCkgIT0g
UG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciB8fCAhbm9kZSB8fCAhbm9kZS0+aXNU
ZXh0Tm9kZSgpKQogICAgICAgICByZXR1cm47CiAgICAgVGV4dCogdGV4dE5vZGUgPSBzdGF0aWNf
Y2FzdDxUZXh0Kj4obm9kZSk7Ci0gICAgCisKICAgICBpZiAodGV4dE5vZGUtPmxlbmd0aCgpID09
IDApCiAgICAgICAgIHJldHVybjsKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gdGV4dE5v
ZGUtPnJlbmRlcmVyKCk7CiAgICAgaWYgKHJlbmRlcmVyICYmICFyZW5kZXJlci0+c3R5bGUoKS0+
Y29sbGFwc2VXaGl0ZVNwYWNlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCisKICAgICBT
dHJpbmcgdGV4dCA9IHRleHROb2RlLT5kYXRhKCk7CiAgICAgQVNTRVJUKCF0ZXh0LmlzRW1wdHko
KSk7CiAKQEAgLTQzMiw4ICs0MzIsOCBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZWJh
bGFuY2VXaGl0ZXNwYWNlQXQoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKQogICAgIGludCBsZW5n
dGggPSBkb3duc3RyZWFtIC0gdXBzdHJlYW0gKyAxOwogICAgIEFTU0VSVChsZW5ndGggPiAwKTsK
ICAgICAKLSAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVVwc3RyZWFtUG9zKFBvc2l0aW9uKHBv
c2l0aW9uLm5vZGUoKSwgdXBzdHJlYW0pKTsKLSAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZURv
d25zdHJlYW1Qb3MoUG9zaXRpb24ocG9zaXRpb24ubm9kZSgpLCBkb3duc3RyZWFtICsgMSkpOwor
ICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlVXBzdHJlYW1Qb3MoUG9zaXRpb24ocG9zaXRpb24u
Y29udGFpbmVyTm9kZSgpLCB1cHN0cmVhbSwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFu
Y2hvcikpOworICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlRG93bnN0cmVhbVBvcyhQb3NpdGlv
bihwb3NpdGlvbi5jb250YWluZXJOb2RlKCksIGRvd25zdHJlYW0gKyAxLCBQb3NpdGlvbjo6UG9z
aXRpb25Jc09mZnNldEluQW5jaG9yKSk7CiAgICAgCiAgICAgU3RyaW5nIHN0cmluZyA9IHRleHQu
c3Vic3RyaW5nKHVwc3RyZWFtLCBsZW5ndGgpOwogICAgIFN0cmluZyByZWJhbGFuY2VkU3RyaW5n
ID0gc3RyaW5nV2l0aFJlYmFsYW5jZWRXaGl0ZXNwYWNlKHN0cmluZywKQEAgLTcxNSwxMCArNzE1
LDEwIEBAIFBhc3NSZWZQdHI8Tm9kZT4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3Jh
cGhDb250ZW50c1RvTmV3QmxvY2tJZk5lY2Vzc2FyCiAgICAgfQogCiAgICAgUmVmUHRyPE5vZGU+
IG5ld0Jsb2NrID0gaW5zZXJ0TmV3RGVmYXVsdFBhcmFncmFwaEVsZW1lbnRBdCh1cHN0cmVhbVN0
YXJ0KTsKLSAgICAKKwogICAgIGJvb2wgZW5kV2FzQnIgPSB2aXNpYmxlUGFyYWdyYXBoRW5kLmRl
ZXBFcXVpdmFsZW50KCkubm9kZSgpLT5oYXNUYWdOYW1lKGJyVGFnKTsKIAotICAgIG1vdmVQYXJh
Z3JhcGhzKHZpc2libGVQYXJhZ3JhcGhTdGFydCwgdmlzaWJsZVBhcmFncmFwaEVuZCwgVmlzaWJs
ZVBvc2l0aW9uKFBvc2l0aW9uKG5ld0Jsb2NrLmdldCgpLCAwKSkpOworICAgIG1vdmVQYXJhZ3Jh
cGhzKHZpc2libGVQYXJhZ3JhcGhTdGFydCwgdmlzaWJsZVBhcmFncmFwaEVuZCwgVmlzaWJsZVBv
c2l0aW9uKGZpcnN0UG9zaXRpb25Jbk5vZGUobmV3QmxvY2suZ2V0KCkpKSk7CiAKICAgICBpZiAo
bmV3QmxvY2stPmxhc3RDaGlsZCgpICYmIG5ld0Jsb2NrLT5sYXN0Q2hpbGQoKS0+aGFzVGFnTmFt
ZShiclRhZykgJiYgIWVuZFdhc0JyKQogICAgICAgICByZW1vdmVOb2RlKG5ld0Jsb2NrLT5sYXN0
Q2hpbGQoKSk7CkBAIC05NzMsMTAgKzk3MywxMCBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5k
Ojptb3ZlUGFyYWdyYXBocyhjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZQYXJhZ3JhcAog
ICAgICAgICAvLyBOZWVkIGFuIHVwZGF0ZUxheW91dCBoZXJlIGluIGNhc2UgaW5zZXJ0aW5nIHRo
ZSBiciBoYXMgc3BsaXQgYSB0ZXh0IG5vZGUuCiAgICAgICAgIHVwZGF0ZUxheW91dCgpOwogICAg
IH0KLSAgICAgICAgCi0gICAgUmVmUHRyPFJhbmdlPiBzdGFydFRvRGVzdGluYXRpb25SYW5nZShS
YW5nZTo6Y3JlYXRlKGRvY3VtZW50KCksIFBvc2l0aW9uKGRvY3VtZW50KCksIDApLCByYW5nZUNv
bXBsaWFudEVxdWl2YWxlbnQoZGVzdGluYXRpb24uZGVlcEVxdWl2YWxlbnQoKSkpKTsKKworICAg
IFJlZlB0cjxSYW5nZT4gc3RhcnRUb0Rlc3RpbmF0aW9uUmFuZ2UoUmFuZ2U6OmNyZWF0ZShkb2N1
bWVudCgpLCBmaXJzdFBvc2l0aW9uSW5Ob2RlKGRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgp
KSwgcmFuZ2VDb21wbGlhbnRFcXVpdmFsZW50KGRlc3RpbmF0aW9uLmRlZXBFcXVpdmFsZW50KCkp
KSk7CiAgICAgZGVzdGluYXRpb25JbmRleCA9IFRleHRJdGVyYXRvcjo6cmFuZ2VMZW5ndGgoc3Rh
cnRUb0Rlc3RpbmF0aW9uUmFuZ2UuZ2V0KCksIHRydWUpOwotICAgIAorCiAgICAgc2V0RW5kaW5n
U2VsZWN0aW9uKGRlc3RpbmF0aW9uKTsKICAgICBBU1NFUlQoZW5kaW5nU2VsZWN0aW9uKCkuaXND
YXJldE9yUmFuZ2UoKSk7CiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBmcmFnbWVudCwgdHJ1ZSwgZmFsc2UsICFw
cmVzZXJ2ZVN0eWxlLCBmYWxzZSwgdHJ1ZSkpOwpAQCAtMTA1NSw3ICsxMDU1LDcgQEAgYm9vbCBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6YnJlYWtPdXRPZkVtcHR5TGlzdEl0ZW0oKQogICAgIH0KIAog
ICAgIGFwcGVuZEJsb2NrUGxhY2Vob2xkZXIobmV3QmxvY2spOwotICAgIHNldEVuZGluZ1NlbGVj
dGlvbihWaXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5ld0Jsb2NrLmdldCgpLCAwKSwgRE9XTlNU
UkVBTSkpOworICAgIHNldEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKGZpcnN0UG9z
aXRpb25Jbk5vZGUobmV3QmxvY2suZ2V0KCkpLCBET1dOU1RSRUFNKSk7CiAKICAgICBzdHlsZS0+
cHJlcGFyZVRvQXBwbHlBdChlbmRpbmdTZWxlY3Rpb24oKS5zdGFydCgpKTsKICAgICBpZiAoIXN0
eWxlLT5pc0VtcHR5KCkpCkBAIC0xMDg4LDcgKzEwODgsNyBAQCBib29sIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjpicmVha091dE9mRW1wdHlNYWlsQmxvY2txdW90ZWRQYXJhZ3JhcGgoKQogICAgIC8v
IFdlIHdhbnQgdG8gcmVwbGFjZSB0aGlzIHF1b3RlZCBwYXJhZ3JhcGggd2l0aCBhbiB1bnF1b3Rl
ZCBvbmUsIHNvIGluc2VydCBhIGJyCiAgICAgLy8gdG8gaG9sZCB0aGUgY2FyZXQgYmVmb3JlIHRo
ZSBoaWdoZXN0IGJsb2NrcXVvdGUuCiAgICAgaW5zZXJ0Tm9kZUJlZm9yZShiciwgaGlnaGVzdEJs
b2NrcXVvdGUpOwotICAgIFZpc2libGVQb3NpdGlvbiBhdEJSKFBvc2l0aW9uKGJyLmdldCgpLCAw
KSk7CisgICAgVmlzaWJsZVBvc2l0aW9uIGF0QlIocG9zaXRpb25CZWZvcmVOb2RlKGJyLmdldCgp
KSk7CiAgICAgLy8gSWYgdGhlIGJyIHdlIGluc2VydGVkIGNvbGxhcHNlZCwgZm9yIGV4YW1wbGUg
Zm9vPGJyPjxibG9ja3F1b3RlPi4uLjwvYmxvY2txdW90ZT4sIGluc2VydAogICAgIC8vIGEgc2Vj
b25kIG9uZS4KICAgICBpZiAoIWlzU3RhcnRPZlBhcmFncmFwaChhdEJSKSkKQEAgLTExOTEsOCAr
MTE5MSw4IEBAIFBhc3NSZWZQdHI8Tm9kZT4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnNwbGl0VHJl
ZVRvTm9kZShOb2RlKiBzdGFydCwgTm9kZSogZW5kLCBiCiAgICAgZm9yIChub2RlID0gc3RhcnQ7
IG5vZGUgJiYgbm9kZS0+cGFyZW50Tm9kZSgpICE9IGVuZDsgbm9kZSA9IG5vZGUtPnBhcmVudE5v
ZGUoKSkgewogICAgICAgICBpZiAoIW5vZGUtPnBhcmVudE5vZGUoKS0+aXNFbGVtZW50Tm9kZSgp
KQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbklu
UGFyZW50KFBvc2l0aW9uKG5vZGUtPnBhcmVudE5vZGUoKSwgMCksIERPV05TVFJFQU0pOwotICAg
ICAgICBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Jbk5vZGUoUG9zaXRpb24obm9kZSwgMCksIERP
V05TVFJFQU0pOworICAgICAgICBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25JblBhcmVudChmaXJz
dFBvc2l0aW9uSW5Ob2RlKG5vZGUtPnBhcmVudE5vZGUoKSksIERPV05TVFJFQU0pOworICAgICAg
ICBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Jbk5vZGUoZmlyc3RQb3NpdGlvbkluT3JCZWZvcmVO
b2RlKG5vZGUuZ2V0KCkpLCBET1dOU1RSRUFNKTsKICAgICAgICAgaWYgKHBvc2l0aW9uSW5QYXJl
bnQgIT0gcG9zaXRpb25Jbk5vZGUpCiAgICAgICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShTcGxpdEVsZW1lbnRDb21tYW5kOjpjcmVhdGUoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUt
PnBhcmVudE5vZGUoKSksIG5vZGUpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcAppbmRleCAwMjhlZGM4YmYyNzliNjQ1ZDU4
ZmQ3MGFlZWRlMWYyYTNhNWJlNzQxLi42MWUzMTkwMWYxNjdlYzAzYjQ1ZjhjYThjNzU0YmE5YjBi
ZjIxMDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlQnV0dG9uQ29u
dHJvbGxlci5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgSFRNTEVsZW1lbnQqIGVuY2xv
c2luZ0RlbGV0YWJsZUVsZW1lbnQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQog
ICAgIGlmICghY29udGFpbmVyLT5pc0NvbnRlbnRFZGl0YWJsZSgpKQogICAgICAgICByZXR1cm4g
MDsKIAotICAgIE5vZGUqIGVsZW1lbnQgPSBlbmNsb3NpbmdOb2RlT2ZUeXBlKFBvc2l0aW9uKGNv
bnRhaW5lciwgMCksICZpc0RlbGV0YWJsZUVsZW1lbnQpOworICAgIE5vZGUqIGVsZW1lbnQgPSBl
bmNsb3NpbmdOb2RlT2ZUeXBlKGZpcnN0UG9zaXRpb25Jbk5vZGUoY29udGFpbmVyKSwgJmlzRGVs
ZXRhYmxlRWxlbWVudCk7CiAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm4gMDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCmluZGV4IGNlYzY5ZGVkMjMzNDBmNTU1MmNh
YjU1YjgyNjkxZGUzODE4MjNlODAuLjFmNmI5ODY5YjBhNTg1ZWFiNjhhZjEyM2VlMDA0YWIwZWY1
MmQxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgKQEAgLTExNywxMiArMTE3
LDEyIEBAIFBvc2l0aW9uIHBvc2l0aW9uT3V0c2lkZUNvbnRhaW5pbmdTcGVjaWFsRWxlbWVudChj
b25zdCBQb3NpdGlvbiYsIE5vZGUqKiBjb250YWluCiAKIGlubGluZSBQb3NpdGlvbiBmaXJzdFBv
c2l0aW9uSW5PckJlZm9yZU5vZGUoTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gY2FuSGF2ZUNo
aWxkcmVuRm9yRWRpdGluZyhub2RlKSA/IGZpcnN0UG9zaXRpb25Jbk5vZGUobm9kZSkgOiBwb3Np
dGlvbkJlZm9yZU5vZGUobm9kZSk7CisgICAgcmV0dXJuIGVkaXRpbmdJZ25vcmVzQ29udGVudChu
b2RlKSA/IHBvc2l0aW9uQmVmb3JlTm9kZShub2RlKSA6IGZpcnN0UG9zaXRpb25Jbk5vZGUobm9k
ZSk7CiB9CiAKIGlubGluZSBQb3NpdGlvbiBsYXN0UG9zaXRpb25Jbk9yQWZ0ZXJOb2RlKE5vZGUq
IG5vZGUpCiB7Ci0gICAgcmV0dXJuIGNhbkhhdmVDaGlsZHJlbkZvckVkaXRpbmcobm9kZSkgPyBs
YXN0UG9zaXRpb25Jbk5vZGUobm9kZSkgOiBwb3NpdGlvbkFmdGVyTm9kZShub2RlKTsKKyAgICBy
ZXR1cm4gZWRpdGluZ0lnbm9yZXNDb250ZW50KG5vZGUpID8gcG9zaXRpb25BZnRlck5vZGUobm9k
ZSkgOiBsYXN0UG9zaXRpb25Jbk5vZGUobm9kZSk7CiB9CiAKIC8vIFBvc2l0aW9uIGNyZWF0aW9u
IGZ1bmN0aW9ucyBhcmUgaW5saW5lIHRvIHByZXZlbnQgcmVmLWNodXJuLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>