<?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>150324</bug_id>
          
          <creation_ts>2015-10-19 03:57:51 -0700</creation_ts>
          <short_desc>Tighten ComposedTreeAncestorIterator to return Elements</short_desc>
          <delta_ts>2016-04-03 15:00:51 -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>DOM</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>WebkitBugTracker</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1134543</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-10-19 03:57:51 -0700</bug_when>
    <thetext>Only other thing it could credibly return was Document. We can exclude it from the composed tree and avoid a lot of casting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134548</commentid>
    <comment_count>1</comment_count>
      <attachid>263469</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-10-19 04:04:29 -0700</bug_when>
    <thetext>Created attachment 263469
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134568</commentid>
    <comment_count>2</comment_count>
      <attachid>263469</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-10-19 07:06:09 -0700</bug_when>
    <thetext>Comment on attachment 263469
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180212</commentid>
    <comment_count>3</comment_count>
      <attachid>275507</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-04-03 14:04:42 -0700</bug_when>
    <thetext>Created attachment 275507
for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180217</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-04-03 15:00:51 -0700</bug_when>
    <thetext>https://trac.webkit.org/r198992</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263469</attachid>
            <date>2015-10-19 04:04:29 -0700</date>
            <delta_ts>2016-04-03 14:04:42 -0700</delta_ts>
            <desc>patch</desc>
            <filename>composed-iterator-tighten.patch</filename>
            <type>text/plain</type>
            <size>6751</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MTI4OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE1LTEwLTE5ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBUaWdodGVuIENvbXBvc2VkVHJl
ZUFuY2VzdG9ySXRlcmF0b3IgdG8gcmV0dXJuIEVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAzMjQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmx5IG90aGVyIHRoaW5nIGl0IGNvdWxkIGNy
ZWRpYmx5IHJldHVybiB3YXMgRG9jdW1lbnQuIFdlIGNhbiBleGNsdWRlIGl0IGZyb20gdGhlIGNv
bXBvc2VkIHRyZWUgYW5kIGF2b2lkIHNvbWUgY2FzdGluZy4KKworICAgICAgICAqIGRvbS9Db21w
b3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFRy
ZWVBbmNlc3Rvckl0ZXJhdG9yOjpvcGVyYXRvciopOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
ZWRUcmVlQW5jZXN0b3JJdGVyYXRvcjo6b3BlcmF0b3ItPik6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0b3I6Om9wZXJhdG9yIT0pOgorICAgICAgICAo
V2ViQ29yZTo6Q29tcG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvcjo6b3BlcmF0b3IrKyk6CisgICAg
ICAgIChXZWJDb3JlOjpDb21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yOjpnZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvcjo6dHJhdmVyc2VQYXJlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRUcmVlQW5jZXN0b3JBZGFwdGVyOjplbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRUcmVlQW5jZXN0b3JBZGFwdGVyOjpmaXJzdCk6Cisg
ICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVz
b2x2ZUNvbXB1dGVkU3R5bGUpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGU6OnVwZGF0ZUFuY2VzdG9yc0ZvclN0eWxlUmVjYWxjKToKKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGU6OnNldE5lZWRzU3R5bGVSZWNhbGMpOgorCisgICAgICAgICAgICBXZSBub3cg
bmVlZCB0byBleHBsaWNpdGx5IGludmFsaWRhdGUgdGhlIGRvY3VtZW50LgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmlzQ2hpbGRBbGxvd2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck5hbWVkRmxvd1RocmVhZDo6ZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnRJ
Zk5lZWRlZCk6CisKIDIwMTUtMTAtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNy
Zi5jYW5vbi5mcj4KIAogICAgICAgICBCaW5kaW5nIGdlbmVyYXRvciBzaG91bGQgZ2VuZXJhdGUg
bmFtZXMgZm9yIEpTQnVpbHRpbnMgcGFydGlhbCBpbnRlcmZhY2UgbWV0aG9kcyB1c2luZyBJbXBs
ZW1lbnRlZEJ5IHZhbHVlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRUcmVlQW5j
ZXN0b3JJdGVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3Nl
ZFRyZWVBbmNlc3Rvckl0ZXJhdG9yLmgJKHJldmlzaW9uIDE5MTI2MCkKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9Db21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM5LDE1ICszOSwxNSBAQCBwdWJsaWM6CiAgICAgQ29tcG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRv
cihDb250YWluZXJOb2RlJiByb290KTsKICAgICBDb21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9y
KENvbnRhaW5lck5vZGUmIHJvb3QsIE5vZGUmIGN1cnJlbnQpOwogCi0gICAgQ29udGFpbmVyTm9k
ZSYgb3BlcmF0b3IqKCkgeyByZXR1cm4gZ2V0KCk7IH0KLSAgICBDb250YWluZXJOb2RlKiBvcGVy
YXRvci0+KCkgeyByZXR1cm4gJmdldCgpOyB9CisgICAgRWxlbWVudCYgb3BlcmF0b3IqKCkgeyBy
ZXR1cm4gZ2V0KCk7IH0KKyAgICBFbGVtZW50KiBvcGVyYXRvci0+KCkgeyByZXR1cm4gJmdldCgp
OyB9CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQ29tcG9zZWRUcmVlQW5jZXN0b3JJdGVy
YXRvciYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudCA9PSBvdGhlci5tX2N1cnJlbnQ7
IH0KICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgQ29tcG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRv
ciYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudCAhPSBvdGhlci5tX2N1cnJlbnQ7IH0K
IAogICAgIENvbXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0b3ImIG9wZXJhdG9yKysoKSB7IHJldHVy
biB0cmF2ZXJzZVBhcmVudCgpOyB9CiAKLSAgICBDb250YWluZXJOb2RlJiBnZXQoKSB7IHJldHVy
biBkb3duY2FzdDxDb250YWluZXJOb2RlPigqbV9jdXJyZW50KTsgfQorICAgIEVsZW1lbnQmIGdl
dCgpIHsgcmV0dXJuIGRvd25jYXN0PEVsZW1lbnQ+KCptX2N1cnJlbnQpOyB9CiAgICAgQ29tcG9z
ZWRUcmVlQW5jZXN0b3JJdGVyYXRvciYgdHJhdmVyc2VQYXJlbnQoKTsKIAogcHJpdmF0ZToKQEAg
LTczLDE4ICs3MywxNCBAQCBpbmxpbmUgQ29tcG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvcjo6Q29t
CiAKIGlubGluZSBDb21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yJiBDb21wb3NlZFRyZWVBbmNl
c3Rvckl0ZXJhdG9yOjp0cmF2ZXJzZVBhcmVudCgpCiB7Ci0gICAgaWYgKG1fY3VycmVudCA9PSAm
bV9yb290KSB7Ci0gICAgICAgIG1fY3VycmVudCA9IG51bGxwdHI7Ci0gICAgICAgIHJldHVybiAq
dGhpczsKLSAgICB9Ci0KICAgICBhdXRvKiBwYXJlbnQgPSBtX2N1cnJlbnQtPnBhcmVudE5vZGUo
KTsKLSAgICBpZiAoIXBhcmVudCkgeworICAgIGlmICghcGFyZW50IHx8IHBhcmVudCA9PSAmbV9y
b290KSB7CiAgICAgICAgIG1fY3VycmVudCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiAqdGhp
czsKICAgICB9Ci0gICAgaWYgKGlzPFNoYWRvd1Jvb3Q+KCpwYXJlbnQpKSB7Ci0gICAgICAgIG1f
Y3VycmVudCA9IGRvd25jYXN0PFNoYWRvd1Jvb3Q+KCpwYXJlbnQpLmhvc3QoKTsKKworICAgIGlm
ICghaXM8RWxlbWVudD4oKnBhcmVudCkpIHsKKyAgICAgICAgbV9jdXJyZW50ID0gaXM8U2hhZG93
Um9vdD4oKnBhcmVudCkgPyBkb3duY2FzdDxTaGFkb3dSb290PigqcGFyZW50KS5ob3N0KCkgOiBu
dWxscHRyOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCkBAIC0xMjIsNyArMTE4LDcg
QEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKG1fbm9kZS5kb2N1bWVu
dCgpKTsKICAgICB9Ci0gICAgQ29udGFpbmVyTm9kZSogZmlyc3QoKQorICAgIEVsZW1lbnQqIGZp
cnN0KCkKICAgICB7CiAgICAgICAgIGF1dG8gaXQgPSBiZWdpbigpOwogICAgICAgICBpZiAoaXQg
PT0gZW5kKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxOTEyNjIpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0Njks
MTEgKzI0NjksOCBAQCBSZW5kZXJTdHlsZSYgRWxlbWVudDo6cmVzb2x2ZUNvbXB1dGVkU3R5CiAg
ICAgLy8gQ29sbGVjdCBhbmNlc3RvcnMgdW50aWwgd2UgZmluZCBvbmUgdGhhdCBoYXMgc3R5bGUu
CiAgICAgYXV0byBjb21wb3NlZEFuY2VzdG9ycyA9IGNvbXBvc2VkVHJlZUFuY2VzdG9ycygqdGhp
cyk7CiAgICAgZm9yIChhdXRvJiBhbmNlc3RvciA6IGNvbXBvc2VkQW5jZXN0b3JzKSB7Ci0gICAg
ICAgIGlmICghaXM8RWxlbWVudD4oYW5jZXN0b3IpKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGF1dG8mIGFuY2VzdG9yRWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KGFuY2VzdG9yKTsK
LSAgICAgICAgZWxlbWVudHNSZXF1aXJpbmdDb21wdXRlZFN0eWxlLnByZXBlbmQoJmFuY2VzdG9y
RWxlbWVudCk7Ci0gICAgICAgIGlmIChhdXRvKiBleGlzdGluZ1N0eWxlID0gYW5jZXN0b3JFbGVt
ZW50LmV4aXN0aW5nQ29tcHV0ZWRTdHlsZSgpKSB7CisgICAgICAgIGVsZW1lbnRzUmVxdWlyaW5n
Q29tcHV0ZWRTdHlsZS5wcmVwZW5kKCZhbmNlc3Rvcik7CisgICAgICAgIGlmIChhdXRvKiBleGlz
dGluZ1N0eWxlID0gYW5jZXN0b3IuZXhpc3RpbmdDb21wdXRlZFN0eWxlKCkpIHsKICAgICAgICAg
ICAgIGNvbXB1dGVkU3R5bGUgPSBleGlzdGluZ1N0eWxlOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDE5MTI2MikKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQ5LDcgKzc0OSw3IEBA
IGlubGluZSB2b2lkIE5vZGU6OnVwZGF0ZUFuY2VzdG9yc0ZvclN0eWwKICAgICBpZiAoaXQgIT0g
ZW5kKSB7CiAgICAgICAgIGl0LT5zZXREaXJlY3RDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKIAot
ICAgICAgICBpZiAoaXM8RWxlbWVudD4oKml0KSAmJiBkb3duY2FzdDxFbGVtZW50PigqaXQpLmNo
aWxkcmVuQWZmZWN0ZWRCeVByb3BlcnR5QmFzZWRCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcygpKSB7
CisgICAgICAgIGlmIChpdC0+Y2hpbGRyZW5BZmZlY3RlZEJ5UHJvcGVydHlCYXNlZEJhY2t3YXJk
UG9zaXRpb25hbFJ1bGVzKCkpIHsKICAgICAgICAgICAgIGlmIChpdC0+c3R5bGVDaGFuZ2VUeXBl
KCkgPCBGdWxsU3R5bGVDaGFuZ2UpCiAgICAgICAgICAgICAgICAgaXQtPnNldFN0eWxlQ2hhbmdl
KEZ1bGxTdHlsZUNoYW5nZSk7CiAgICAgICAgIH0KQEAgLTc2NSw4ICs3NjUsMTMgQEAgaW5saW5l
IHZvaWQgTm9kZTo6dXBkYXRlQW5jZXN0b3JzRm9yU3R5bAogICAgIH0KIAogICAgIERvY3VtZW50
JiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7Ci0gICAgaWYgKGRvY3VtZW50LmNoaWxkTmVl
ZHNTdHlsZVJlY2FsYygpKQotICAgICAgICBkb2N1bWVudC5zY2hlZHVsZVN0eWxlUmVjYWxjKCk7
CisgICAgYXV0byogZG9jdW1lbnRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCk7
CisgICAgYm9vbCBzY2hlZHVsZVN0eWxlUmVjYWxjID0gZG9jdW1lbnRFbGVtZW50ICYmIChkb2N1
bWVudEVsZW1lbnQtPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IGRvY3VtZW50RWxlbWVudC0+
bmVlZHNTdHlsZVJlY2FsYygpKTsKKyAgICBpZiAoIXNjaGVkdWxlU3R5bGVSZWNhbGMpCisgICAg
ICAgIHJldHVybjsKKworICAgIGRvY3VtZW50LnNldENoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwor
ICAgIGRvY3VtZW50LnNjaGVkdWxlU3R5bGVSZWNhbGMoKTsKIH0KIAogdm9pZCBOb2RlOjpzZXRO
ZWVkc1N0eWxlUmVjYWxjKFN0eWxlQ2hhbmdlVHlwZSBjaGFuZ2VUeXBlKQpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAJKHJl
dmlzaW9uIDE5MTI2MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZs
b3dUaHJlYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDgsMTAgKzU0OCwxMCBAQCBib29sIFJl
bmRlck5hbWVkRmxvd1RocmVhZDo6aXNDaGlsZEFsbG93CiAgICAgQVNTRVJUKGlzPEVsZW1lbnQ+
KCpjaGlsZC5ub2RlKCkpKTsKIAogICAgIGF1dG8qIG9yaWdpbmFsUGFyZW50ID0gY29tcG9zZWRU
cmVlQW5jZXN0b3JzKCpjaGlsZC5ub2RlKCkpLmZpcnN0KCk7Ci0gICAgaWYgKCFpczxFbGVtZW50
PihvcmlnaW5hbFBhcmVudCkgfHwgIW9yaWdpbmFsUGFyZW50LT5yZW5kZXJlcigpKQorICAgIGlm
ICghb3JpZ2luYWxQYXJlbnQgfHwgIW9yaWdpbmFsUGFyZW50LT5yZW5kZXJlcigpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiBkb3duY2FzdDxFbGVtZW50Pigqb3JpZ2luYWxQ
YXJlbnQpLnJlbmRlcmVyKCktPmlzQ2hpbGRBbGxvd2VkKGNoaWxkLCBzdHlsZSk7CisgICAgcmV0
dXJuIG9yaWdpbmFsUGFyZW50LT5yZW5kZXJlcigpLT5pc0NoaWxkQWxsb3dlZChjaGlsZCwgc3R5
bGUpOwogfQogCiB2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6ZGlzcGF0Y2hSZWdpb25PdmVy
c2V0Q2hhbmdlRXZlbnRJZk5lZWRlZCgpCg==
</data>
<flag name="review"
          id="288617"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275507</attachid>
            <date>2016-04-03 14:04:42 -0700</date>
            <delta_ts>2016-04-03 14:04:42 -0700</delta_ts>
            <desc>for landing</desc>
            <filename>composed-iterator-tighten.patch</filename>
            <type>text/plain</type>
            <size>9965</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODk5MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE2LTA0LTAzICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBUaWdodGVuIENvbXBvc2VkVHJl
ZUFuY2VzdG9ySXRlcmF0b3IgdG8gcmV0dXJuIEVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAzMjQKKworICAgICAgICBSZXZpZXdlZCBi
eSBBbmRyZWFzIEtsaW5nLgorCisgICAgICAgIE9ubHkgb3RoZXIgdGhpbmcgaXQgY291bGQgY3Jl
ZGlibHkgcmV0dXJuIHdhcyBEb2N1bWVudC4gV2UgY2FuIGV4Y2x1ZGUgaXQgZnJvbSB0aGUgY29t
cG9zZWQgdHJlZSBhbmQgYXZvaWQgc29tZSBjYXN0aW5nLgorCisgICAgICAgICogZG9tL0NvbXBv
c2VkVHJlZUFuY2VzdG9ySXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkVHJl
ZUFuY2VzdG9ySXRlcmF0b3I6Om9wZXJhdG9yKik6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3Nl
ZFRyZWVBbmNlc3Rvckl0ZXJhdG9yOjpvcGVyYXRvci0+KToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0b3I6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvcjo6b3BlcmF0b3IhPSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yOjpvcGVyYXRvcisrKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0b3I6OmdldCk6CisgICAgICAg
IChXZWJDb3JlOjpDb21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yOjpDb21wb3NlZFRyZWVBbmNl
c3Rvckl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkVHJlZUFuY2VzdG9ySXRl
cmF0b3I6OnRyYXZlcnNlUGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkVHJlZUFu
Y2VzdG9yQWRhcHRlcjo6YmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRUcmVlQW5j
ZXN0b3JBZGFwdGVyOjplbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRUcmVlQW5jZXN0
b3JBZGFwdGVyOjpmaXJzdCk6CisgICAgICAgICogZG9tL0NvbXBvc2VkVHJlZUl0ZXJhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkVHJlZUl0ZXJhdG9yOjpDb21wb3NlZFRyZWVJ
dGVyYXRvcik6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6cmVzb2x2ZUNvbXB1dGVkU3R5bGUpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnVwZGF0ZUFuY2VzdG9yc0ZvclN0eWxlUmVjYWxjKToK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNldE5lZWRzU3R5bGVSZWNhbGMpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTmFtZWRGbG93VGhyZWFkOjppc0NoaWxkQWxsb3dlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50
SWZOZWVkZWQpOgorICAgICAgICAqIHN0eWxlL1JlbmRlclRyZWVVcGRhdGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmZpbmRSZW5kZXJpbmdSb290KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRyZWVVcGRhdGVyOjpjb21taXQpOgorCiAyMDE2LTA0LTAzICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBTaGFkb3cgRE9NOiBTbG90IHN0eWxlIGlzIG5vdCBj
b21wdXRlZApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkVHJlZUFuY2VzdG9ySXRl
cmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRUcmVlQW5j
ZXN0b3JJdGVyYXRvci5oCShyZXZpc2lvbiAxOTg5NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20v
Q29tcG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw0OCAr
MzYsMzggQEAgY2xhc3MgSFRNTFNsb3RFbGVtZW50OwogCiBjbGFzcyBDb21wb3NlZFRyZWVBbmNl
c3Rvckl0ZXJhdG9yIHsKIHB1YmxpYzoKLSAgICBDb21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9y
KENvbnRhaW5lck5vZGUmIHJvb3QpOwotICAgIENvbXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0b3Io
Q29udGFpbmVyTm9kZSYgcm9vdCwgTm9kZSYgY3VycmVudCk7CisgICAgQ29tcG9zZWRUcmVlQW5j
ZXN0b3JJdGVyYXRvcigpOworICAgIENvbXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0b3IoTm9kZSYg
Y3VycmVudCk7CiAKLSAgICBDb250YWluZXJOb2RlJiBvcGVyYXRvciooKSB7IHJldHVybiBnZXQo
KTsgfQotICAgIENvbnRhaW5lck5vZGUqIG9wZXJhdG9yLT4oKSB7IHJldHVybiAmZ2V0KCk7IH0K
KyAgICBFbGVtZW50JiBvcGVyYXRvciooKSB7IHJldHVybiBnZXQoKTsgfQorICAgIEVsZW1lbnQq
IG9wZXJhdG9yLT4oKSB7IHJldHVybiAmZ2V0KCk7IH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBDb21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yJiBvdGhlcikgY29uc3QgeyByZXR1cm4g
bV9jdXJyZW50ID09IG90aGVyLm1fY3VycmVudDsgfQogICAgIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBDb21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9j
dXJyZW50ICE9IG90aGVyLm1fY3VycmVudDsgfQogCiAgICAgQ29tcG9zZWRUcmVlQW5jZXN0b3JJ
dGVyYXRvciYgb3BlcmF0b3IrKygpIHsgcmV0dXJuIHRyYXZlcnNlUGFyZW50KCk7IH0KIAotICAg
IENvbnRhaW5lck5vZGUmIGdldCgpIHsgcmV0dXJuIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCpt
X2N1cnJlbnQpOyB9CisgICAgRWxlbWVudCYgZ2V0KCkgeyByZXR1cm4gZG93bmNhc3Q8RWxlbWVu
dD4oKm1fY3VycmVudCk7IH0KICAgICBDb21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yJiB0cmF2
ZXJzZVBhcmVudCgpOwogCiBwcml2YXRlOgogICAgIHZvaWQgdHJhdmVyc2VQYXJlbnRJblNoYWRv
d1RyZWUoKTsKIAotICAgIENvbnRhaW5lck5vZGUmIG1fcm9vdDsKICAgICBOb2RlKiBtX2N1cnJl
bnQgeyAwIH07CiB9OwogCi1pbmxpbmUgQ29tcG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvcjo6Q29t
cG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvcihDb250YWluZXJOb2RlJiByb290KQotICAgIDogbV9y
b290KHJvb3QpCitpbmxpbmUgQ29tcG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvcjo6Q29tcG9zZWRU
cmVlQW5jZXN0b3JJdGVyYXRvcigpCiB7Ci0gICAgQVNTRVJUKCFpczxTaGFkb3dSb290PihtX3Jv
b3QpKTsKIH0KIAotaW5saW5lIENvbXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0b3I6OkNvbXBvc2Vk
VHJlZUFuY2VzdG9ySXRlcmF0b3IoQ29udGFpbmVyTm9kZSYgcm9vdCwgTm9kZSYgY3VycmVudCkK
LSAgICA6IG1fcm9vdChyb290KQotICAgICwgbV9jdXJyZW50KCZjdXJyZW50KQoraW5saW5lIENv
bXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0b3I6OkNvbXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0b3Io
Tm9kZSYgY3VycmVudCkKKyAgICA6IG1fY3VycmVudCgmY3VycmVudCkKIHsKLSAgICBBU1NFUlQo
IWlzPFNoYWRvd1Jvb3Q+KG1fcm9vdCkpOwogICAgIEFTU0VSVCghaXM8U2hhZG93Um9vdD4obV9j
dXJyZW50KSk7CiB9CiAKIGlubGluZSBDb21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yJiBDb21w
b3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yOjp0cmF2ZXJzZVBhcmVudCgpCiB7Ci0gICAgaWYgKG1f
Y3VycmVudCA9PSAmbV9yb290KSB7Ci0gICAgICAgIG1fY3VycmVudCA9IG51bGxwdHI7Ci0gICAg
ICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KICAgICBhdXRvKiBwYXJlbnQgPSBtX2N1cnJlbnQt
PnBhcmVudE5vZGUoKTsKICAgICBpZiAoIXBhcmVudCkgewogICAgICAgICBtX2N1cnJlbnQgPSBu
dWxscHRyOwpAQCAtODcsNiArNzcsMTAgQEAgaW5saW5lIENvbXBvc2VkVHJlZUFuY2VzdG9ySXRl
cmF0b3ImIENvbQogICAgICAgICBtX2N1cnJlbnQgPSBkb3duY2FzdDxTaGFkb3dSb290PigqcGFy
ZW50KS5ob3N0KCk7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CisgICAgaWYgKCFpczxF
bGVtZW50PigqcGFyZW50KSkgeworICAgICAgICBtX2N1cnJlbnQgPSBudWxscHRyOworICAgICAg
ICByZXR1cm4gKnRoaXM7CisgICAgfTsKIAogICAgIGlmIChhdXRvKiBzaGFkb3dSb290ID0gcGFy
ZW50LT5zaGFkb3dSb290KCkpIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkgfHwgRU5BQkxFKERF
VEFJTFNfRUxFTUVOVCkKQEAgLTExMywxNiArMTA3LDE2IEBAIHB1YmxpYzoKICAgICBpdGVyYXRv
ciBiZWdpbigpCiAgICAgewogICAgICAgICBpZiAoaXM8U2hhZG93Um9vdD4obV9ub2RlKSkKLSAg
ICAgICAgICAgIHJldHVybiBpdGVyYXRvcihtX25vZGUuZG9jdW1lbnQoKSwgKmRvd25jYXN0PFNo
YWRvd1Jvb3Q+KG1fbm9kZSkuaG9zdCgpKTsKKyAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcigq
ZG93bmNhc3Q8U2hhZG93Um9vdD4obV9ub2RlKS5ob3N0KCkpOwogICAgICAgICBpZiAoaXM8UHNl
dWRvRWxlbWVudD4obV9ub2RlKSkKLSAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcihtX25vZGUu
ZG9jdW1lbnQoKSwgKmRvd25jYXN0PFBzZXVkb0VsZW1lbnQ+KG1fbm9kZSkuaG9zdEVsZW1lbnQo
KSk7Ci0gICAgICAgIHJldHVybiBpdGVyYXRvcihtX25vZGUuZG9jdW1lbnQoKSwgbV9ub2RlKS50
cmF2ZXJzZVBhcmVudCgpOworICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKCpkb3duY2FzdDxQ
c2V1ZG9FbGVtZW50PihtX25vZGUpLmhvc3RFbGVtZW50KCkpOworICAgICAgICByZXR1cm4gaXRl
cmF0b3IobV9ub2RlKS50cmF2ZXJzZVBhcmVudCgpOwogICAgIH0KICAgICBpdGVyYXRvciBlbmQo
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKG1fbm9kZS5kb2N1bWVudCgpKTsKKyAg
ICAgICAgcmV0dXJuIGl0ZXJhdG9yKCk7CiAgICAgfQotICAgIENvbnRhaW5lck5vZGUqIGZpcnN0
KCkKKyAgICBFbGVtZW50KiBmaXJzdCgpCiAgICAgewogICAgICAgICBhdXRvIGl0ID0gYmVnaW4o
KTsKICAgICAgICAgaWYgKGl0ID09IGVuZCgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0Nv
bXBvc2VkVHJlZUl0ZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
Q29tcG9zZWRUcmVlSXRlcmF0b3IuY3BwCShyZXZpc2lvbiAxOTg5NDQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vQ29tcG9zZWRUcmVlSXRlcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3
ICs2OCw3IEBAIENvbXBvc2VkVHJlZUl0ZXJhdG9yOjpDb21wb3NlZFRyZWVJdGVyYXQKICAgICB9
CiAjZW5kaWYKICAgICBpZiAoYXV0byogc2hhZG93Um9vdCA9IHJvb3Quc2hhZG93Um9vdCgpKSB7
Ci0gICAgICAgIGF1dG8qIGZpcnN0Q2hpbGQgPSBzaGFkb3dSb290LT5maXJzdENoaWxkKCk7Cisg
ICAgICAgIEVsZW1lbnRBbmRUZXh0RGVzY2VuZGFudEl0ZXJhdG9yIGZpcnN0Q2hpbGQoKnNoYWRv
d1Jvb3QpOwogICAgICAgICBpbml0aWFsaXplQ29udGV4dFN0YWNrKHJvb3QsIGZpcnN0Q2hpbGQg
PyAqZmlyc3RDaGlsZCA6IHJvb3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAkocmV2aXNpb24gMTk4OTQ0KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDgzLDExICsyNDgzLDggQEAgUmVuZGVy
U3R5bGUmIEVsZW1lbnQ6OnJlc29sdmVDb21wdXRlZFN0eQogICAgIC8vIENvbGxlY3QgYW5jZXN0
b3JzIHVudGlsIHdlIGZpbmQgb25lIHRoYXQgaGFzIHN0eWxlLgogICAgIGF1dG8gY29tcG9zZWRB
bmNlc3RvcnMgPSBjb21wb3NlZFRyZWVBbmNlc3RvcnMoKnRoaXMpOwogICAgIGZvciAoYXV0byYg
YW5jZXN0b3IgOiBjb21wb3NlZEFuY2VzdG9ycykgewotICAgICAgICBpZiAoIWlzPEVsZW1lbnQ+
KGFuY2VzdG9yKSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBhdXRvJiBhbmNlc3RvckVs
ZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50PihhbmNlc3Rvcik7Ci0gICAgICAgIGVsZW1lbnRzUmVx
dWlyaW5nQ29tcHV0ZWRTdHlsZS5wcmVwZW5kKCZhbmNlc3RvckVsZW1lbnQpOwotICAgICAgICBp
ZiAoYXV0byogZXhpc3RpbmdTdHlsZSA9IGFuY2VzdG9yRWxlbWVudC5leGlzdGluZ0NvbXB1dGVk
U3R5bGUoKSkgeworICAgICAgICBlbGVtZW50c1JlcXVpcmluZ0NvbXB1dGVkU3R5bGUucHJlcGVu
ZCgmYW5jZXN0b3IpOworICAgICAgICBpZiAoYXV0byogZXhpc3RpbmdTdHlsZSA9IGFuY2VzdG9y
LmV4aXN0aW5nQ29tcHV0ZWRTdHlsZSgpKSB7CiAgICAgICAgICAgICBjb21wdXRlZFN0eWxlID0g
ZXhpc3RpbmdTdHlsZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCShyZXZpc2lvbiAxOTg5NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTc0Niw3ICs3NDYsNyBAQCBpbmxpbmUgdm9pZCBOb2RlOjp1
cGRhdGVBbmNlc3RvcnNGb3JTdHlsCiAgICAgaWYgKGl0ICE9IGVuZCkgewogICAgICAgICBpdC0+
c2V0RGlyZWN0Q2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CiAKLSAgICAgICAgaWYgKGlzPEVsZW1l
bnQ+KCppdCkgJiYgZG93bmNhc3Q8RWxlbWVudD4oKml0KS5jaGlsZHJlbkFmZmVjdGVkQnlQcm9w
ZXJ0eUJhc2VkQmFja3dhcmRQb3NpdGlvbmFsUnVsZXMoKSkgeworICAgICAgICBpZiAoaXQtPmNo
aWxkcmVuQWZmZWN0ZWRCeVByb3BlcnR5QmFzZWRCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcygpKSB7
CiAgICAgICAgICAgICBpZiAoaXQtPnN0eWxlQ2hhbmdlVHlwZSgpIDwgRnVsbFN0eWxlQ2hhbmdl
KQogICAgICAgICAgICAgICAgIGl0LT5zZXRTdHlsZUNoYW5nZShGdWxsU3R5bGVDaGFuZ2UpOwog
ICAgICAgICB9CkBAIC03NjEsOSArNzYxLDEzIEBAIGlubGluZSB2b2lkIE5vZGU6OnVwZGF0ZUFu
Y2VzdG9yc0ZvclN0eWwKICAgICAgICAgfQogICAgIH0KIAotICAgIERvY3VtZW50JiBkb2N1bWVu
dCA9IHRoaXMtPmRvY3VtZW50KCk7Ci0gICAgaWYgKGRvY3VtZW50LmNoaWxkTmVlZHNTdHlsZVJl
Y2FsYygpKQotICAgICAgICBkb2N1bWVudC5zY2hlZHVsZVN0eWxlUmVjYWxjKCk7CisgICAgYXV0
byogZG9jdW1lbnRFbGVtZW50ID0gZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKTsKKyAgICBp
ZiAoIWRvY3VtZW50RWxlbWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghZG9jdW1lbnRF
bGVtZW50LT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSAmJiAhZG9jdW1lbnRFbGVtZW50LT5uZWVk
c1N0eWxlUmVjYWxjKCkpCisgICAgICAgIHJldHVybjsKKyAgICBkb2N1bWVudCgpLnNldENoaWxk
TmVlZHNTdHlsZVJlY2FsYygpOworICAgIGRvY3VtZW50KCkuc2NoZWR1bGVTdHlsZVJlY2FsYygp
OwogfQogCiB2b2lkIE5vZGU6OnNldE5lZWRzU3R5bGVSZWNhbGMoU3R5bGVDaGFuZ2VUeXBlIGNo
YW5nZVR5cGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93
VGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TmFtZWRGbG93VGhyZWFkLmNwcAkocmV2aXNpb24gMTk4OTQ0KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0
OCwxMCArNTQ4LDEwIEBAIGJvb2wgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjppc0NoaWxkQWxsb3cK
ICAgICBBU1NFUlQoaXM8RWxlbWVudD4oKmNoaWxkLm5vZGUoKSkpOwogCiAgICAgYXV0byogb3Jp
Z2luYWxQYXJlbnQgPSBjb21wb3NlZFRyZWVBbmNlc3RvcnMoKmNoaWxkLm5vZGUoKSkuZmlyc3Qo
KTsKLSAgICBpZiAoIWlzPEVsZW1lbnQ+KG9yaWdpbmFsUGFyZW50KSB8fCAhb3JpZ2luYWxQYXJl
bnQtPnJlbmRlcmVyKCkpCisgICAgaWYgKCFvcmlnaW5hbFBhcmVudCB8fCAhb3JpZ2luYWxQYXJl
bnQtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgcmV0dXJuIGRvd25j
YXN0PEVsZW1lbnQ+KCpvcmlnaW5hbFBhcmVudCkucmVuZGVyZXIoKS0+aXNDaGlsZEFsbG93ZWQo
Y2hpbGQsIHN0eWxlKTsKKyAgICByZXR1cm4gb3JpZ2luYWxQYXJlbnQtPnJlbmRlcmVyKCktPmlz
Q2hpbGRBbGxvd2VkKGNoaWxkLCBzdHlsZSk7CiB9CiAKIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhy
ZWFkOjpkaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudElmTmVlZGVkKCkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVVcGRhdGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdHlsZS9SZW5kZXJUcmVlVXBkYXRlci5jcHAJKHJldmlzaW9uIDE5ODk5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVVcGRhdGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjMsMTQgKzYzLDE1IEBAIFJlbmRlclRyZWVVcGRhdGVyOjpSZW5kZXJUcmVl
VXBkYXRlcihEb2MKIAogc3RhdGljIENvbnRhaW5lck5vZGUmIGZpbmRSZW5kZXJpbmdSb290KENv
bnRhaW5lck5vZGUmIG5vZGUpCiB7Ci0gICAgYXV0byYgZG9jdW1lbnQgPSBub2RlLmRvY3VtZW50
KCk7Ci0gICAgZm9yIChDb21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yIGl0KGRvY3VtZW50LCBu
b2RlKSwgZW5kKGRvY3VtZW50KTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIGlmIChpdC0+
cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJldHVybiAqaXQ7Ci0gICAgICAgIEFTU0VSVChoYXNJ
bXBsaWNpdERpc3BsYXlDb250ZW50cyhkb3duY2FzdDxFbGVtZW50PigqaXQpKSk7CisgICAgaWYg
KG5vZGUucmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIG5vZGU7CisgICAgZm9yIChhdXRvJiBh
bmNlc3RvciA6IGNvbXBvc2VkVHJlZUFuY2VzdG9ycyhub2RlKSkgeworICAgICAgICBpZiAoYW5j
ZXN0b3IucmVuZGVyZXIoKSkKKyAgICAgICAgICAgIHJldHVybiBhbmNlc3RvcjsKKyAgICAgICAg
QVNTRVJUKGhhc0ltcGxpY2l0RGlzcGxheUNvbnRlbnRzKGFuY2VzdG9yKSk7CiAgICAgfQogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBkb2N1bWVudDsKKyAgICByZXR1cm4g
bm9kZS5kb2N1bWVudCgpOwogfQogCiB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjpjb21taXQoc3Rk
Ojp1bmlxdWVfcHRyPGNvbnN0IFN0eWxlOjpVcGRhdGU+IHN0eWxlVXBkYXRlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>