<?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>61011</bug_id>
          
          <creation_ts>2011-05-17 18:18:32 -0700</creation_ts>
          <short_desc>[Refactoring] attach() following detach() should be replaced with Node::forceReattach()</short_desc>
          <delta_ts>2011-05-23 20:31:56 -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="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>405439</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-17 18:18:32 -0700</bug_when>
    <thetext>We are going to have the method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405474</commentid>
    <comment_count>1</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-05-17 20:10:59 -0700</bug_when>
    <thetext>Is there anything special about forceReattach compared to detach and attach? (eg detach and attach a bug because ...?, or just slow because ...?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405508</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-17 21:51:25 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Is there anything special about forceReattach compared to detach and attach? (eg detach and attach a bug because ...?, or just slow because ...?)
Nothing special, it&apos;s just a shorthand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405709</commentid>
    <comment_count>3</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-05-18 07:38:51 -0700</bug_when>
    <thetext>Also, it&apos;s something we should work to replace every instance of detach()/attach() (anti)pattern with something smarter or gentler. Rounding all occurrences into one place seems like a good start.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406925</commentid>
    <comment_count>4</comment_count>
      <attachid>94184</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-20 01:01:06 -0700</bug_when>
    <thetext>Created attachment 94184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407147</commentid>
    <comment_count>5</comment_count>
      <attachid>94184</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-05-20 09:12:46 -0700</bug_when>
    <thetext>Comment on attachment 94184
Patch

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

Thank you for taking on this!

&gt; Source/WebCore/ChangeLog:9
&gt; +        - Replaced detach() following attach() with reattach()

Great name!

&gt; Source/WebCore/dom/CharacterData.cpp:185
&gt; +        reattach();

This will never hit unless the node is already attached, so the value of ReattachType is irrelevant here.

&gt; Source/WebCore/dom/Node.h:454
&gt; +    void reattach(ReattachType = ReattachIfAttached);

Looking at the callsites, I think ReattachAlways should be the default.

&gt; Source/WebCore/dom/Node.h:746
&gt; +    if (!attached()) {
&gt; +        if (type == ReattachAlways)
&gt; +            attach();

This seems wrong. Why are we attempting to attach here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407775</commentid>
    <comment_count>6</comment_count>
      <attachid>94373</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-22 23:30:25 -0700</bug_when>
    <thetext>Created attachment 94373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407778</commentid>
    <comment_count>7</comment_count>
      <attachid>94184</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-22 23:32:26 -0700</bug_when>
    <thetext>Comment on attachment 94184
Patch

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

Hi Dimitri, thank you for the first round!  Here is update.

&gt;&gt; Source/WebCore/dom/CharacterData.cpp:185
&gt;&gt; +        reattach();
&gt; 
&gt; This will never hit unless the node is already attached, so the value of ReattachType is irrelevant here.

I splited reattach() and reattachIfAttached() an use reattach() here.

&gt;&gt; Source/WebCore/dom/Node.h:454
&gt;&gt; +    void reattach(ReattachType = ReattachIfAttached);
&gt; 
&gt; Looking at the callsites, I think ReattachAlways should be the default.

Now there are reattach() and reattachIfAttached().

&gt;&gt; Source/WebCore/dom/Node.h:746
&gt;&gt; +            attach();
&gt; 
&gt; This seems wrong. Why are we attempting to attach here?

Makes sense. I clarified this by splitting the function into two.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407780</commentid>
    <comment_count>8</comment_count>
      <attachid>94375</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-22 23:46:58 -0700</bug_when>
    <thetext>Created attachment 94375
synced to HEAD</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408599</commentid>
    <comment_count>9</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-23 20:31:56 -0700</bug_when>
    <thetext>Committed r87123: &lt;http://trac.webkit.org/changeset/87123&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94184</attachid>
            <date>2011-05-20 01:01:06 -0700</date>
            <delta_ts>2011-05-22 23:46:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61011-20110520170104.patch</filename>
            <type>text/plain</type>
            <size>12114</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY5MjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYjFkY2Q2MWI4ZDdmODFi
MWViNGU2ZjY2ZTVmZDYwYTZmNTc0ZWNmLi45ZmUzZTY2ZjA1OTUyYzEzYTcyNGQzYmZhNTEwYjA3
ZjkzZmEwMzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDUtMjAgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBbUmVmYWN0b3JpbmddIGF0dGFjaCgpIGZv
bGxvd2luZyBkZXRhY2goKSBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCBOb2RlOjpyZWF0dGFjaCgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTAxMQor
CisgICAgICAgIC0gUmVuYW1lZCBmb3JjZVJlYXR0YWNoKCkgYW5kIGFkZCBhbiBSZWF0dGFjaFR5
cGUgb3B0aW9uCisgICAgICAgIC0gUmVwbGFjZWQgZGV0YWNoKCkgZm9sbG93aW5nIGF0dGFjaCgp
IHdpdGggcmVhdHRhY2goKQorICAgICAgICAKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBiZWhh
dmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBkb20vQ2hhcmFjdGVyRGF0YS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDaGFyYWN0ZXJEYXRhOjp1cGRhdGVSZW5kZXJlcik6CisgICAgICAgICogZG9t
L0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUpOgor
ICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZWF0dGFjaCk6
CisgICAgICAgICogZG9tL1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dDo6cmVjYWxj
U3R5bGUpOgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6cmVmcmVzaE1haW5TdW1tYXJ5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgor
ICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW5wdXRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVu
dDo6cmVuZGVyRmFsbGJhY2tDb250ZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6
cmVjYWxjU3R5bGUpOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToK
KwogMjAxMS0wNS0xOSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAY29kZWF1cm9yYS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFy
YWN0ZXJEYXRhLmNwcAppbmRleCBlMTgxNWQ5ZDg4ZDM3NTZiMGI0MDcwMzg1ZWRiYThlMjgxMzc5
YTFmLi4wMjExMDhkZmFhNjdjZjA4MzZkMTU0OWIzYTBjNTU2NWM4MTY4YjU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCkBAIC0xODIsOCArMTgyLDcgQEAgdm9pZCBDaGFyYWN0
ZXJEYXRhOjpzZXREYXRhQW5kVXBkYXRlKFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gbmV3RGF0YSwg
dW5zaWduZWQgb2YKIHZvaWQgQ2hhcmFjdGVyRGF0YTo6dXBkYXRlUmVuZGVyZXIodW5zaWduZWQg
b2Zmc2V0T2ZSZXBsYWNlZERhdGEsIHVuc2lnbmVkIGxlbmd0aE9mUmVwbGFjZWREYXRhKQogewog
ICAgIGlmICgoIXJlbmRlcmVyKCkgfHwgIXJlbmRlcmVySXNOZWVkZWQocmVuZGVyZXIoKS0+c3R5
bGUoKSkpICYmIGF0dGFjaGVkKCkpIHsKLSAgICAgICAgZGV0YWNoKCk7Ci0gICAgICAgIGF0dGFj
aCgpOworICAgICAgICByZWF0dGFjaCgpOwogICAgIH0gZWxzZSBpZiAocmVuZGVyZXIoKSkKICAg
ICAgICAgdG9SZW5kZXJUZXh0KHJlbmRlcmVyKCkpLT5zZXRUZXh0V2l0aE9mZnNldChtX2RhdGEs
IG9mZnNldE9mUmVwbGFjZWREYXRhLCBsZW5ndGhPZlJlcGxhY2VkRGF0YSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKaW5kZXggNmNlMWY3MzM3MGY3N2MwMDNmOTdiNWMzYjJlYzRjNzNmNjY3OTMx
Ny4uMWM4NjA0YjY3OGQ3MTViNzI4YWYzYjY2ZDlhZjVlYWQ4ZmUyMTRmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcApAQCAtMTA4Niw5ICsxMDg2LDggQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHls
ZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5
bGUgPSBkb2N1bWVudCgpLT5zdHlsZVNlbGVjdG9yKCktPnN0eWxlRm9yRWxlbWVudCh0aGlzKTsK
ICAgICAgICAgU3R5bGVDaGFuZ2UgY2ggPSBkaWZmKGN1cnJlbnRTdHlsZS5nZXQoKSwgbmV3U3R5
bGUuZ2V0KCkpOwogICAgICAgICBpZiAoY2ggPT0gRGV0YWNoIHx8ICFjdXJyZW50U3R5bGUpIHsK
LSAgICAgICAgICAgIGlmIChhdHRhY2hlZCgpKQotICAgICAgICAgICAgICAgIGRldGFjaCgpOwot
ICAgICAgICAgICAgYXR0YWNoKCk7IC8vIEZJWE1FOiBUaGUgc3R5bGUgZ2V0cyBjb21wdXRlZCB0
d2ljZSBieSBjYWxsaW5nIGF0dGFjaC4gV2UgY291bGQgZG8gYmV0dGVyIGlmIHdlIHBhc3NlZCB0
aGUgc3R5bGUgYWxvbmcuCisgICAgICAgICAgICAvLyBGSVhNRTogVGhlIHN0eWxlIGdldHMgY29t
cHV0ZWQgdHdpY2UgYnkgY2FsbGluZyBhdHRhY2guIFdlIGNvdWxkIGRvIGJldHRlciBpZiB3ZSBw
YXNzZWQgdGhlIHN0eWxlIGFsb25nLgorICAgICAgICAgICAgcmVhdHRhY2goTm9kZTo6UmVhdHRh
Y2hBbHdheXMpOwogICAgICAgICAgICAgLy8gYXR0YWNoIHJlY2FsdWxhdGVzIHRoZSBzdHlsZSBm
b3IgYWxsIGNoaWxkcmVuLiBObyBuZWVkIHRvIGRvIGl0IHR3aWNlLgogICAgICAgICAgICAgY2xl
YXJOZWVkc1N0eWxlUmVjYWxjKCk7CiAgICAgICAgICAgICBjbGVhckNoaWxkTmVlZHNTdHlsZVJl
Y2FsYygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggMzFmYThiZjM3YzkwZTAxYzY0MDA5NDU2NWI2ODNiMjRi
YzE3MzY2Yi4uZWNhNDFiOGIzYWY3Y2FmMTVlYjBmYWMyMWNmNDM5ZWYwM2IxZWIxYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCkBAIC00NDYsNyArNDQ2LDEyIEBAIHB1YmxpYzoKICAgICAvLyB0aGUgbm9kZSdzIHJl
bmRlcmluZyBvYmplY3QgZnJvbSB0aGUgcmVuZGVyaW5nIHRyZWUgYW5kIGRlbGV0ZSBpdC4KICAg
ICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CiAKLSAgICB2b2lkIGZvcmNlUmVhdHRhY2goKTsKKyAg
ICBlbnVtIFJlYXR0YWNoVHlwZSB7CisgICAgICAgIFJlYXR0YWNoQWx3YXlzLAorICAgICAgICBS
ZWF0dGFjaElmQXR0YWNoZWQKKyAgICB9OworCisgICAgdm9pZCByZWF0dGFjaChSZWF0dGFjaFR5
cGUgPSBSZWF0dGFjaElmQXR0YWNoZWQpOwogCiAgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmUo
KTsKICAgICB2b2lkIGNyZWF0ZVJlbmRlcmVySWZOZWVkZWQoKTsKQEAgLTczNCwxMCArNzM5LDE0
IEBAIGlubGluZSBDb250YWluZXJOb2RlKiBOb2RlOjpwYXJlbnROb2RlR3VhcmFudGVlZEhvc3RG
cmVlKCkgY29uc3QKICAgICByZXR1cm4gcGFyZW50T3JIb3N0Tm9kZSgpOwogfQogCi1pbmxpbmUg
dm9pZCBOb2RlOjpmb3JjZVJlYXR0YWNoKCkKK2lubGluZSB2b2lkIE5vZGU6OnJlYXR0YWNoKFJl
YXR0YWNoVHlwZSB0eXBlKQogewotICAgIGlmICghYXR0YWNoZWQoKSkKKyAgICBpZiAoIWF0dGFj
aGVkKCkpIHsKKyAgICAgICAgaWYgKHR5cGUgPT0gUmVhdHRhY2hBbHdheXMpCisgICAgICAgICAg
ICBhdHRhY2goKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGRldGFjaCgpOwogICAg
IGF0dGFjaCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRl
bnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9y
LmNwcAppbmRleCA5YmQ0ZGQwM2VmYTliMThkYzg5OGViOWUzNzgxYzVjOTRjOGY4YzRjLi5hMmMz
MmNmYjlkYWRjOTc0MmU4ZmNjN2VkYzZkYjMyN2RmNzUwZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIFNo
YWRvd0NvbnRlbnRTZWxlY3Rvcjo6YXR0YWNoQ2hpbGRyZW5Gb3IoU2hhZG93Q29udGVudEVsZW1l
bnQqIGNvbnRlbnRFbGVtZQogICAgICAgICBpZiAoIWNvbnRlbnRFbGVtZW50LT5zaG91bGRJbmNs
dWRlKGNoaWxkKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGNoaWxkLT5mb3Jj
ZVJlYXR0YWNoKCk7CisgICAgICAgIGNoaWxkLT5yZWF0dGFjaCgpOwogICAgICAgICBtX2NoaWxk
cmVuW2ldID0gMDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBiZjM4
MmI3YmI1OWNhYjFjM2YyYzY5ZDk2NDAzMDU4ZWExNDg3MDEyLi4wNjA4OGM3NjJjOGU5ZmMwNDM4
NTNkOTY5ZTZjNDg1MjY4MjJhOWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC04
NCw3ICs4NCw3IEBAIGJvb2wgU2hhZG93Um9vdDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0
eXBlKSBjb25zdAogdm9pZCBTaGFkb3dSb290OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFu
Z2UpCiB7CiAgICAgaWYgKGhhc0NvbnRlbnRFbGVtZW50KCkpCi0gICAgICAgIGZvcmNlUmVhdHRh
Y2goKTsKKyAgICAgICAgcmVhdHRhY2goKTsKICAgICBlbHNlIHsKICAgICAgICAgZm9yIChOb2Rl
KiBuID0gZmlyc3RDaGlsZCgpOyBuOyBuID0gbi0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgICAg
IG4tPnJlY2FsY1N0eWxlKGNoYW5nZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggYjcxMDBmZWM0MGI2
NjM1MWE2ODQzM2U3ZDRmOGU5MjdmMTdiNzRlMC4uZGUyMjdmNzJkOTU0ODRhOWM5ZjJjNTU4N2Iz
NGVlOTdiODM4NTJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtMjY1LDExICsyNjUsOCBAQCB2b2lk
IFRleHQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICAgICAgaWYgKHJlbmRl
cmVyKCkpIHsKICAgICAgICAgICAgIGlmIChyZW5kZXJlcigpLT5pc1RleHQoKSkKICAgICAgICAg
ICAgICAgICB0b1JlbmRlclRleHQocmVuZGVyZXIoKSktPnNldFRleHQoZGF0YUltcGwoKSk7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoYXR0YWNoZWQoKSkKLSAgICAgICAgICAg
ICAgICBkZXRhY2goKTsKLSAgICAgICAgICAgIGF0dGFjaCgpOwotICAgICAgICB9CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgcmVhdHRhY2goTm9kZTo6UmVhdHRhY2hBbHdheXMpOwogICAg
IH0KICAgICBjbGVhck5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERldGFpbHNFbGVtZW50LmNwcAppbmRleCBjOGUzYjg4MzUwMTFiNjlkNThjODkyY2Y4OGMx
NTgyYmY3YTA5NDU4Li5mOTQ3Y2ZlZGNhYjkxYjMxOGEzOThjMDdlZjMzNDhjYTA5MjFmNDdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0xNDYsMTUg
KzE0NiwxMCBAQCB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6cmVmcmVzaE1haW5TdW1tYXJ5KFJl
ZnJlc2hSZW5kZXJlciByZWZyZXNoUmVuZGVyZXIpCiAgICAgaWYgKG9sZFN1bW1hcnkgPT0gbV9t
YWluU3VtbWFyeSB8fCAhYXR0YWNoZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG9s
ZFN1bW1hcnkgJiYgb2xkU3VtbWFyeS0+cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkp
IHsKLSAgICAgICAgb2xkU3VtbWFyeS0+ZGV0YWNoKCk7Ci0gICAgICAgIG9sZFN1bW1hcnktPmF0
dGFjaCgpOwotICAgIH0KLSAgICAgICAgCi0gICAgaWYgKG1fbWFpblN1bW1hcnkgJiYgcmVmcmVz
aFJlbmRlcmVyID09IFJlZnJlc2hSZW5kZXJlckFsbG93ZWQpIHsKLSAgICAgICAgbV9tYWluU3Vt
bWFyeS0+ZGV0YWNoKCk7Ci0gICAgICAgIG1fbWFpblN1bW1hcnktPmF0dGFjaCgpOwotICAgIH0K
KyAgICBpZiAob2xkU3VtbWFyeSAmJiBvbGRTdW1tYXJ5LT5wYXJlbnROb2RlRm9yUmVuZGVyaW5n
QW5kU3R5bGUoKSkKKyAgICAgICAgb2xkU3VtbWFyeS0+cmVhdHRhY2goTm9kZTo6UmVhdHRhY2hB
bHdheXMpOworICAgIGlmIChtX21haW5TdW1tYXJ5ICYmIHJlZnJlc2hSZW5kZXJlciA9PSBSZWZy
ZXNoUmVuZGVyZXJBbGxvd2VkKQorICAgICAgICBtX21haW5TdW1tYXJ5LT5yZWF0dGFjaChOb2Rl
OjpSZWF0dGFjaEFsd2F5cyk7CiB9CiAKIHZvaWQgSFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGVT
aGFkb3dTdWJ0cmVlKCkKQEAgLTE5NiwxMCArMTkxLDggQEAgdm9pZCBIVE1MRGV0YWlsc0VsZW1l
bnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKICAgICBpZiAoYXR0ci0+
bmFtZSgpID09IG9wZW5BdHRyKSB7CiAgICAgICAgIGJvb2wgb2xkVmFsdWUgPSBtX2lzT3BlbjsK
ICAgICAgICAgbV9pc09wZW4gPSAgIWF0dHItPnZhbHVlKCkuaXNOdWxsKCk7Ci0gICAgICAgIGlm
IChhdHRhY2hlZCgpICYmIG9sZFZhbHVlICE9IG1faXNPcGVuKSB7Ci0gICAgICAgICAgICBkZXRh
Y2goKTsKLSAgICAgICAgICAgIGF0dGFjaCgpOwotICAgICAgICB9CisgICAgICAgIGlmIChhdHRh
Y2hlZCgpICYmIG9sZFZhbHVlICE9IG1faXNPcGVuKQorICAgICAgICAgICAgcmVhdHRhY2goTm9k
ZTo6UmVhdHRhY2hBbHdheXMpOwogICAgIH0gZWxzZQogICAgICAgICBIVE1MRWxlbWVudDo6cGFy
c2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcAppbmRleCA5OTBmZmQzYmIyNzJkZGYyYjg1MmVkMDhlYTBjMDA2NDdiOWRiNjA1
Li5mODIxMGE2YzgwMzQ5OTllMmU5OTNkMjZkMmQ3NDJmY2IyZTc1NDExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTY3NywxMCArNjc3LDggQEAgdm9pZCBI
VE1MSW5wdXRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiAg
ICAgICAgIG1fbWF4UmVzdWx0cyA9ICFhdHRyLT5pc051bGwoKSA/IHN0ZDo6bWluKGF0dHItPnZh
bHVlKCkudG9JbnQoKSwgbWF4U2F2ZWRSZXN1bHRzKSA6IC0xOwogICAgICAgICAvLyBGSVhNRTog
RGV0YWNoaW5nIGp1c3QgZm9yIG1heFJlc3VsdHMgY2hhbmdlIGlzIG5vdCBpZGVhbC4gIFdlIHNo
b3VsZCBmaWd1cmUgb3V0IHRoZSByaWdodAogICAgICAgICAvLyB0aW1lIHRvIHJlbGF5b3V0IGZv
ciB0aGlzIGNoYW5nZS4KLSAgICAgICAgaWYgKG1fbWF4UmVzdWx0cyAhPSBvbGRSZXN1bHRzICYm
IChtX21heFJlc3VsdHMgPD0gMCB8fCBvbGRSZXN1bHRzIDw9IDApICYmIGF0dGFjaGVkKCkpIHsK
LSAgICAgICAgICAgIGRldGFjaCgpOwotICAgICAgICAgICAgYXR0YWNoKCk7Ci0gICAgICAgIH0K
KyAgICAgICAgaWYgKG1fbWF4UmVzdWx0cyAhPSBvbGRSZXN1bHRzICYmIChtX21heFJlc3VsdHMg
PD0gMCB8fCBvbGRSZXN1bHRzIDw9IDApICYmIGF0dGFjaGVkKCkpCisgICAgICAgICAgICByZWF0
dGFjaCgpOwogICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CiAgICAgfSBlbHNlIGlmIChh
dHRyLT5uYW1lKCkgPT0gYXV0b3NhdmVBdHRyIHx8IGF0dHItPm5hbWUoKSA9PSBpbmNyZW1lbnRh
bEF0dHIpCiAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKQEAgLTY5NiwxMyArNjk0LDEx
IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRl
KiBhdHRyKQogI2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICBlbHNlIGlmIChh
dHRyLT5uYW1lKCkgPT0gd2Via2l0c3BlZWNoQXR0cikgewotICAgICAgICBpZiAocmVuZGVyZXIo
KSkgewotICAgICAgICAgICAgLy8gVGhpcyByZW5kZXJlciBhbmQgaXRzIGNoaWxkcmVuIGhhdmUg
cXVpdGUgZGlmZmVyZW50IGxheW91dHMgYW5kIHN0eWxlcyBkZXBlbmRpbmcgb24KLSAgICAgICAg
ICAgIC8vIHdoZXRoZXIgdGhlIHNwZWVjaCBidXR0b24gaXMgdmlzaWJsZSBvciBub3QuIFNvIHdl
IHJlc2V0IHRoZSB3aG9sZSB0aGluZyBhbmQgcmVjcmVhdGUKLSAgICAgICAgICAgIC8vIHRvIGdl
dCB0aGUgcmlnaHQgc3R5bGVzIGFuZCBsYXlvdXQuCi0gICAgICAgICAgICBkZXRhY2goKTsKLSAg
ICAgICAgICAgIGF0dGFjaCgpOwotICAgICAgICB9CisgICAgICAgIC8vIFRoaXMgcmVuZGVyZXIg
YW5kIGl0cyBjaGlsZHJlbiBoYXZlIHF1aXRlIGRpZmZlcmVudCBsYXlvdXRzIGFuZCBzdHlsZXMg
ZGVwZW5kaW5nIG9uCisgICAgICAgIC8vIHdoZXRoZXIgdGhlIHNwZWVjaCBidXR0b24gaXMgdmlz
aWJsZSBvciBub3QuIFNvIHdlIHJlc2V0IHRoZSB3aG9sZSB0aGluZyBhbmQgcmVjcmVhdGUKKyAg
ICAgICAgLy8gdG8gZ2V0IHRoZSByaWdodCBzdHlsZXMgYW5kIGxheW91dC4KKyAgICAgICAgaWYg
KHJlbmRlcmVyKCkpCisgICAgICAgICAgICByZWF0dGFjaCgpOwogICAgICAgICBzZXROZWVkc1N0
eWxlUmVjYWxjKCk7CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb253ZWJraXRzcGVl
Y2hjaGFuZ2VBdHRyKQogICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFt
ZXMoKS53ZWJraXRzcGVlY2hjaGFuZ2VFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5l
cih0aGlzLCBhdHRyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmpl
Y3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3Bw
CmluZGV4IGJiNjQ4MGU2MGRlM2M3ZWFiODIxOGVlMzA0NzhkZjY1NjA3MjJhYmEuLmUwMzY2MDNl
Yjg2ZGI3Zjg1NDFjZDA5NmY1ZDczYmM3Nzc2MGI4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC0zNzgsOSArMzc4LDggQEAgdm9pZCBIVE1MT2JqZWN0
RWxlbWVudDo6cmVuZGVyRmFsbGJhY2tDb250ZW50KCkKICAgICAgICAgbV9zZXJ2aWNlVHlwZSA9
IG1faW1hZ2VMb2FkZXItPmltYWdlKCktPnJlc3BvbnNlKCkubWltZVR5cGUoKTsKICAgICAgICAg
aWYgKCFpc0ltYWdlVHlwZSgpKSB7CiAgICAgICAgICAgICAvLyBJZiB3ZSBkb24ndCB0aGluayB3
ZSBoYXZlIGFuIGltYWdlIHR5cGUgYW55bW9yZSwgdGhlbiBjbGVhciB0aGUgaW1hZ2UgZnJvbSB0
aGUgbG9hZGVyLgotICAgICAgICAgICAgbV9pbWFnZUxvYWRlci0+c2V0SW1hZ2UoMCk7ICAgICAg
ICAKLSAgICAgICAgICAgIGRldGFjaCgpOwotICAgICAgICAgICAgYXR0YWNoKCk7CisgICAgICAg
ICAgICBtX2ltYWdlTG9hZGVyLT5zZXRJbWFnZSgwKTsKKyAgICAgICAgICAgIHJlYXR0YWNoKE5v
ZGU6OlJlYXR0YWNoQWx3YXlzKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCmlu
ZGV4IGYzYTk5ZGQ2MzE0MzkxMTJlODMzODZiM2VkODdhNjE2MDZhNzU0NDYuLjVmZmVlMDIxYzdj
ZDA2YmE4NDI2ZjMzMjhkNDZiOWY2ZjQ1Yzk0YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcApAQCAtMTI0LDEwICsxMjQsOCBAQCBSZW5kZXJP
YmplY3QqIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiBhcmVuYSwgUmVuZGVyUwogdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpyZWNhbGNTdHls
ZShTdHlsZUNoYW5nZSBjaCkKIHsKICAgICAvLyBGSVhNRTogV2h5IGlzIHRoaXMgbmVjZXNzYXJ5
PyAgTWFudWFsIHJlLWF0dGFjaCBpcyBhbG1vc3QgYWx3YXlzIHdyb25nLgotICAgIGlmICghdXNl
RmFsbGJhY2tDb250ZW50KCkgJiYgbmVlZHNXaWRnZXRVcGRhdGUoKSAmJiByZW5kZXJlcigpICYm
ICFpc0ltYWdlVHlwZSgpKSB7Ci0gICAgICAgIGRldGFjaCgpOwotICAgICAgICBhdHRhY2goKTsK
LSAgICB9CisgICAgaWYgKCF1c2VGYWxsYmFja0NvbnRlbnQoKSAmJiBuZWVkc1dpZGdldFVwZGF0
ZSgpICYmIHJlbmRlcmVyKCkgJiYgIWlzSW1hZ2VUeXBlKCkpCisgICAgICAgIHJlYXR0YWNoKCk7
CiAgICAgSFRNTFBsdWdJbkVsZW1lbnQ6OnJlY2FsY1N0eWxlKGNoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCAyMzNhYzk0Y2FlOGM2MjA1MTdh
YTAzOWFlZDJmMjdjM2M0M2MyZDFjLi5jMjAxOGZlMGYwODkxOGNlMDc1NzJlMDFlOWE5Y2ZhODc5
ODI4MjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAt
MjY0LDggKzI2NCw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmli
dXRlKEF0dHJpYnV0ZSogYXR0cikKICAgICAgICAgbV9kYXRhLnNldFNpemUoc2l6ZSk7CiAgICAg
ICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogICAgICAgICBpZiAoKG9sZFVzZXNNZW51TGlz
dCAhPSBtX2RhdGEudXNlc01lbnVMaXN0KCkgfHwgKCFvbGRVc2VzTWVudUxpc3QgJiYgbV9kYXRh
LnNpemUoKSAhPSBvbGRTaXplKSkgJiYgYXR0YWNoZWQoKSkgewotICAgICAgICAgICAgZGV0YWNo
KCk7Ci0gICAgICAgICAgICBhdHRhY2goKTsKKyAgICAgICAgICAgIHJlYXR0YWNoKCk7CiAgICAg
ICAgICAgICBzZXRSZWNhbGNMaXN0SXRlbXMoKTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAo
YXR0ci0+bmFtZSgpID09IG11bHRpcGxlQXR0cikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94373</attachid>
            <date>2011-05-22 23:30:25 -0700</date>
            <delta_ts>2011-05-22 23:46:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61011-20110523153023.patch</filename>
            <type>text/plain</type>
            <size>11954</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY5MjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYjFkY2Q2MWI4ZDdmODFi
MWViNGU2ZjY2ZTVmZDYwYTZmNTc0ZWNmLi5lOGNlOTIwNzk4YjEwNWFhMjI0YjlhY2NmYzZiMDNj
Nzc5OTI5YzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMDUtMjAgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBbUmVmYWN0b3JpbmddIGF0dGFjaCgpIGZv
bGxvd2luZyBkZXRhY2goKSBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCBOb2RlOjpyZWF0dGFjaCgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTAxMQor
CisgICAgICAgIC0gUmVuYW1lZCBmb3JjZVJlYXR0YWNoKCkgdG8gcmVhdHRhY2goKQorICAgICAg
ICAtIEludHJvZHVjZWQgcmVhdHRhY2hJZkF0dGFjaGVkKCkgYXMgYSB2YXJpYW50LgorICAgICAg
ICAKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAg
KiBkb20vQ2hhcmFjdGVyRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaGFyYWN0ZXJEYXRh
Ojp1cGRhdGVSZW5kZXJlcik6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZWF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
OjpyZWF0dGFjaElmQXR0YWNoZWQpOgorICAgICAgICAqIGRvbS9UZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlRleHQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxz
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6OnJlZnJl
c2hNYWluU3VtbWFyeSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6OnBh
cnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnJlbmRlckZhbGxiYWNrQ29udGVudCk6CisgICAgICAg
ICogaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojpw
YXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisKIDIwMTEtMDUtMTkgIEp1bGllbiBDaGFmZnJhaXggIDxq
Y2hhZmZyYWl4QGNvZGVhdXJvcmEub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFy
dGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKaW5kZXggZTE4MTVkOWQ4OGQzNzU2
YjBiNDA3MDM4NWVkYmE4ZTI4MTM3OWExZi4uMDIxMTA4ZGZhYTY3Y2YwODM2ZDE1NDliM2EwYzU1
NjVjODE2OGI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcApAQCAtMTgyLDgg
KzE4Miw3IEBAIHZvaWQgQ2hhcmFjdGVyRGF0YTo6c2V0RGF0YUFuZFVwZGF0ZShQYXNzUmVmUHRy
PFN0cmluZ0ltcGw+IG5ld0RhdGEsIHVuc2lnbmVkIG9mCiB2b2lkIENoYXJhY3RlckRhdGE6OnVw
ZGF0ZVJlbmRlcmVyKHVuc2lnbmVkIG9mZnNldE9mUmVwbGFjZWREYXRhLCB1bnNpZ25lZCBsZW5n
dGhPZlJlcGxhY2VkRGF0YSkKIHsKICAgICBpZiAoKCFyZW5kZXJlcigpIHx8ICFyZW5kZXJlcklz
TmVlZGVkKHJlbmRlcmVyKCktPnN0eWxlKCkpKSAmJiBhdHRhY2hlZCgpKSB7Ci0gICAgICAgIGRl
dGFjaCgpOwotICAgICAgICBhdHRhY2goKTsKKyAgICAgICAgcmVhdHRhY2goKTsKICAgICB9IGVs
c2UgaWYgKHJlbmRlcmVyKCkpCiAgICAgICAgIHRvUmVuZGVyVGV4dChyZW5kZXJlcigpKS0+c2V0
VGV4dFdpdGhPZmZzZXQobV9kYXRhLCBvZmZzZXRPZlJlcGxhY2VkRGF0YSwgbGVuZ3RoT2ZSZXBs
YWNlZERhdGEpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDZjZTFmNzMzNzBmNzdjMDAz
Zjk3YjVjM2IyZWM0YzczZjY2NzkzMTcuLmZhODkzMTVmNDI3OTBkZmU2NDA4OGY2MWU4ODRkOWFh
OGM1NGI3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTEwODYsOSArMTA4Niw4IEBAIHZv
aWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgICAgICBSZWZQ
dHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gZG9jdW1lbnQoKS0+c3R5bGVTZWxlY3RvcigpLT5z
dHlsZUZvckVsZW1lbnQodGhpcyk7CiAgICAgICAgIFN0eWxlQ2hhbmdlIGNoID0gZGlmZihjdXJy
ZW50U3R5bGUuZ2V0KCksIG5ld1N0eWxlLmdldCgpKTsKICAgICAgICAgaWYgKGNoID09IERldGFj
aCB8fCAhY3VycmVudFN0eWxlKSB7Ci0gICAgICAgICAgICBpZiAoYXR0YWNoZWQoKSkKLSAgICAg
ICAgICAgICAgICBkZXRhY2goKTsKLSAgICAgICAgICAgIGF0dGFjaCgpOyAvLyBGSVhNRTogVGhl
IHN0eWxlIGdldHMgY29tcHV0ZWQgdHdpY2UgYnkgY2FsbGluZyBhdHRhY2guIFdlIGNvdWxkIGRv
IGJldHRlciBpZiB3ZSBwYXNzZWQgdGhlIHN0eWxlIGFsb25nLgorICAgICAgICAgICAgLy8gRklY
TUU6IFRoZSBzdHlsZSBnZXRzIGNvbXB1dGVkIHR3aWNlIGJ5IGNhbGxpbmcgYXR0YWNoLiBXZSBj
b3VsZCBkbyBiZXR0ZXIgaWYgd2UgcGFzc2VkIHRoZSBzdHlsZSBhbG9uZy4KKyAgICAgICAgICAg
IHJlYXR0YWNoKCk7CiAgICAgICAgICAgICAvLyBhdHRhY2ggcmVjYWx1bGF0ZXMgdGhlIHN0eWxl
IGZvciBhbGwgY2hpbGRyZW4uIE5vIG5lZWQgdG8gZG8gaXQgdHdpY2UuCiAgICAgICAgICAgICBj
bGVhck5lZWRzU3R5bGVSZWNhbGMoKTsKICAgICAgICAgICAgIGNsZWFyQ2hpbGROZWVkc1N0eWxl
UmVjYWxjKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCAzMWZhOGJmMzdjOTBlMDFjNjQwMDk0NTY1YjY4M2Iy
NGJjMTczNjZiLi41N2U4MWY2MGYxOWMyZDZlOTcxMmE4MzRlYzIxOWNhMDJhZDhhZmUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmgKQEAgLTQ0Niw3ICs0NDYsOCBAQCBwdWJsaWM6CiAgICAgLy8gdGhlIG5vZGUncyBy
ZW5kZXJpbmcgb2JqZWN0IGZyb20gdGhlIHJlbmRlcmluZyB0cmVlIGFuZCBkZWxldGUgaXQuCiAg
ICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwogCi0gICAgdm9pZCBmb3JjZVJlYXR0YWNoKCk7Cisg
ICAgdm9pZCByZWF0dGFjaCgpOworICAgIHZvaWQgcmVhdHRhY2hJZkF0dGFjaGVkKCk7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZSgpOwogICAgIHZvaWQgY3JlYXRlUmVuZGVyZXJJZk5l
ZWRlZCgpOwpAQCAtNzM0LDE0ICs3MzUsMTkgQEAgaW5saW5lIENvbnRhaW5lck5vZGUqIE5vZGU6
OnBhcmVudE5vZGVHdWFyYW50ZWVkSG9zdEZyZWUoKSBjb25zdAogICAgIHJldHVybiBwYXJlbnRP
ckhvc3ROb2RlKCk7CiB9CiAKLWlubGluZSB2b2lkIE5vZGU6OmZvcmNlUmVhdHRhY2goKQoraW5s
aW5lIHZvaWQgTm9kZTo6cmVhdHRhY2goKQogewotICAgIGlmICghYXR0YWNoZWQoKSkKLSAgICAg
ICAgcmV0dXJuOwotICAgIGRldGFjaCgpOworICAgIGlmIChhdHRhY2hlZCgpKQorICAgICAgICBk
ZXRhY2goKTsKICAgICBhdHRhY2goKTsKIH0KIAoraW5saW5lIHZvaWQgTm9kZTo6cmVhdHRhY2hJ
ZkF0dGFjaGVkKCkKK3sKKyAgICBpZiAoYXR0YWNoZWQoKSkKKyAgICAgICAgcmVhdHRhY2goKTsK
K30KKwogfSAvL25hbWVzcGFjZQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Q29udGVudFNlbGVjdG9yLmNwcAppbmRleCA5YmQ0ZGQwM2VmYTliMThkYzg5OGVi
OWUzNzgxYzVjOTRjOGY4YzRjLi5hMmMzMmNmYjlkYWRjOTc0MmU4ZmNjN2VkYzZkYjMyN2RmNzUw
ZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yLmNwcApA
QCAtNjIsNyArNjIsNyBAQCB2b2lkIFNoYWRvd0NvbnRlbnRTZWxlY3Rvcjo6YXR0YWNoQ2hpbGRy
ZW5Gb3IoU2hhZG93Q29udGVudEVsZW1lbnQqIGNvbnRlbnRFbGVtZQogICAgICAgICBpZiAoIWNv
bnRlbnRFbGVtZW50LT5zaG91bGRJbmNsdWRlKGNoaWxkKSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogCi0gICAgICAgIGNoaWxkLT5mb3JjZVJlYXR0YWNoKCk7CisgICAgICAgIGNoaWxkLT5yZWF0
dGFjaCgpOwogICAgICAgICBtX2NoaWxkcmVuW2ldID0gMDsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmNwcAppbmRleCBiZjM4MmI3YmI1OWNhYjFjM2YyYzY5ZDk2NDAzMDU4ZWExNDg3
MDEyLi4wNjA4OGM3NjJjOGU5ZmMwNDM4NTNkOTY5ZTZjNDg1MjY4MjJhOWNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC04NCw3ICs4NCw3IEBAIGJvb2wgU2hhZG93Um9vdDo6Y2hp
bGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogdm9pZCBTaGFkb3dSb290OjpyZWNh
bGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiB7CiAgICAgaWYgKGhhc0NvbnRlbnRFbGVtZW50
KCkpCi0gICAgICAgIGZvcmNlUmVhdHRhY2goKTsKKyAgICAgICAgcmVhdHRhY2goKTsKICAgICBl
bHNlIHsKICAgICAgICAgZm9yIChOb2RlKiBuID0gZmlyc3RDaGlsZCgpOyBuOyBuID0gbi0+bmV4
dFNpYmxpbmcoKSkKICAgICAgICAgICAgIG4tPnJlY2FsY1N0eWxlKGNoYW5nZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4
dC5jcHAKaW5kZXggYjcxMDBmZWM0MGI2NjM1MWE2ODQzM2U3ZDRmOGU5MjdmMTdiNzRlMC4uZDFj
YzQ4OWNhNWM5ZTUyZjJkNWFhZTljNzRkYWQ4ZDhkMWU2OTA5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApA
QCAtMjY1LDExICsyNjUsOCBAQCB2b2lkIFRleHQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNo
YW5nZSkKICAgICAgICAgaWYgKHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChyZW5kZXJl
cigpLT5pc1RleHQoKSkKICAgICAgICAgICAgICAgICB0b1JlbmRlclRleHQocmVuZGVyZXIoKSkt
PnNldFRleHQoZGF0YUltcGwoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAo
YXR0YWNoZWQoKSkKLSAgICAgICAgICAgICAgICBkZXRhY2goKTsKLSAgICAgICAgICAgIGF0dGFj
aCgpOwotICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmVhdHRhY2goKTsK
ICAgICB9CiAgICAgY2xlYXJOZWVkc1N0eWxlUmVjYWxjKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXggYzhlM2I4ODM1MDExYjY5ZDU4Yzg5MmNm
ODhjMTU4MmJmN2EwOTQ1OC4uZmFkOWFmODA0NDE0NTcwYzFlNzZjYTI4YzVlYjViMTYyN2M3MDIy
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtMTQ2
LDE1ICsxNDYsMTAgQEAgdm9pZCBIVE1MRGV0YWlsc0VsZW1lbnQ6OnJlZnJlc2hNYWluU3VtbWFy
eShSZWZyZXNoUmVuZGVyZXIgcmVmcmVzaFJlbmRlcmVyKQogICAgIGlmIChvbGRTdW1tYXJ5ID09
IG1fbWFpblN1bW1hcnkgfHwgIWF0dGFjaGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlm
IChvbGRTdW1tYXJ5ICYmIG9sZFN1bW1hcnktPnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHls
ZSgpKSB7Ci0gICAgICAgIG9sZFN1bW1hcnktPmRldGFjaCgpOwotICAgICAgICBvbGRTdW1tYXJ5
LT5hdHRhY2goKTsKLSAgICB9Ci0gICAgICAgIAotICAgIGlmIChtX21haW5TdW1tYXJ5ICYmIHJl
ZnJlc2hSZW5kZXJlciA9PSBSZWZyZXNoUmVuZGVyZXJBbGxvd2VkKSB7Ci0gICAgICAgIG1fbWFp
blN1bW1hcnktPmRldGFjaCgpOwotICAgICAgICBtX21haW5TdW1tYXJ5LT5hdHRhY2goKTsKLSAg
ICB9CisgICAgaWYgKG9sZFN1bW1hcnkgJiYgb2xkU3VtbWFyeS0+cGFyZW50Tm9kZUZvclJlbmRl
cmluZ0FuZFN0eWxlKCkpCisgICAgICAgIG9sZFN1bW1hcnktPnJlYXR0YWNoKCk7CisgICAgaWYg
KG1fbWFpblN1bW1hcnkgJiYgcmVmcmVzaFJlbmRlcmVyID09IFJlZnJlc2hSZW5kZXJlckFsbG93
ZWQpCisgICAgICAgIG1fbWFpblN1bW1hcnktPnJlYXR0YWNoKCk7CiB9CiAKIHZvaWQgSFRNTERl
dGFpbHNFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKQEAgLTE5NiwxMCArMTkxLDggQEAg
dm9pZCBIVE1MRGV0YWlsc0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSog
YXR0cikKICAgICBpZiAoYXR0ci0+bmFtZSgpID09IG9wZW5BdHRyKSB7CiAgICAgICAgIGJvb2wg
b2xkVmFsdWUgPSBtX2lzT3BlbjsKICAgICAgICAgbV9pc09wZW4gPSAgIWF0dHItPnZhbHVlKCku
aXNOdWxsKCk7Ci0gICAgICAgIGlmIChhdHRhY2hlZCgpICYmIG9sZFZhbHVlICE9IG1faXNPcGVu
KSB7Ci0gICAgICAgICAgICBkZXRhY2goKTsKLSAgICAgICAgICAgIGF0dGFjaCgpOwotICAgICAg
ICB9CisgICAgICAgIGlmIChvbGRWYWx1ZSAhPSBtX2lzT3BlbikKKyAgICAgICAgICAgIHJlYXR0
YWNoSWZBdHRhY2hlZCgpOwogICAgIH0gZWxzZQogICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUoYXR0cik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcAppbmRleCA5OTBmZmQzYmIyNzJkZGYyYjg1MmVkMDhlYTBjMDA2NDdiOWRiNjA1Li42
MjEwMTcyMTc2OTc1NTEzNGYxYmJlMDhhOTU1MTI5MWZhNjJlODQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTY3NywxMCArNjc3LDggQEAgdm9pZCBIVE1M
SW5wdXRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiAgICAg
ICAgIG1fbWF4UmVzdWx0cyA9ICFhdHRyLT5pc051bGwoKSA/IHN0ZDo6bWluKGF0dHItPnZhbHVl
KCkudG9JbnQoKSwgbWF4U2F2ZWRSZXN1bHRzKSA6IC0xOwogICAgICAgICAvLyBGSVhNRTogRGV0
YWNoaW5nIGp1c3QgZm9yIG1heFJlc3VsdHMgY2hhbmdlIGlzIG5vdCBpZGVhbC4gIFdlIHNob3Vs
ZCBmaWd1cmUgb3V0IHRoZSByaWdodAogICAgICAgICAvLyB0aW1lIHRvIHJlbGF5b3V0IGZvciB0
aGlzIGNoYW5nZS4KLSAgICAgICAgaWYgKG1fbWF4UmVzdWx0cyAhPSBvbGRSZXN1bHRzICYmICht
X21heFJlc3VsdHMgPD0gMCB8fCBvbGRSZXN1bHRzIDw9IDApICYmIGF0dGFjaGVkKCkpIHsKLSAg
ICAgICAgICAgIGRldGFjaCgpOwotICAgICAgICAgICAgYXR0YWNoKCk7Ci0gICAgICAgIH0KKyAg
ICAgICAgaWYgKG1fbWF4UmVzdWx0cyAhPSBvbGRSZXN1bHRzICYmIChtX21heFJlc3VsdHMgPD0g
MCB8fCBvbGRSZXN1bHRzIDw9IDApKQorICAgICAgICAgICAgcmVhdHRhY2hJZkF0dGFjaGVkKCk7
CiAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5h
bWUoKSA9PSBhdXRvc2F2ZUF0dHIgfHwgYXR0ci0+bmFtZSgpID09IGluY3JlbWVudGFsQXR0cikK
ICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwpAQCAtNjk2LDEzICs2OTQsMTAgQEAgdm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIp
CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQogICAgIGVsc2UgaWYgKGF0dHItPm5h
bWUoKSA9PSB3ZWJraXRzcGVlY2hBdHRyKSB7Ci0gICAgICAgIGlmIChyZW5kZXJlcigpKSB7Ci0g
ICAgICAgICAgICAvLyBUaGlzIHJlbmRlcmVyIGFuZCBpdHMgY2hpbGRyZW4gaGF2ZSBxdWl0ZSBk
aWZmZXJlbnQgbGF5b3V0cyBhbmQgc3R5bGVzIGRlcGVuZGluZyBvbgotICAgICAgICAgICAgLy8g
d2hldGhlciB0aGUgc3BlZWNoIGJ1dHRvbiBpcyB2aXNpYmxlIG9yIG5vdC4gU28gd2UgcmVzZXQg
dGhlIHdob2xlIHRoaW5nIGFuZCByZWNyZWF0ZQotICAgICAgICAgICAgLy8gdG8gZ2V0IHRoZSBy
aWdodCBzdHlsZXMgYW5kIGxheW91dC4KLSAgICAgICAgICAgIGRldGFjaCgpOwotICAgICAgICAg
ICAgYXR0YWNoKCk7Ci0gICAgICAgIH0KKyAgICAgICAgLy8gVGhpcyByZW5kZXJlciBhbmQgaXRz
IGNoaWxkcmVuIGhhdmUgcXVpdGUgZGlmZmVyZW50IGxheW91dHMgYW5kIHN0eWxlcyBkZXBlbmRp
bmcgb24KKyAgICAgICAgLy8gd2hldGhlciB0aGUgc3BlZWNoIGJ1dHRvbiBpcyB2aXNpYmxlIG9y
IG5vdC4gU28gd2UgcmVzZXQgdGhlIHdob2xlIHRoaW5nIGFuZCByZWNyZWF0ZQorICAgICAgICAv
LyB0byBnZXQgdGhlIHJpZ2h0IHN0eWxlcyBhbmQgbGF5b3V0LgorICAgICAgICByZWF0dGFjaElm
QXR0YWNoZWQoKTsKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwogICAgIH0gZWxzZSBp
ZiAoYXR0ci0+bmFtZSgpID09IG9ud2Via2l0c3BlZWNoY2hhbmdlQXR0cikKICAgICAgICAgc2V0
QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkud2Via2l0c3BlZWNoY2hhbmdlRXZl
bnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIodGhpcywgYXR0cikpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAppbmRleCBiYjY0ODBlNjBkZTNjN2VhYjgy
MThlZTMwNDc4ZGY2NTYwNzIyYWJhLi44NThhY2IzZTFhMTQ5ZTU4YzIyMGNiNmZkMDhkYzUwZTA2
ZDA3ZmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcApAQCAt
Mzc4LDkgKzM3OCw4IEBAIHZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnJlbmRlckZhbGxiYWNrQ29u
dGVudCgpCiAgICAgICAgIG1fc2VydmljZVR5cGUgPSBtX2ltYWdlTG9hZGVyLT5pbWFnZSgpLT5y
ZXNwb25zZSgpLm1pbWVUeXBlKCk7CiAgICAgICAgIGlmICghaXNJbWFnZVR5cGUoKSkgewogICAg
ICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgdGhpbmsgd2UgaGF2ZSBhbiBpbWFnZSB0eXBlIGFueW1v
cmUsIHRoZW4gY2xlYXIgdGhlIGltYWdlIGZyb20gdGhlIGxvYWRlci4KLSAgICAgICAgICAgIG1f
aW1hZ2VMb2FkZXItPnNldEltYWdlKDApOyAgICAgICAgCi0gICAgICAgICAgICBkZXRhY2goKTsK
LSAgICAgICAgICAgIGF0dGFjaCgpOworICAgICAgICAgICAgbV9pbWFnZUxvYWRlci0+c2V0SW1h
Z2UoMCk7CisgICAgICAgICAgICByZWF0dGFjaCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxl
bWVudC5jcHAKaW5kZXggZjNhOTlkZDYzMTQzOTExMmU4MzM4NmIzZWQ4N2E2MTYwNmE3NTQ0Ni4u
NWZmZWUwMjFjN2NkMDZiYTg0MjZmMzMyOGQ0NmI5ZjZmNDVjOTRjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0xMjQsMTAgKzEyNCw4
IEBAIFJlbmRlck9iamVjdCogSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIo
UmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTCiB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6
OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoKQogewogICAgIC8vIEZJWE1FOiBXaHkgaXMgdGhp
cyBuZWNlc3Nhcnk/ICBNYW51YWwgcmUtYXR0YWNoIGlzIGFsbW9zdCBhbHdheXMgd3JvbmcuCi0g
ICAgaWYgKCF1c2VGYWxsYmFja0NvbnRlbnQoKSAmJiBuZWVkc1dpZGdldFVwZGF0ZSgpICYmIHJl
bmRlcmVyKCkgJiYgIWlzSW1hZ2VUeXBlKCkpIHsKLSAgICAgICAgZGV0YWNoKCk7Ci0gICAgICAg
IGF0dGFjaCgpOwotICAgIH0KKyAgICBpZiAoIXVzZUZhbGxiYWNrQ29udGVudCgpICYmIG5lZWRz
V2lkZ2V0VXBkYXRlKCkgJiYgcmVuZGVyZXIoKSAmJiAhaXNJbWFnZVR5cGUoKSkKKyAgICAgICAg
cmVhdHRhY2goKTsKICAgICBIVE1MUGx1Z0luRWxlbWVudDo6cmVjYWxjU3R5bGUoY2gpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDIzM2FjOTRj
YWU4YzYyMDUxN2FhMDM5YWVkMmYyN2MzYzQzYzJkMWMuLmMyMDE4ZmUwZjA4OTE4Y2UwNzU3MmUw
MWU5YTljZmE4Nzk4MjgyMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuY3BwCkBAIC0yNjQsOCArMjY0LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogICAgICAgICBtX2RhdGEuc2V0U2l6ZShz
aXplKTsKICAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiAgICAgICAgIGlmICgob2xk
VXNlc01lbnVMaXN0ICE9IG1fZGF0YS51c2VzTWVudUxpc3QoKSB8fCAoIW9sZFVzZXNNZW51TGlz
dCAmJiBtX2RhdGEuc2l6ZSgpICE9IG9sZFNpemUpKSAmJiBhdHRhY2hlZCgpKSB7Ci0gICAgICAg
ICAgICBkZXRhY2goKTsKLSAgICAgICAgICAgIGF0dGFjaCgpOworICAgICAgICAgICAgcmVhdHRh
Y2goKTsKICAgICAgICAgICAgIHNldFJlY2FsY0xpc3RJdGVtcygpOwogICAgICAgICB9CiAgICAg
fSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbXVsdGlwbGVBdHRyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94375</attachid>
            <date>2011-05-22 23:46:58 -0700</date>
            <delta_ts>2011-05-23 08:56:59 -0700</delta_ts>
            <desc>synced to HEAD</desc>
            <filename>bug-61011-20110523154656.patch</filename>
            <type>text/plain</type>
            <size>10940</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcwNTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMjlmMjA0Y2VlYWIwZmFm
NGU2OWYzOGNlOWIwYjkwYTUyZGIxZTMzLi5mOTEwM2Q3YzMyNzA2NGJhYTMyOTExOGViODA2Mjdm
M2E4ZTUxYzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMDUtMjAgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBbUmVmYWN0b3JpbmddIGF0dGFjaCgpIGZv
bGxvd2luZyBkZXRhY2goKSBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCBOb2RlOjpyZWF0dGFjaCgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTAxMQor
CisgICAgICAgIC0gUmVuYW1lZCBmb3JjZVJlYXR0YWNoKCkgdG8gcmVhdHRhY2goKQorICAgICAg
ICAtIEludHJvZHVjZWQgcmVhdHRhY2hJZkF0dGFjaGVkKCkgYXMgYSB2YXJpYW50LgorICAgICAg
ICAKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAg
KiBkb20vQ2hhcmFjdGVyRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaGFyYWN0ZXJEYXRh
Ojp1cGRhdGVSZW5kZXJlcik6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZWF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
OjpyZWF0dGFjaElmQXR0YWNoZWQpOgorICAgICAgICAqIGRvbS9UZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlRleHQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxz
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6OnJlZnJl
c2hNYWluU3VtbWFyeSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6OnBh
cnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnJlbmRlckZhbGxiYWNrQ29udGVudCk6CisgICAgICAg
ICogaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojpw
YXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisKIDIwMTEtMDUtMjIgIEFuZHJldyBXYXNvbiAgPHJlY3Rh
bG9naWNAcmVjdGFsb2dpYy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQmVuamFtaW4gUG91
bGFpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcAppbmRleCBlMTgxNWQ5ZDg4ZDM3
NTZiMGI0MDcwMzg1ZWRiYThlMjgxMzc5YTFmLi4wMjExMDhkZmFhNjdjZjA4MzZkMTU0OWIzYTBj
NTU2NWM4MTY4YjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCkBAIC0xODIs
OCArMTgyLDcgQEAgdm9pZCBDaGFyYWN0ZXJEYXRhOjpzZXREYXRhQW5kVXBkYXRlKFBhc3NSZWZQ
dHI8U3RyaW5nSW1wbD4gbmV3RGF0YSwgdW5zaWduZWQgb2YKIHZvaWQgQ2hhcmFjdGVyRGF0YTo6
dXBkYXRlUmVuZGVyZXIodW5zaWduZWQgb2Zmc2V0T2ZSZXBsYWNlZERhdGEsIHVuc2lnbmVkIGxl
bmd0aE9mUmVwbGFjZWREYXRhKQogewogICAgIGlmICgoIXJlbmRlcmVyKCkgfHwgIXJlbmRlcmVy
SXNOZWVkZWQocmVuZGVyZXIoKS0+c3R5bGUoKSkpICYmIGF0dGFjaGVkKCkpIHsKLSAgICAgICAg
ZGV0YWNoKCk7Ci0gICAgICAgIGF0dGFjaCgpOworICAgICAgICByZWF0dGFjaCgpOwogICAgIH0g
ZWxzZSBpZiAocmVuZGVyZXIoKSkKICAgICAgICAgdG9SZW5kZXJUZXh0KHJlbmRlcmVyKCkpLT5z
ZXRUZXh0V2l0aE9mZnNldChtX2RhdGEsIG9mZnNldE9mUmVwbGFjZWREYXRhLCBsZW5ndGhPZlJl
cGxhY2VkRGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggYjkyZjlkNWIzMWJlYzYy
ZWViMDIwNTE5MTg1OTkwNTY5YjdiMWQxOS4uYmI0N2M4MmUzM2I0Yjg2YWIzNzE2NDJlMDY1OWY4
YzAwOGQ2ZWMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTA4Niw5ICsxMDg2LDggQEAg
dm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgICAgIFJl
ZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBzdHlsZUZvclJlbmRlcmVyKCk7CiAgICAgICAg
IFN0eWxlQ2hhbmdlIGNoID0gZGlmZihjdXJyZW50U3R5bGUuZ2V0KCksIG5ld1N0eWxlLmdldCgp
KTsKICAgICAgICAgaWYgKGNoID09IERldGFjaCB8fCAhY3VycmVudFN0eWxlKSB7Ci0gICAgICAg
ICAgICBpZiAoYXR0YWNoZWQoKSkKLSAgICAgICAgICAgICAgICBkZXRhY2goKTsKLSAgICAgICAg
ICAgIGF0dGFjaCgpOyAvLyBGSVhNRTogVGhlIHN0eWxlIGdldHMgY29tcHV0ZWQgdHdpY2UgYnkg
Y2FsbGluZyBhdHRhY2guIFdlIGNvdWxkIGRvIGJldHRlciBpZiB3ZSBwYXNzZWQgdGhlIHN0eWxl
IGFsb25nLgorICAgICAgICAgICAgLy8gRklYTUU6IFRoZSBzdHlsZSBnZXRzIGNvbXB1dGVkIHR3
aWNlIGJ5IGNhbGxpbmcgYXR0YWNoLiBXZSBjb3VsZCBkbyBiZXR0ZXIgaWYgd2UgcGFzc2VkIHRo
ZSBzdHlsZSBhbG9uZy4KKyAgICAgICAgICAgIHJlYXR0YWNoKCk7CiAgICAgICAgICAgICAvLyBh
dHRhY2ggcmVjYWx1bGF0ZXMgdGhlIHN0eWxlIGZvciBhbGwgY2hpbGRyZW4uIE5vIG5lZWQgdG8g
ZG8gaXQgdHdpY2UuCiAgICAgICAgICAgICBjbGVhck5lZWRzU3R5bGVSZWNhbGMoKTsKICAgICAg
ICAgICAgIGNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBlNWYz
MWI1YjY3NGQ2MDM4MTBhZDljNzg2ZDUzZjA4OTVmNzA3YjJlLi5mZGYxZjcxOGJlNzMxYmY0ZDMw
YjVlZmFjM2M2NTU1NDgwYTJhZjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTQ1MSw3ICs0NTEsOCBAQCBw
dWJsaWM6CiAgICAgLy8gdGhlIG5vZGUncyByZW5kZXJpbmcgb2JqZWN0IGZyb20gdGhlIHJlbmRl
cmluZyB0cmVlIGFuZCBkZWxldGUgaXQuCiAgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwogCi0g
ICAgdm9pZCBmb3JjZVJlYXR0YWNoKCk7CisgICAgdm9pZCByZWF0dGFjaCgpOworICAgIHZvaWQg
cmVhdHRhY2hJZkF0dGFjaGVkKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZSgpOwog
ICAgIHZvaWQgY3JlYXRlUmVuZGVyZXJJZk5lZWRlZCgpOwpAQCAtNzM5LDE0ICs3NDAsMTkgQEAg
aW5saW5lIENvbnRhaW5lck5vZGUqIE5vZGU6OnBhcmVudE5vZGVHdWFyYW50ZWVkSG9zdEZyZWUo
KSBjb25zdAogICAgIHJldHVybiBwYXJlbnRPckhvc3ROb2RlKCk7CiB9CiAKLWlubGluZSB2b2lk
IE5vZGU6OmZvcmNlUmVhdHRhY2goKQoraW5saW5lIHZvaWQgTm9kZTo6cmVhdHRhY2goKQogewot
ICAgIGlmICghYXR0YWNoZWQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGRldGFjaCgpOworICAg
IGlmIChhdHRhY2hlZCgpKQorICAgICAgICBkZXRhY2goKTsKICAgICBhdHRhY2goKTsKIH0KIAor
aW5saW5lIHZvaWQgTm9kZTo6cmVhdHRhY2hJZkF0dGFjaGVkKCkKK3sKKyAgICBpZiAoYXR0YWNo
ZWQoKSkKKyAgICAgICAgcmVhdHRhY2goKTsKK30KKwogfSAvL25hbWVzcGFjZQogCiAjaWZuZGVm
IE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRTZWxl
Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yLmNwcApp
bmRleCA5YmQ0ZGQwM2VmYTliMThkYzg5OGViOWUzNzgxYzVjOTRjOGY4YzRjLi5hMmMzMmNmYjlk
YWRjOTc0MmU4ZmNjN2VkYzZkYjMyN2RmNzUwZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Q29udGVudFNlbGVjdG9yLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIFNoYWRvd0Nv
bnRlbnRTZWxlY3Rvcjo6YXR0YWNoQ2hpbGRyZW5Gb3IoU2hhZG93Q29udGVudEVsZW1lbnQqIGNv
bnRlbnRFbGVtZQogICAgICAgICBpZiAoIWNvbnRlbnRFbGVtZW50LT5zaG91bGRJbmNsdWRlKGNo
aWxkKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGNoaWxkLT5mb3JjZVJlYXR0
YWNoKCk7CisgICAgICAgIGNoaWxkLT5yZWF0dGFjaCgpOwogICAgICAgICBtX2NoaWxkcmVuW2ld
ID0gMDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBiZjM4MmI3YmI1
OWNhYjFjM2YyYzY5ZDk2NDAzMDU4ZWExNDg3MDEyLi4wNjA4OGM3NjJjOGU5ZmMwNDM4NTNkOTY5
ZTZjNDg1MjY4MjJhOWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC04NCw3ICs4
NCw3IEBAIGJvb2wgU2hhZG93Um9vdDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBj
b25zdAogdm9pZCBTaGFkb3dSb290OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiB7
CiAgICAgaWYgKGhhc0NvbnRlbnRFbGVtZW50KCkpCi0gICAgICAgIGZvcmNlUmVhdHRhY2goKTsK
KyAgICAgICAgcmVhdHRhY2goKTsKICAgICBlbHNlIHsKICAgICAgICAgZm9yIChOb2RlKiBuID0g
Zmlyc3RDaGlsZCgpOyBuOyBuID0gbi0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgICAgIG4tPnJl
Y2FsY1N0eWxlKGNoYW5nZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggYjcxMDBmZWM0MGI2NjM1MWE2
ODQzM2U3ZDRmOGU5MjdmMTdiNzRlMC4uZDFjYzQ4OWNhNWM5ZTUyZjJkNWFhZTljNzRkYWQ4ZDhk
MWU2OTA5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtMjY1LDExICsyNjUsOCBAQCB2b2lkIFRleHQ6
OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICAgICAgaWYgKHJlbmRlcmVyKCkp
IHsKICAgICAgICAgICAgIGlmIChyZW5kZXJlcigpLT5pc1RleHQoKSkKICAgICAgICAgICAgICAg
ICB0b1JlbmRlclRleHQocmVuZGVyZXIoKSktPnNldFRleHQoZGF0YUltcGwoKSk7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoYXR0YWNoZWQoKSkKLSAgICAgICAgICAgICAgICBk
ZXRhY2goKTsKLSAgICAgICAgICAgIGF0dGFjaCgpOwotICAgICAgICB9CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgcmVhdHRhY2goKTsKICAgICB9CiAgICAgY2xlYXJOZWVkc1N0eWxlUmVj
YWxjKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5k
ZXggYzhlM2I4ODM1MDExYjY5ZDU4Yzg5MmNmODhjMTU4MmJmN2EwOTQ1OC4uZmFkOWFmODA0NDE0
NTcwYzFlNzZjYTI4YzVlYjViMTYyN2M3MDIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERldGFpbHNFbGVtZW50LmNwcApAQCAtMTQ2LDE1ICsxNDYsMTAgQEAgdm9pZCBIVE1MRGV0YWls
c0VsZW1lbnQ6OnJlZnJlc2hNYWluU3VtbWFyeShSZWZyZXNoUmVuZGVyZXIgcmVmcmVzaFJlbmRl
cmVyKQogICAgIGlmIChvbGRTdW1tYXJ5ID09IG1fbWFpblN1bW1hcnkgfHwgIWF0dGFjaGVkKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChvbGRTdW1tYXJ5ICYmIG9sZFN1bW1hcnktPnBh
cmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpKSB7Ci0gICAgICAgIG9sZFN1bW1hcnktPmRl
dGFjaCgpOwotICAgICAgICBvbGRTdW1tYXJ5LT5hdHRhY2goKTsKLSAgICB9Ci0gICAgICAgIAot
ICAgIGlmIChtX21haW5TdW1tYXJ5ICYmIHJlZnJlc2hSZW5kZXJlciA9PSBSZWZyZXNoUmVuZGVy
ZXJBbGxvd2VkKSB7Ci0gICAgICAgIG1fbWFpblN1bW1hcnktPmRldGFjaCgpOwotICAgICAgICBt
X21haW5TdW1tYXJ5LT5hdHRhY2goKTsKLSAgICB9CisgICAgaWYgKG9sZFN1bW1hcnkgJiYgb2xk
U3VtbWFyeS0+cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkpCisgICAgICAgIG9sZFN1
bW1hcnktPnJlYXR0YWNoKCk7CisgICAgaWYgKG1fbWFpblN1bW1hcnkgJiYgcmVmcmVzaFJlbmRl
cmVyID09IFJlZnJlc2hSZW5kZXJlckFsbG93ZWQpCisgICAgICAgIG1fbWFpblN1bW1hcnktPnJl
YXR0YWNoKCk7CiB9CiAKIHZvaWQgSFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0
cmVlKCkKQEAgLTE5NiwxMCArMTkxLDggQEAgdm9pZCBIVE1MRGV0YWlsc0VsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKICAgICBpZiAoYXR0ci0+bmFtZSgpID09
IG9wZW5BdHRyKSB7CiAgICAgICAgIGJvb2wgb2xkVmFsdWUgPSBtX2lzT3BlbjsKICAgICAgICAg
bV9pc09wZW4gPSAgIWF0dHItPnZhbHVlKCkuaXNOdWxsKCk7Ci0gICAgICAgIGlmIChhdHRhY2hl
ZCgpICYmIG9sZFZhbHVlICE9IG1faXNPcGVuKSB7Ci0gICAgICAgICAgICBkZXRhY2goKTsKLSAg
ICAgICAgICAgIGF0dGFjaCgpOwotICAgICAgICB9CisgICAgICAgIGlmIChvbGRWYWx1ZSAhPSBt
X2lzT3BlbikKKyAgICAgICAgICAgIHJlYXR0YWNoSWZBdHRhY2hlZCgpOwogICAgIH0gZWxzZQog
ICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBhOGE5Njc1NWViYTM5NDI3
NzM2MDY4NGQ3YmQyZjVlZjE5OGVmZjA1Li4wOWU3YTQzMTdlNWViMTQyNzA3NmFlM2Q3M2ViYTE4
OWI3YzNhODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAg
LTcyMSwxMCArNzIxLDggQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiAgICAgICAgIG1fbWF4UmVzdWx0cyA9ICFhdHRyLT5pc051
bGwoKSA/IHN0ZDo6bWluKGF0dHItPnZhbHVlKCkudG9JbnQoKSwgbWF4U2F2ZWRSZXN1bHRzKSA6
IC0xOwogICAgICAgICAvLyBGSVhNRTogRGV0YWNoaW5nIGp1c3QgZm9yIG1heFJlc3VsdHMgY2hh
bmdlIGlzIG5vdCBpZGVhbC4gIFdlIHNob3VsZCBmaWd1cmUgb3V0IHRoZSByaWdodAogICAgICAg
ICAvLyB0aW1lIHRvIHJlbGF5b3V0IGZvciB0aGlzIGNoYW5nZS4KLSAgICAgICAgaWYgKG1fbWF4
UmVzdWx0cyAhPSBvbGRSZXN1bHRzICYmIChtX21heFJlc3VsdHMgPD0gMCB8fCBvbGRSZXN1bHRz
IDw9IDApICYmIGF0dGFjaGVkKCkpIHsKLSAgICAgICAgICAgIGRldGFjaCgpOwotICAgICAgICAg
ICAgYXR0YWNoKCk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKG1fbWF4UmVzdWx0cyAhPSBvbGRS
ZXN1bHRzICYmIChtX21heFJlc3VsdHMgPD0gMCB8fCBvbGRSZXN1bHRzIDw9IDApKQorICAgICAg
ICAgICAgcmVhdHRhY2hJZkF0dGFjaGVkKCk7CiAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMo
KTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBhdXRvc2F2ZUF0dHIgfHwgYXR0ci0+
bmFtZSgpID09IGluY3JlbWVudGFsQXR0cikKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAppbmRleCBlZjBhMzQ1
YzM2NDdkNjFmYzgyMDg2YjUxYjk5MzgxNjgwOGEyYmIyLi4xOWJiNWFjOGUwYjY3MmZiYmQ2YmZi
ZGIwYzkwZmExM2I5MmRlYzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
YmplY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVt
ZW50LmNwcApAQCAtMzgyLDkgKzM4Miw4IEBAIHZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnJlbmRl
ckZhbGxiYWNrQ29udGVudCgpCiAgICAgICAgIG1fc2VydmljZVR5cGUgPSBtX2ltYWdlTG9hZGVy
LT5pbWFnZSgpLT5yZXNwb25zZSgpLm1pbWVUeXBlKCk7CiAgICAgICAgIGlmICghaXNJbWFnZVR5
cGUoKSkgewogICAgICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgdGhpbmsgd2UgaGF2ZSBhbiBpbWFn
ZSB0eXBlIGFueW1vcmUsIHRoZW4gY2xlYXIgdGhlIGltYWdlIGZyb20gdGhlIGxvYWRlci4KLSAg
ICAgICAgICAgIG1faW1hZ2VMb2FkZXItPnNldEltYWdlKDApOyAgICAgICAgCi0gICAgICAgICAg
ICBkZXRhY2goKTsKLSAgICAgICAgICAgIGF0dGFjaCgpOworICAgICAgICAgICAgbV9pbWFnZUxv
YWRlci0+c2V0SW1hZ2UoMCk7CisgICAgICAgICAgICByZWF0dGFjaCgpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggZjNhOTlkZDYzMTQzOTExMmU4MzM4NmIzZWQ4N2E2
MTYwNmE3NTQ0Ni4uNWZmZWUwMjFjN2NkMDZiYTg0MjZmMzMyOGQ0NmI5ZjZmNDVjOTRjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0x
MjQsMTAgKzEyNCw4IEBAIFJlbmRlck9iamVjdCogSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTCiB2b2lkIEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoKQogewogICAgIC8vIEZJWE1F
OiBXaHkgaXMgdGhpcyBuZWNlc3Nhcnk/ICBNYW51YWwgcmUtYXR0YWNoIGlzIGFsbW9zdCBhbHdh
eXMgd3JvbmcuCi0gICAgaWYgKCF1c2VGYWxsYmFja0NvbnRlbnQoKSAmJiBuZWVkc1dpZGdldFVw
ZGF0ZSgpICYmIHJlbmRlcmVyKCkgJiYgIWlzSW1hZ2VUeXBlKCkpIHsKLSAgICAgICAgZGV0YWNo
KCk7Ci0gICAgICAgIGF0dGFjaCgpOwotICAgIH0KKyAgICBpZiAoIXVzZUZhbGxiYWNrQ29udGVu
dCgpICYmIG5lZWRzV2lkZ2V0VXBkYXRlKCkgJiYgcmVuZGVyZXIoKSAmJiAhaXNJbWFnZVR5cGUo
KSkKKyAgICAgICAgcmVhdHRhY2goKTsKICAgICBIVE1MUGx1Z0luRWxlbWVudDo6cmVjYWxjU3R5
bGUoY2gpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmlu
ZGV4IDIzM2FjOTRjYWU4YzYyMDUxN2FhMDM5YWVkMmYyN2MzYzQzYzJkMWMuLmMyMDE4ZmUwZjA4
OTE4Y2UwNzU3MmUwMWU5YTljZmE4Nzk4MjgyMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuY3BwCkBAIC0yNjQsOCArMjY0LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxl
bWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogICAgICAgICBtX2Rh
dGEuc2V0U2l6ZShzaXplKTsKICAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiAgICAg
ICAgIGlmICgob2xkVXNlc01lbnVMaXN0ICE9IG1fZGF0YS51c2VzTWVudUxpc3QoKSB8fCAoIW9s
ZFVzZXNNZW51TGlzdCAmJiBtX2RhdGEuc2l6ZSgpICE9IG9sZFNpemUpKSAmJiBhdHRhY2hlZCgp
KSB7Ci0gICAgICAgICAgICBkZXRhY2goKTsKLSAgICAgICAgICAgIGF0dGFjaCgpOworICAgICAg
ICAgICAgcmVhdHRhY2goKTsKICAgICAgICAgICAgIHNldFJlY2FsY0xpc3RJdGVtcygpOwogICAg
ICAgICB9CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbXVsdGlwbGVBdHRyKQo=
</data>
<flag name="review"
          id="87670"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>