<?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>87004</bug_id>
          
          <creation_ts>2012-05-21 04:43:35 -0700</creation_ts>
          <short_desc>[Meta] Refactor ComposedShadowTreeWalker</short_desc>
          <delta_ts>2012-05-29 21:20:30 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hayato Ito">hayato</reporter>
          <assigned_to name="Hayato Ito">hayato</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>morrita</cc>
    
    <cc>shinyak</cc>
    
    <cc>tasak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>628964</commentid>
    <comment_count>0</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-05-21 04:43:35 -0700</bug_when>
    <thetext>There is a design issue of current ComposedShadowTreeWalker:

- parentIncludingInsertionPointAndShadowRoot() does not use Policy.
- Nothing prevents users from mixing parentIncludingInsertionPointAndShadowRoot() and other functions.

It might be better that we have:
 - A separated Walker class which provides only parentIncludingInsertionPointAndShadowRoot() and get rid of the function from current Walker class.
 - or yet another traversing Policy used for parentIncludingInsertionPointAndShadowRoot().
 - or making parentIncludingInsertionPointAndShadowRoot() a static function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635001</commentid>
    <comment_count>1</comment_count>
      <attachid>144305</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-05-28 01:48:13 -0700</bug_when>
    <thetext>Created attachment 144305
refactor a walker</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636123</commentid>
    <comment_count>2</comment_count>
      <attachid>144305</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-05-29 09:42:45 -0700</bug_when>
    <thetext>Comment on attachment 144305
refactor a walker

View in context: https://bugs.webkit.org/attachment.cgi?id=144305&amp;action=review

&gt; Source/WebCore/ChangeLog:3
&gt; +        Introcues ComposedShadowTreeParentWalker, extracted from ComposedShadowTreeWalker.

Introcues -&gt; Introduces

&gt; Source/WebCore/dom/ComposedShadowTreeWalker.h:124
&gt; +    void parentIncludingInsertionPointAndShadowRoot();

If this is a specialized walker, why not just call this &quot;parent&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636751</commentid>
    <comment_count>3</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-05-29 19:26:56 -0700</bug_when>
    <thetext>Thank you for the review.

(In reply to comment #2)
&gt; (From update of attachment 144305 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=144305&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Introcues ComposedShadowTreeParentWalker, extracted from ComposedShadowTreeWalker.
&gt; 
&gt; Introcues -&gt; Introduces

My bad. Let me fix.

&gt; 
&gt; &gt; Source/WebCore/dom/ComposedShadowTreeWalker.h:124
&gt; &gt; +    void parentIncludingInsertionPointAndShadowRoot();
&gt; 
&gt; If this is a specialized walker, why not just call this &quot;parent&quot;?

I agree that this is long and ugly function name, but I&apos;d like to leave words of &apos;IncludingInsertionPointAndShadowRoot&apos; somewhere to make its behavior clear and remind caller of the specialness of the function.

Another idea is to change class name, say ComposedShadowTreeParentXXXXInserionPointAndShadowRootXXXWalker&apos; (I cannot have a good name :( ) and call the function &apos;parent()&apos; since the class has only one traversal member function. But I&apos;d like to avoid such a long class name.

So let me land this as is. I am okay to rename the function name if we have better one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636765</commentid>
    <comment_count>4</comment_count>
      <attachid>144684</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-05-29 19:53:06 -0700</bug_when>
    <thetext>Created attachment 144684
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636810</commentid>
    <comment_count>5</comment_count>
      <attachid>144684</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-29 21:20:19 -0700</bug_when>
    <thetext>Comment on attachment 144684
Patch for landing

Clearing flags on attachment: 144684

Committed r118890: &lt;http://trac.webkit.org/changeset/118890&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636811</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-29 21:20:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144305</attachid>
            <date>2012-05-28 01:48:13 -0700</date>
            <delta_ts>2012-05-29 19:53:00 -0700</delta_ts>
            <desc>refactor a walker</desc>
            <filename>bug-87004-20120528174812.patch</filename>
            <type>text/plain</type>
            <size>9509</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzIyYmZlODk3ZjYxYjE4
MWYyMzljYWNiZmQ4YmZmMzEzZWE0NjAxMi4uMzlhZTliN2Q2ZDYwM2Y0ODI4NjdlMmRlNWRlNTlk
ODdhYmNlMDA3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA1LTI4ICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbnRyb2N1ZXMgQ29tcG9z
ZWRTaGFkb3dUcmVlUGFyZW50V2Fsa2VyLCBleHRyYWN0ZWQgZnJvbSBDb21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NzAwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEludG9ydWR1Y2VzIGEgQ29tcG9zZWRTaGFkb3dUcmVlUGFyZW50V2Fsa2VyLCB3aGljaCBpcyBv
bmx5IHVzZWQKKyAgICAgICAgZm9yIHRyYXZlcnNpbmcgYSBwYXJlbnQgbm9kZSAoaW5jbHVkaW5n
IHNoYWRvdyByb290cyBhbmQgaW5zZXJ0aW9uCisgICAgICAgIHBvaW50cykgYW5kIGdldCByaWQg
b2YgYW4gZXF1aXZhbGVudCBmdW5jdGlvbiBmcm9tCisgICAgICAgIENvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlci4KKworICAgICAgICBCZWZvcmUgdGhpcyBwYXRjaCwgdGhlcmUgaXMgYW4gaW5jb25z
aXN0ZW5jeSBpbnNpZGUgb2YKKyAgICAgICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLiBUaGUg
V2Fsa2VyIHVzZXMgJ1BvbGljeScgdG8gZGVjaWRlCisgICAgICAgIHdoZXRoZXIgaXQgc2hvdWxk
IHZpc2l0IHNoYWRvdyByb290cyBvciBub3QsIGJ1dAorICAgICAgICBwYXJlbnRJbmNsdWRpbmdJ
bnNlcnRpb25Qb2ludEFuZFNoYWRvd1Jvb3QoKSBtZW1iZXIgZnVuY3Rpb24KKyAgICAgICAgaWdu
b3JlcyB0aGUgcG9saWN5LiAgV2UgY2FuIG5vdCBhZGQgYW4gYXNzZXJ0aW9uIGluIGl0cworICAg
ICAgICBjb25zdHJ1Y3RvciBkdWUgdG8gdGhpcyBpbmNvbnNpc3RlbmN5LiAgVG8gcmVzb2x2ZSBp
dCwgd2UgY291bGQKKyAgICAgICAgYWRkIHlldCBhbm90aGVyIHNwZWNpYWwgcG9saWN5LCBidXQg
dGhhdCBtYWtlcyB0aGUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgY29tcGxleCBhbmQgbWF5IGFk
ZCBzb21lIG92ZXJoZWFkIGluIHJ1bnRpbWUuICBTbyBzZXBhcmF0ZSB0aGUKKyAgICAgICAgZnVu
Y3Rpb25hbGl0eSBpbnRvIGFub3RoZXIgY2xhc3MgYXMgQ29tcG9zZWRTaGFkb3dUcmVlUGFyZW50
V2Fsa2VyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gbmV3IGZ1bmN0aW9uYWxpdHkgZXhj
ZXB0IGZvciBhc3NlcnRpb24uCisKKyAgICAgICAgKiBkb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6Q29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93
VHJlZVBhcmVudFdhbGtlcjo6Q29tcG9zZWRTaGFkb3dUcmVlUGFyZW50V2Fsa2VyKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlUGFyZW50
V2Fsa2VyOjpwYXJlbnRJbmNsdWRpbmdJbnNlcnRpb25Qb2ludEFuZFNoYWRvd1Jvb3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlUGFyZW50V2Fsa2VyOjp0cmF2ZXJzZVBh
cmVudEluY2x1ZGluZ0luc2VydGlvblBvaW50QW5kU2hhZG93Um9vdCk6CisgICAgICAgICogZG9t
L0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oOgorICAgICAgICAoQ29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6YXNz
ZXJ0UHJlY29uZGl0aW9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29tcG9zZWRT
aGFkb3dUcmVlUGFyZW50V2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93
VHJlZVBhcmVudFdhbGtlcjo6Z2V0KToKKyAgICAgICAgKiBkb20vRXZlbnREaXNwYXRjaGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVsYXRlZFRhcmdldEFkanVzdGVyOjphZGp1c3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnREaXNwYXRjaGVyOjplbnN1cmVFdmVudEFuY2VzdG9y
cyk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp1cGRhdGVNb3VzZUV2ZW50VGFyZ2V0Tm9kZSk6CisKIDIwMTItMDUtMjcg
IFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGN1dCwg
Y29weSBvciBwYXN0ZSBldmVudCB3b24ndCBiZSBmaXJlZCBpbiBTaGFkb3cgRE9NLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcAppbmRleCBkOTg4
OWFiOThkZWY5YmY5ZjNkOTcyNWYyYWMyZmI0NWIwZjc5Y2M0Li4wYWQzMjliMTIzNWZiOTA3NTAx
NGE2ZTA0NWNhYjNhM2Q1Yzg0OGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcApAQCAtNTIsOCArNTIsMTAgQEAgQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIoY29uc3QgTm9kZSogbm9kZSwgUG9s
aWN5IHBvbGkKICAgICA6IG1fbm9kZShub2RlKQogICAgICwgbV9wb2xpY3kocG9saWN5KQogewot
ICAgIC8vIEZJWE1FOiBSZWZhY3RvciBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgc28gdGhhdCB3
ZSBjYW4gYXNzZXJ0IG5vZGUgaGVyZS4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODcwMDQKKyNpZm5kZWYgTkRFQlVHCisgICAgaWYgKG1fbm9kZSkKKyAg
ICAgICAgYXNzZXJ0UHJlY29uZGl0aW9uKCk7CisjZW5kaWYKIH0KIAogQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6ZnJvbUZpcnN0Q2hpbGQoY29uc3Qg
Tm9kZSogbm9kZSwgUG9saWN5IHBvbGljeSkKQEAgLTE5OCwyOCArMjAwLDYgQEAgdm9pZCBDb21w
b3NlZFNoYWRvd1RyZWVXYWxrZXI6OnBhcmVudCgpCiAgICAgYXNzZXJ0UG9zdGNvbmRpdGlvbigp
OwogfQogCi12b2lkIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6cGFyZW50SW5jbHVkaW5nSW5z
ZXJ0aW9uUG9pbnRBbmRTaGFkb3dSb290KCkKLXsKLSAgICBBU1NFUlQobV9ub2RlKTsKLSAgICBt
X25vZGUgPSB0cmF2ZXJzZVBhcmVudEluY2x1ZGluZ0luc2VydGlvblBvaW50QW5kU2hhZG93Um9v
dChtX25vZGUpOwotfQotCi1Ob2RlKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNl
UGFyZW50SW5jbHVkaW5nSW5zZXJ0aW9uUG9pbnRBbmRTaGFkb3dSb290KGNvbnN0IE5vZGUqIG5v
ZGUpIGNvbnN0Ci17Ci0gICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHNoYWRvd09mUGFy
ZW50KG5vZGUpKSB7Ci0gICAgICAgIGlmIChJbnNlcnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnQg
PSBzaGFkb3ctPmluc2VydGlvblBvaW50Rm9yKG5vZGUpKQotICAgICAgICAgICAgcmV0dXJuIGlu
c2VydGlvblBvaW50OwotICAgIH0KLSAgICBpZiAoIW5vZGUtPmlzU2hhZG93Um9vdCgpKQotICAg
ICAgICByZXR1cm4gbm9kZS0+cGFyZW50Tm9kZSgpOwotICAgIGNvbnN0IFNoYWRvd1Jvb3QqIHNo
YWRvd1Jvb3QgPSB0b1NoYWRvd1Jvb3Qobm9kZSk7Ci0gICAgaWYgKHNoYWRvd1Jvb3QtPmlzWW91
bmdlc3QoKSkKLSAgICAgICAgcmV0dXJuIHNoYWRvd1Jvb3QtPmhvc3QoKTsKLSAgICBJbnNlcnRp
b25Qb2ludCogYXNzaWduZWRJbnNlcnRpb25Qb2ludCA9IHNoYWRvd1Jvb3QtPmFzc2lnbmVkVG8o
KTsKLSAgICBBU1NFUlQoYXNzaWduZWRJbnNlcnRpb25Qb2ludCk7Ci0gICAgcmV0dXJuIGFzc2ln
bmVkSW5zZXJ0aW9uUG9pbnQ7Ci19Ci0KIE5vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6
dHJhdmVyc2VQYXJlbnQoY29uc3QgTm9kZSogbm9kZSkgY29uc3QKIHsKICAgICBpZiAoIWNhbkNy
b3NzVXBwZXJCb3VuZGFyeSgpICYmIG5vZGUtPmlzU2hhZG93Um9vdCgpKSB7CkBAIC0yOTMsNCAr
MjczLDMxIEBAIHZvaWQgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpwcmV2aW91cygpCiAgICAg
YXNzZXJ0UG9zdGNvbmRpdGlvbigpOwogfQogCitDb21wb3NlZFNoYWRvd1RyZWVQYXJlbnRXYWxr
ZXI6OkNvbXBvc2VkU2hhZG93VHJlZVBhcmVudFdhbGtlcihjb25zdCBOb2RlKiBub2RlKQorICAg
IDogbV9ub2RlKG5vZGUpCit7Cit9CisKK3ZvaWQgQ29tcG9zZWRTaGFkb3dUcmVlUGFyZW50V2Fs
a2VyOjpwYXJlbnRJbmNsdWRpbmdJbnNlcnRpb25Qb2ludEFuZFNoYWRvd1Jvb3QoKQoreworICAg
IEFTU0VSVChtX25vZGUpOworICAgIG1fbm9kZSA9IHRyYXZlcnNlUGFyZW50SW5jbHVkaW5nSW5z
ZXJ0aW9uUG9pbnRBbmRTaGFkb3dSb290KG1fbm9kZSk7Cit9CisKK05vZGUqIENvbXBvc2VkU2hh
ZG93VHJlZVBhcmVudFdhbGtlcjo6dHJhdmVyc2VQYXJlbnRJbmNsdWRpbmdJbnNlcnRpb25Qb2lu
dEFuZFNoYWRvd1Jvb3QoY29uc3QgTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBpZiAoRWxlbWVu
dFNoYWRvdyogc2hhZG93ID0gc2hhZG93T2ZQYXJlbnQobm9kZSkpIHsKKyAgICAgICAgaWYgKElu
c2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCA9IHNoYWRvdy0+aW5zZXJ0aW9uUG9pbnRGb3Io
bm9kZSkpCisgICAgICAgICAgICByZXR1cm4gaW5zZXJ0aW9uUG9pbnQ7CisgICAgfQorICAgIGlm
ICghbm9kZS0+aXNTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVybiBub2RlLT5wYXJlbnROb2Rl
KCk7CisgICAgY29uc3QgU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IHRvU2hhZG93Um9vdChub2Rl
KTsKKyAgICBpZiAoc2hhZG93Um9vdC0+aXNZb3VuZ2VzdCgpKQorICAgICAgICByZXR1cm4gc2hh
ZG93Um9vdC0+aG9zdCgpOworICAgIEluc2VydGlvblBvaW50KiBhc3NpZ25lZEluc2VydGlvblBv
aW50ID0gc2hhZG93Um9vdC0+YXNzaWduZWRUbygpOworICAgIEFTU0VSVChhc3NpZ25lZEluc2Vy
dGlvblBvaW50KTsKKyAgICByZXR1cm4gYXNzaWduZWRJbnNlcnRpb25Qb2ludDsKK30KKwogfSAv
LyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRv
d1RyZWVXYWxrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXIuaAppbmRleCA4MzFiODJjNjk3ZjM3NTY5NWJjNjdlZTg4MjI1YmIwMzEyZTZjOTYwLi5iYjlm
NDE2NzEzMGY0ZDRjNjkzNzhlODFjNGI5YWQ2YTEwNmJiMGY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oCkBAIC01OSw4ICs1OSw2IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHByZXZpb3VzU2libGluZygpOwogCiAgICAgdm9pZCBwYXJlbnQoKTsKLSAg
ICAvLyBUaGlzIGZ1bmN0aW9uIGlnbm9yZXMgcG9saWN5IGFuZCBhbHdheXMgY3Jvc3NlcyBhbiB1
cHBlciBib3VuZGFyeS4KLSAgICB2b2lkIHBhcmVudEluY2x1ZGluZ0luc2VydGlvblBvaW50QW5k
U2hhZG93Um9vdCgpOwogCiAgICAgdm9pZCBuZXh0KCk7CiAgICAgdm9pZCBwcmV2aW91cygpOwpA
QCAtODEsNyArNzksNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgQVNTRVJUKCFtX25vZGUtPmlz
U2hhZG93Um9vdCgpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgQVNTRVJUKCFtX25vZGUt
PmlzU2hhZG93Um9vdCgpIHx8IHRvU2hhZG93Um9vdChtX25vZGUpLT5pc1lvdW5nZXN0KCkpOwot
ICAgICAgICBBU1NFUlQoIWlzSW5zZXJ0aW9uUG9pbnQobV9ub2RlKSB8fCAhdG9JbnNlcnRpb25Q
b2ludChtX25vZGUpLT5pc0FjdGl2ZSgpKTsKKyAgICAgICAgQVNTRVJUKCFpc0FjdGl2ZUluc2Vy
dGlvblBvaW50KG1fbm9kZSkpOwogI2VuZGlmCiAgICAgfQogCkBAIC0xMDAsNyArOTgsNiBAQCBw
cml2YXRlOgogICAgIE5vZGUqIHRyYXZlcnNlTGFzdENoaWxkKGNvbnN0IE5vZGUqKSBjb25zdDsK
ICAgICBOb2RlKiB0cmF2ZXJzZUNoaWxkKGNvbnN0IE5vZGUqLCBUcmF2ZXJzYWxEaXJlY3Rpb24p
IGNvbnN0OwogICAgIE5vZGUqIHRyYXZlcnNlUGFyZW50KGNvbnN0IE5vZGUqKSBjb25zdDsKLSAg
ICBOb2RlKiB0cmF2ZXJzZVBhcmVudEluY2x1ZGluZ0luc2VydGlvblBvaW50QW5kU2hhZG93Um9v
dChjb25zdCBOb2RlKikgY29uc3Q7CiAKICAgICBzdGF0aWMgTm9kZSogdHJhdmVyc2VOZXh0U2li
bGluZyhjb25zdCBOb2RlKik7CiAgICAgc3RhdGljIE5vZGUqIHRyYXZlcnNlUHJldmlvdXNTaWJs
aW5nKGNvbnN0IE5vZGUqKTsKQEAgLTExOSw2ICsxMTYsMTggQEAgcHJpdmF0ZToKICAgICBQb2xp
Y3kgbV9wb2xpY3k7CiB9OwogCisvLyBBIHNwZWNpYWwgd2Fsa2VyIGNsYXNzIHdoaWNoIGlzIG9u
bHkgdXNlZCBmb3IgdHJhdmVyc2luZyBhIHBhcmVudCBub2RlLCBpbmNsdWRpbmcKKy8vIGluc2Vy
dGlvbiBwb2ludHMgYW5kIHNoYWRvdyByb290cy4KK2NsYXNzIENvbXBvc2VkU2hhZG93VHJlZVBh
cmVudFdhbGtlciB7CitwdWJsaWM6CisgICAgQ29tcG9zZWRTaGFkb3dUcmVlUGFyZW50V2Fsa2Vy
KGNvbnN0IE5vZGUqKTsKKyAgICB2b2lkIHBhcmVudEluY2x1ZGluZ0luc2VydGlvblBvaW50QW5k
U2hhZG93Um9vdCgpOworICAgIE5vZGUqIGdldCgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8
Tm9kZSo+KG1fbm9kZSk7IH0KK3ByaXZhdGU6CisgICAgTm9kZSogdHJhdmVyc2VQYXJlbnRJbmNs
dWRpbmdJbnNlcnRpb25Qb2ludEFuZFNoYWRvd1Jvb3QoY29uc3QgTm9kZSopIGNvbnN0OworICAg
IGNvbnN0IE5vZGUqIG1fbm9kZTsKK307CisKIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA4NWY0MmJjMmU0Yzk1N2FjYWU1
MzdiZDY1Yzk0NWRiM2M4YmQxZTQyLi5iNTRiYmJlZTYxOGRhMzJhNDA3NzRhZWYxMWUyMjA2NmI4
OGFhMTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtNjIsNyAr
NjIsNyBAQCBFdmVudFJlbGF0ZWRUYXJnZXRBZGp1c3Rlcjo6RXZlbnRSZWxhdGVkVGFyZ2V0QWRq
dXN0ZXIoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBQYQogdm9pZCBFdmVudFJlbGF0ZWRUYXJnZXRB
ZGp1c3Rlcjo6YWRqdXN0KFZlY3RvcjxFdmVudENvbnRleHQ+JiBhbmNlc3RvcnMpCiB7CiAgICAg
VHJlZVNjb3BlKiBsYXN0VHJlZVNjb3BlID0gMDsKLSAgICBmb3IgKENvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlciB3YWxrZXIobV9yZWxhdGVkVGFyZ2V0LmdldCgpKTsgd2Fsa2VyLmdldCgpOyB3YWxr
ZXIucGFyZW50SW5jbHVkaW5nSW5zZXJ0aW9uUG9pbnRBbmRTaGFkb3dSb290KCkpIHsKKyAgICBm
b3IgKENvbXBvc2VkU2hhZG93VHJlZVBhcmVudFdhbGtlciB3YWxrZXIobV9yZWxhdGVkVGFyZ2V0
LmdldCgpKTsgd2Fsa2VyLmdldCgpOyB3YWxrZXIucGFyZW50SW5jbHVkaW5nSW5zZXJ0aW9uUG9p
bnRBbmRTaGFkb3dSb290KCkpIHsKICAgICAgICAgVHJlZVNjb3BlKiBzY29wZSA9IHdhbGtlci5n
ZXQoKS0+dHJlZVNjb3BlKCk7CiAgICAgICAgIC8vIFNraXBzIGFkZGluZyBhIG5vZGUgdG8gdGhl
IG1hcCBpZiB0cmVlU2NvcGUgZG9lcyBub3QgY2hhbmdlLgogICAgICAgICBpZiAoc2NvcGUgIT0g
bGFzdFRyZWVTY29wZSkKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6
ZW5zdXJlRXZlbnRBbmNlc3RvcnMoRXZlbnQqIGV2ZW50KQogICAgIGJvb2wgaW5Eb2N1bWVudCA9
IG1fbm9kZS0+aW5Eb2N1bWVudCgpOwogICAgIGJvb2wgaXNTVkdFbGVtZW50ID0gbV9ub2RlLT5p
c1NWR0VsZW1lbnQoKTsKICAgICBWZWN0b3I8RXZlbnRUYXJnZXQqPiB0YXJnZXRTdGFjazsKLSAg
ICBmb3IgKENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB3YWxrZXIobV9ub2RlLmdldCgpKTsgd2Fs
a2VyLmdldCgpOyB3YWxrZXIucGFyZW50SW5jbHVkaW5nSW5zZXJ0aW9uUG9pbnRBbmRTaGFkb3dS
b290KCkpIHsKKyAgICBmb3IgKENvbXBvc2VkU2hhZG93VHJlZVBhcmVudFdhbGtlciB3YWxrZXIo
bV9ub2RlLmdldCgpKTsgd2Fsa2VyLmdldCgpOyB3YWxrZXIucGFyZW50SW5jbHVkaW5nSW5zZXJ0
aW9uUG9pbnRBbmRTaGFkb3dSb290KCkpIHsKICAgICAgICAgTm9kZSogbm9kZSA9IHdhbGtlci5n
ZXQoKTsKICAgICAgICAgaWYgKGlzQWN0aXZlSW5zZXJ0aW9uUG9pbnQobm9kZSkgfHwgdGFyZ2V0
U3RhY2suaXNFbXB0eSgpKQogICAgICAgICAgICAgdGFyZ2V0U3RhY2suYXBwZW5kKGV2ZW50VGFy
Z2V0UmVzcGVjdGluZ1NWR1RhcmdldFJ1bGVzKG5vZGUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAppbmRleCA2YzFiZTNhZGI1ZWM1MDNiYzI2ODA1YjEwNzc5OTZlYTQ4ZTI0ZTRl
Li4xN2YyYTVlNGM1OWQ4ZGZkMjlmZGQ2NGRlYmY1MTVlMjExODhkMjZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yMTE4LDcgKzIxMTgsNyBAQCB2b2lkIEV2ZW50SGFu
ZGxlcjo6dXBkYXRlTW91c2VFdmVudFRhcmdldE5vZGUoTm9kZSogdGFyZ2V0Tm9kZSwgY29uc3Qg
UGxhdGZvcm1NbwogICAgIGVsc2UgewogICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IG5vZGUgaXMg
YSB0ZXh0IG5vZGUsIGRpc3BhdGNoIG9uIHRoZSBwYXJlbnQgbm9kZSAtIHJkYXI6Ly80MTk2NjQ2
CiAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LT5pc1RleHROb2RlKCkpIHsKLSAgICAgICAg
ICAgIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB3YWxrZXIocmVzdWx0KTsKKyAgICAgICAgICAg
IENvbXBvc2VkU2hhZG93VHJlZVBhcmVudFdhbGtlciB3YWxrZXIocmVzdWx0KTsKICAgICAgICAg
ICAgIHdhbGtlci5wYXJlbnRJbmNsdWRpbmdJbnNlcnRpb25Qb2ludEFuZFNoYWRvd1Jvb3QoKTsK
ICAgICAgICAgICAgIHJlc3VsdCA9IHdhbGtlci5nZXQoKTsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144684</attachid>
            <date>2012-05-29 19:53:06 -0700</date>
            <delta_ts>2012-05-29 21:20:19 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-87004-20120530115305.patch</filename>
            <type>text/plain</type>
            <size>9510</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzIyYmZlODk3ZjYxYjE4
MWYyMzljYWNiZmQ4YmZmMzEzZWE0NjAxMi4uOWM3MjE3NGIwNjNjYjFlZTRlMjQ2YjRkZWFlMDg4
N2ZjMDY5NTI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA1LTI4ICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbnRyb2R1Y2VzIENvbXBv
c2VkU2hhZG93VHJlZVBhcmVudFdhbGtlciwgZXh0cmFjdGVkIGZyb20gQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODcwMDQKKworICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAg
ICAgSW50cm9kdWNlcyBhIENvbXBvc2VkU2hhZG93VHJlZVBhcmVudFdhbGtlciwgd2hpY2ggaXMg
b25seSB1c2VkCisgICAgICAgIGZvciB0cmF2ZXJzaW5nIGEgcGFyZW50IG5vZGUgKGluY2x1ZGlu
ZyBzaGFkb3cgcm9vdHMgYW5kIGluc2VydGlvbgorICAgICAgICBwb2ludHMpIGFuZCBnZXQgcmlk
IG9mIGFuIGVxdWl2YWxlbnQgZnVuY3Rpb24gZnJvbQorICAgICAgICBDb21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXIuCisKKyAgICAgICAgQmVmb3JlIHRoaXMgcGF0Y2gsIHRoZXJlIGlzIGFuIGluY29u
c2lzdGVuY3kgaW5zaWRlIG9mCisgICAgICAgIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlci4gVGhl
IFdhbGtlciB1c2VzICdQb2xpY3knIHRvIGRlY2lkZQorICAgICAgICB3aGV0aGVyIGl0IHNob3Vs
ZCB2aXNpdCBzaGFkb3cgcm9vdHMgb3Igbm90LCBidXQKKyAgICAgICAgcGFyZW50SW5jbHVkaW5n
SW5zZXJ0aW9uUG9pbnRBbmRTaGFkb3dSb290KCkgbWVtYmVyIGZ1bmN0aW9uCisgICAgICAgIGln
bm9yZXMgdGhlIHBvbGljeS4gIFdlIGNhbiBub3QgYWRkIGFuIGFzc2VydGlvbiBpbiBpdHMKKyAg
ICAgICAgY29uc3RydWN0b3IgZHVlIHRvIHRoaXMgaW5jb25zaXN0ZW5jeS4gIFRvIHJlc29sdmUg
aXQsIHdlIGNvdWxkCisgICAgICAgIGFkZCB5ZXQgYW5vdGhlciBzcGVjaWFsIHBvbGljeSwgYnV0
IHRoYXQgbWFrZXMgdGhlIGltcGxlbWVudGF0aW9uCisgICAgICAgIGNvbXBsZXggYW5kIG1heSBh
ZGQgc29tZSBvdmVyaGVhZCBpbiBydW50aW1lLiAgU28gc2VwYXJhdGUgdGhlCisgICAgICAgIGZ1
bmN0aW9uYWxpdHkgaW50byBhbm90aGVyIGNsYXNzIGFzIENvbXBvc2VkU2hhZG93VHJlZVBhcmVu
dFdhbGtlci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIG5ldyBmdW5jdGlvbmFsaXR5IGV4
Y2VwdCBmb3IgYXNzZXJ0aW9uLgorCisgICAgICAgICogZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdh
bGtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OkNv
bXBvc2VkU2hhZG93VHJlZVdhbGtlcik6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRv
d1RyZWVQYXJlbnRXYWxrZXI6OkNvbXBvc2VkU2hhZG93VHJlZVBhcmVudFdhbGtlcik6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVBhcmVu
dFdhbGtlcjo6cGFyZW50SW5jbHVkaW5nSW5zZXJ0aW9uUG9pbnRBbmRTaGFkb3dSb290KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVBhcmVudFdhbGtlcjo6dHJhdmVyc2VQ
YXJlbnRJbmNsdWRpbmdJbnNlcnRpb25Qb2ludEFuZFNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRv
bS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaDoKKyAgICAgICAgKENvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlcik6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OmFz
c2VydFByZWNvbmRpdGlvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENvbXBvc2Vk
U2hhZG93VHJlZVBhcmVudFdhbGtlcik6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRv
d1RyZWVQYXJlbnRXYWxrZXI6OmdldCk6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlbGF0ZWRUYXJnZXRBZGp1c3Rlcjo6YWRqdXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50RGlzcGF0Y2hlcjo6ZW5zdXJlRXZlbnRBbmNlc3Rv
cnMpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6dXBkYXRlTW91c2VFdmVudFRhcmdldE5vZGUpOgorCiAyMDEyLTA1LTI3
ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBjdXQs
IGNvcHkgb3IgcGFzdGUgZXZlbnQgd29uJ3QgYmUgZmlyZWQgaW4gU2hhZG93IERPTS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAKaW5kZXggZDk4
ODlhYjk4ZGVmOWJmOWYzZDk3MjVmMmFjMmZiNDViMGY3OWNjNC4uMGFkMzI5YjEyMzVmYjkwNzUw
MTRhNmUwNDVjYWIzYTNkNWM4NDhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBv
c2VkU2hhZG93VHJlZVdhbGtlci5jcHAKQEAgLTUyLDggKzUyLDEwIEBAIENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyKGNvbnN0IE5vZGUqIG5vZGUsIFBv
bGljeSBwb2xpCiAgICAgOiBtX25vZGUobm9kZSkKICAgICAsIG1fcG9saWN5KHBvbGljeSkKIHsK
LSAgICAvLyBGSVhNRTogUmVmYWN0b3IgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHNvIHRoYXQg
d2UgY2FuIGFzc2VydCBub2RlIGhlcmUuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg3MDA0CisjaWZuZGVmIE5ERUJVRworICAgIGlmIChtX25vZGUpCisg
ICAgICAgIGFzc2VydFByZWNvbmRpdGlvbigpOworI2VuZGlmCiB9CiAKIENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlciBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OmZyb21GaXJzdENoaWxkKGNvbnN0
IE5vZGUqIG5vZGUsIFBvbGljeSBwb2xpY3kpCkBAIC0xOTgsMjggKzIwMCw2IEBAIHZvaWQgQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpwYXJlbnQoKQogICAgIGFzc2VydFBvc3Rjb25kaXRpb24o
KTsKIH0KIAotdm9pZCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnBhcmVudEluY2x1ZGluZ0lu
c2VydGlvblBvaW50QW5kU2hhZG93Um9vdCgpCi17Ci0gICAgQVNTRVJUKG1fbm9kZSk7Ci0gICAg
bV9ub2RlID0gdHJhdmVyc2VQYXJlbnRJbmNsdWRpbmdJbnNlcnRpb25Qb2ludEFuZFNoYWRvd1Jv
b3QobV9ub2RlKTsKLX0KLQotTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJz
ZVBhcmVudEluY2x1ZGluZ0luc2VydGlvblBvaW50QW5kU2hhZG93Um9vdChjb25zdCBOb2RlKiBu
b2RlKSBjb25zdAotewotICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSBzaGFkb3dPZlBh
cmVudChub2RlKSkgewotICAgICAgICBpZiAoSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50
ID0gc2hhZG93LT5pbnNlcnRpb25Qb2ludEZvcihub2RlKSkKLSAgICAgICAgICAgIHJldHVybiBp
bnNlcnRpb25Qb2ludDsKLSAgICB9Ci0gICAgaWYgKCFub2RlLT5pc1NoYWRvd1Jvb3QoKSkKLSAg
ICAgICAgcmV0dXJuIG5vZGUtPnBhcmVudE5vZGUoKTsKLSAgICBjb25zdCBTaGFkb3dSb290KiBz
aGFkb3dSb290ID0gdG9TaGFkb3dSb290KG5vZGUpOwotICAgIGlmIChzaGFkb3dSb290LT5pc1lv
dW5nZXN0KCkpCi0gICAgICAgIHJldHVybiBzaGFkb3dSb290LT5ob3N0KCk7Ci0gICAgSW5zZXJ0
aW9uUG9pbnQqIGFzc2lnbmVkSW5zZXJ0aW9uUG9pbnQgPSBzaGFkb3dSb290LT5hc3NpZ25lZFRv
KCk7Ci0gICAgQVNTRVJUKGFzc2lnbmVkSW5zZXJ0aW9uUG9pbnQpOwotICAgIHJldHVybiBhc3Np
Z25lZEluc2VydGlvblBvaW50OwotfQotCiBOb2RlKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6
OnRyYXZlcnNlUGFyZW50KGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0CiB7CiAgICAgaWYgKCFjYW5D
cm9zc1VwcGVyQm91bmRhcnkoKSAmJiBub2RlLT5pc1NoYWRvd1Jvb3QoKSkgewpAQCAtMjkzLDQg
KzI3MywzMSBAQCB2b2lkIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6cHJldmlvdXMoKQogICAg
IGFzc2VydFBvc3Rjb25kaXRpb24oKTsKIH0KIAorQ29tcG9zZWRTaGFkb3dUcmVlUGFyZW50V2Fs
a2VyOjpDb21wb3NlZFNoYWRvd1RyZWVQYXJlbnRXYWxrZXIoY29uc3QgTm9kZSogbm9kZSkKKyAg
ICA6IG1fbm9kZShub2RlKQoreworfQorCit2b2lkIENvbXBvc2VkU2hhZG93VHJlZVBhcmVudFdh
bGtlcjo6cGFyZW50SW5jbHVkaW5nSW5zZXJ0aW9uUG9pbnRBbmRTaGFkb3dSb290KCkKK3sKKyAg
ICBBU1NFUlQobV9ub2RlKTsKKyAgICBtX25vZGUgPSB0cmF2ZXJzZVBhcmVudEluY2x1ZGluZ0lu
c2VydGlvblBvaW50QW5kU2hhZG93Um9vdChtX25vZGUpOworfQorCitOb2RlKiBDb21wb3NlZFNo
YWRvd1RyZWVQYXJlbnRXYWxrZXI6OnRyYXZlcnNlUGFyZW50SW5jbHVkaW5nSW5zZXJ0aW9uUG9p
bnRBbmRTaGFkb3dSb290KGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgaWYgKEVsZW1l
bnRTaGFkb3cqIHNoYWRvdyA9IHNoYWRvd09mUGFyZW50KG5vZGUpKSB7CisgICAgICAgIGlmIChJ
bnNlcnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnQgPSBzaGFkb3ctPmluc2VydGlvblBvaW50Rm9y
KG5vZGUpKQorICAgICAgICAgICAgcmV0dXJuIGluc2VydGlvblBvaW50OworICAgIH0KKyAgICBp
ZiAoIW5vZGUtPmlzU2hhZG93Um9vdCgpKQorICAgICAgICByZXR1cm4gbm9kZS0+cGFyZW50Tm9k
ZSgpOworICAgIGNvbnN0IFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSB0b1NoYWRvd1Jvb3Qobm9k
ZSk7CisgICAgaWYgKHNoYWRvd1Jvb3QtPmlzWW91bmdlc3QoKSkKKyAgICAgICAgcmV0dXJuIHNo
YWRvd1Jvb3QtPmhvc3QoKTsKKyAgICBJbnNlcnRpb25Qb2ludCogYXNzaWduZWRJbnNlcnRpb25Q
b2ludCA9IHNoYWRvd1Jvb3QtPmFzc2lnbmVkVG8oKTsKKyAgICBBU1NFUlQoYXNzaWduZWRJbnNl
cnRpb25Qb2ludCk7CisgICAgcmV0dXJuIGFzc2lnbmVkSW5zZXJ0aW9uUG9pbnQ7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFk
b3dUcmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyLmgKaW5kZXggODMxYjgyYzY5N2YzNzU2OTViYzY3ZWU4ODIyNWJiMDMxMmU2Yzk2MC4uYmI5
ZjQxNjcxMzBmNGQ0YzY5Mzc4ZTgxYzRiOWFkNmExMDZiYjBmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaApAQCAtNTksOCArNTksNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBwcmV2aW91c1NpYmxpbmcoKTsKIAogICAgIHZvaWQgcGFyZW50KCk7Ci0g
ICAgLy8gVGhpcyBmdW5jdGlvbiBpZ25vcmVzIHBvbGljeSBhbmQgYWx3YXlzIGNyb3NzZXMgYW4g
dXBwZXIgYm91bmRhcnkuCi0gICAgdm9pZCBwYXJlbnRJbmNsdWRpbmdJbnNlcnRpb25Qb2ludEFu
ZFNoYWRvd1Jvb3QoKTsKIAogICAgIHZvaWQgbmV4dCgpOwogICAgIHZvaWQgcHJldmlvdXMoKTsK
QEAgLTgxLDcgKzc5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIEFTU0VSVCghbV9ub2RlLT5p
c1NoYWRvd1Jvb3QoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIEFTU0VSVCghbV9ub2Rl
LT5pc1NoYWRvd1Jvb3QoKSB8fCB0b1NoYWRvd1Jvb3QobV9ub2RlKS0+aXNZb3VuZ2VzdCgpKTsK
LSAgICAgICAgQVNTRVJUKCFpc0luc2VydGlvblBvaW50KG1fbm9kZSkgfHwgIXRvSW5zZXJ0aW9u
UG9pbnQobV9ub2RlKS0+aXNBY3RpdmUoKSk7CisgICAgICAgIEFTU0VSVCghaXNBY3RpdmVJbnNl
cnRpb25Qb2ludChtX25vZGUpKTsKICNlbmRpZgogICAgIH0KIApAQCAtMTAwLDcgKzk4LDYgQEAg
cHJpdmF0ZToKICAgICBOb2RlKiB0cmF2ZXJzZUxhc3RDaGlsZChjb25zdCBOb2RlKikgY29uc3Q7
CiAgICAgTm9kZSogdHJhdmVyc2VDaGlsZChjb25zdCBOb2RlKiwgVHJhdmVyc2FsRGlyZWN0aW9u
KSBjb25zdDsKICAgICBOb2RlKiB0cmF2ZXJzZVBhcmVudChjb25zdCBOb2RlKikgY29uc3Q7Ci0g
ICAgTm9kZSogdHJhdmVyc2VQYXJlbnRJbmNsdWRpbmdJbnNlcnRpb25Qb2ludEFuZFNoYWRvd1Jv
b3QoY29uc3QgTm9kZSopIGNvbnN0OwogCiAgICAgc3RhdGljIE5vZGUqIHRyYXZlcnNlTmV4dFNp
YmxpbmcoY29uc3QgTm9kZSopOwogICAgIHN0YXRpYyBOb2RlKiB0cmF2ZXJzZVByZXZpb3VzU2li
bGluZyhjb25zdCBOb2RlKik7CkBAIC0xMTksNiArMTE2LDE4IEBAIHByaXZhdGU6CiAgICAgUG9s
aWN5IG1fcG9saWN5OwogfTsKIAorLy8gQSBzcGVjaWFsIHdhbGtlciBjbGFzcyB3aGljaCBpcyBv
bmx5IHVzZWQgZm9yIHRyYXZlcnNpbmcgYSBwYXJlbnQgbm9kZSwgaW5jbHVkaW5nCisvLyBpbnNl
cnRpb24gcG9pbnRzIGFuZCBzaGFkb3cgcm9vdHMuCitjbGFzcyBDb21wb3NlZFNoYWRvd1RyZWVQ
YXJlbnRXYWxrZXIgeworcHVibGljOgorICAgIENvbXBvc2VkU2hhZG93VHJlZVBhcmVudFdhbGtl
cihjb25zdCBOb2RlKik7CisgICAgdm9pZCBwYXJlbnRJbmNsdWRpbmdJbnNlcnRpb25Qb2ludEFu
ZFNoYWRvd1Jvb3QoKTsKKyAgICBOb2RlKiBnZXQoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0
PE5vZGUqPihtX25vZGUpOyB9Citwcml2YXRlOgorICAgIE5vZGUqIHRyYXZlcnNlUGFyZW50SW5j
bHVkaW5nSW5zZXJ0aW9uUG9pbnRBbmRTaGFkb3dSb290KGNvbnN0IE5vZGUqKSBjb25zdDsKKyAg
ICBjb25zdCBOb2RlKiBtX25vZGU7Cit9OworCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggODVmNDJiYzJlNGM5NTdhY2Fl
NTM3YmQ2NWM5NDVkYjNjOGJkMWU0Mi4uYjU0YmJiZWU2MThkYTMyYTQwNzc0YWVmMTFlMjIwNjZi
ODhhYTEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTYyLDcg
KzYyLDcgQEAgRXZlbnRSZWxhdGVkVGFyZ2V0QWRqdXN0ZXI6OkV2ZW50UmVsYXRlZFRhcmdldEFk
anVzdGVyKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgUGEKIHZvaWQgRXZlbnRSZWxhdGVkVGFyZ2V0
QWRqdXN0ZXI6OmFkanVzdChWZWN0b3I8RXZlbnRDb250ZXh0PiYgYW5jZXN0b3JzKQogewogICAg
IFRyZWVTY29wZSogbGFzdFRyZWVTY29wZSA9IDA7Ci0gICAgZm9yIChDb21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXIgd2Fsa2VyKG1fcmVsYXRlZFRhcmdldC5nZXQoKSk7IHdhbGtlci5nZXQoKTsgd2Fs
a2VyLnBhcmVudEluY2x1ZGluZ0luc2VydGlvblBvaW50QW5kU2hhZG93Um9vdCgpKSB7CisgICAg
Zm9yIChDb21wb3NlZFNoYWRvd1RyZWVQYXJlbnRXYWxrZXIgd2Fsa2VyKG1fcmVsYXRlZFRhcmdl
dC5nZXQoKSk7IHdhbGtlci5nZXQoKTsgd2Fsa2VyLnBhcmVudEluY2x1ZGluZ0luc2VydGlvblBv
aW50QW5kU2hhZG93Um9vdCgpKSB7CiAgICAgICAgIFRyZWVTY29wZSogc2NvcGUgPSB3YWxrZXIu
Z2V0KCktPnRyZWVTY29wZSgpOwogICAgICAgICAvLyBTa2lwcyBhZGRpbmcgYSBub2RlIHRvIHRo
ZSBtYXAgaWYgdHJlZVNjb3BlIGRvZXMgbm90IGNoYW5nZS4KICAgICAgICAgaWYgKHNjb3BlICE9
IGxhc3RUcmVlU2NvcGUpCkBAIC0yMDMsNyArMjAzLDcgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6
OmVuc3VyZUV2ZW50QW5jZXN0b3JzKEV2ZW50KiBldmVudCkKICAgICBib29sIGluRG9jdW1lbnQg
PSBtX25vZGUtPmluRG9jdW1lbnQoKTsKICAgICBib29sIGlzU1ZHRWxlbWVudCA9IG1fbm9kZS0+
aXNTVkdFbGVtZW50KCk7CiAgICAgVmVjdG9yPEV2ZW50VGFyZ2V0Kj4gdGFyZ2V0U3RhY2s7Ci0g
ICAgZm9yIChDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyKG1fbm9kZS5nZXQoKSk7IHdh
bGtlci5nZXQoKTsgd2Fsa2VyLnBhcmVudEluY2x1ZGluZ0luc2VydGlvblBvaW50QW5kU2hhZG93
Um9vdCgpKSB7CisgICAgZm9yIChDb21wb3NlZFNoYWRvd1RyZWVQYXJlbnRXYWxrZXIgd2Fsa2Vy
KG1fbm9kZS5nZXQoKSk7IHdhbGtlci5nZXQoKTsgd2Fsa2VyLnBhcmVudEluY2x1ZGluZ0luc2Vy
dGlvblBvaW50QW5kU2hhZG93Um9vdCgpKSB7CiAgICAgICAgIE5vZGUqIG5vZGUgPSB3YWxrZXIu
Z2V0KCk7CiAgICAgICAgIGlmIChpc0FjdGl2ZUluc2VydGlvblBvaW50KG5vZGUpIHx8IHRhcmdl
dFN0YWNrLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHRhcmdldFN0YWNrLmFwcGVuZChldmVudFRh
cmdldFJlc3BlY3RpbmdTVkdUYXJnZXRSdWxlcyhub2RlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKaW5kZXggNmMxYmUzYWRiNWVjNTAzYmMyNjgwNWIxMDc3OTk2ZWE0OGUyNGU0
ZS4uMTdmMmE1ZTRjNTlkOGRmZDI5ZmRkNjRkZWJmNTE1ZTIxMTg4ZDI2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjExOCw3ICsyMTE4LDcgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OnVwZGF0ZU1vdXNlRXZlbnRUYXJnZXROb2RlKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0
IFBsYXRmb3JtTW8KICAgICBlbHNlIHsKICAgICAgICAgLy8gSWYgdGhlIHRhcmdldCBub2RlIGlz
IGEgdGV4dCBub2RlLCBkaXNwYXRjaCBvbiB0aGUgcGFyZW50IG5vZGUgLSByZGFyOi8vNDE5NjY0
NgogICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC0+aXNUZXh0Tm9kZSgpKSB7Ci0gICAgICAg
ICAgICBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyKHJlc3VsdCk7CisgICAgICAgICAg
ICBDb21wb3NlZFNoYWRvd1RyZWVQYXJlbnRXYWxrZXIgd2Fsa2VyKHJlc3VsdCk7CiAgICAgICAg
ICAgICB3YWxrZXIucGFyZW50SW5jbHVkaW5nSW5zZXJ0aW9uUG9pbnRBbmRTaGFkb3dSb290KCk7
CiAgICAgICAgICAgICByZXN1bHQgPSB3YWxrZXIuZ2V0KCk7CiAgICAgICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>