<?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>94443</bug_id>
          
          <creation_ts>2012-08-19 21:56:08 -0700</creation_ts>
          <short_desc>[V8] Move V8Proxy::newInstance() to V8ObjectConstructor</short_desc>
          <delta_ts>2012-08-20 00:48:21 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>85330</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>699221</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-19 21:56:08 -0700</bug_when>
    <thetext>To kill V8Proxy, we can move V8Proxy::newInstance() to V8ObjectConstructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699226</commentid>
    <comment_count>1</comment_count>
      <attachid>159331</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-19 22:15:31 -0700</bug_when>
    <thetext>Created attachment 159331
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699229</commentid>
    <comment_count>2</comment_count>
      <attachid>159332</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-19 22:23:51 -0700</bug_when>
    <thetext>Created attachment 159332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699242</commentid>
    <comment_count>3</comment_count>
      <attachid>159332</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-19 23:02:26 -0700</bug_when>
    <thetext>Comment on attachment 159332
Patch

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

&gt; Source/WebCore/bindings/v8/V8Binding.cpp:384
&gt; +void assertIfV8IsDead()

assertIfV8IsDead -&gt; crashIfV8IsDead

This happens in release too, so it shouldn&apos;t say &quot;alert&quot;

&gt; Source/WebCore/bindings/v8/V8ObjectConstructor.cpp:71
&gt; +v8::Local&lt;v8::Object&gt; V8ObjectConstructor::newInstanceInFrame(v8::Handle&lt;v8::Function&gt; function, int argc, v8::Handle&lt;v8::Value&gt; argv[], Frame* frame)

Can we pass in a Document rather than a Frame here?  Using a Frame for a context object isn&apos;t correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699248</commentid>
    <comment_count>4</comment_count>
      <attachid>159339</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-19 23:21:56 -0700</bug_when>
    <thetext>Created attachment 159339
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699249</commentid>
    <comment_count>5</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-19 23:22:48 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; assertIfV8IsDead -&gt; crashIfV8IsDead
&gt; 
&gt; &gt; +v8::Local&lt;v8::Object&gt; V8ObjectConstructor::newInstanceInFrame(v8::Handle&lt;v8::Function&gt; function, int argc, v8::Handle&lt;v8::Value&gt; argv[], Frame* frame)
&gt; 
&gt; Can we pass in a Document rather than a Frame here?  Using a Frame for a context object isn&apos;t correct.

Done. Thanks for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699266</commentid>
    <comment_count>6</comment_count>
      <attachid>159345</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-19 23:52:26 -0700</bug_when>
    <thetext>Created attachment 159345
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699285</commentid>
    <comment_count>7</comment_count>
      <attachid>159345</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-20 00:47:43 -0700</bug_when>
    <thetext>Comment on attachment 159345
patch for landing

Clearing flags on attachment: 159345

Committed r126004: &lt;http://trac.webkit.org/changeset/126004&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159331</attachid>
            <date>2012-08-19 22:15:31 -0700</date>
            <delta_ts>2012-08-19 22:23:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94443-20120820141452.patch</filename>
            <type>text/plain</type>
            <size>11092</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1OTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI5ODA3OGU0YWI2YjA0
ZGZjMzUxYTU5ZDk4YzJkN2I5NWRiNWUwMS4uY2NiNjk0YjdlYmE5ZDhiZmY0MTQxNjZkMzU1Njcz
Yzk1NzViNmYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2IEBACiAyMDEyLTA4LTE5ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbVjhdIE1vdmUgVjhQ
cm94eTo6bmV3SW5zdGFuY2UoKSB0byBWOE9iamVjdENvbnN0cnVjdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDQ0MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGtpbGwgVjhQcm94eSwgdGhpcyBw
YXRjaCBtb3ZlcyBWOFByb3h5OjpuZXdJbnN0YW5jZSgpIHRvCisgICAgICAgIFY4T2JqZWN0Q29u
c3RydWN0b3I6Om5ld0luc3RhbmNlSW5GcmFtZSgpLgorICAgICAgICBJbiBhZGRpdGlvbiwgdGhp
cyBwYXRjaCBkb2VzIHRoZSBmb2xsb3dpbmcgdGhpbmdzOgorCisgICAgICAgIC0gRm9yIGNvbnNp
c3RlbmN5IHdpdGggVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2VJbkZyYW1lKCksCisg
ICAgICAgIHRoaXMgcGF0Y2ggaW5zZXJ0cyBhbiBpZih2ODo6Vjg6OklzRGVhZCgpKSBjaGVjayB0
byBqdXN0IGFmdGVyCisgICAgICAgIEZ1bmN0aW9uOjpOZXdJbnN0YW5jZSgpLiBUaGUgY2hlY2sg
aXMgZG9uZSBieSBWOEJpbmRpbmc6OmFzc2VydElmVjhJc0RlYWQoKS4KKworICAgICAgICAtIFRv
IGF2b2lkICNpbmNsdWRlIGNpcmN1bGFyIGRlcGVuZGVuY3ksIHRoaXMgcGF0Y2ggZGUtaW5saW5l
CisgICAgICAgIFY4T2JqZWN0Q29uc3RydWN0b3I6Om5ld0luc3RhbmNlKClzLiBJIGRpZG4ndCBv
YnNlcnZlIGFueSBwZXJmIHJlZ3Jlc3Npb24uCisgICAgICAgIEkgZG9uJ3QgdGhpbmsgdGhlc2Ug
bWV0aG9kcyBhcmUgd29ydGggYmVpbmcgaW5saW5lZCwgYmVjYXVzZQorICAgICAgICB0aGVzZSBt
ZXRob2RzIGNhbGwgRnVuY3Rpb246Ok5ld0luc3RhbmNlKCksIHdoaWNoIGlzIG5vdCBpbmxpbmVk
CisgICAgICAgIGFuZCBjYWxscyBhIGJ1bmNoIG9mIGhlYXZ5IG1laHRvZHMgaW4gVjguCisKKyAg
ICAgICAgTm8gdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIGJpbmRp
bmdzL3Y4L05QVjhPYmplY3QuY3BwOgorICAgICAgICAoX05QTl9Db25zdHJ1Y3QpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjphc3NlcnRJ
ZlY4SXNEZWFkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4
QmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhP
YmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdENvbnN0cnVj
dG9yOjpuZXdJbnN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0Q29uc3RydWN0b3I6Om5ld0luc3RhbmNlSW5GcmFtZSk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvVjhPYmplY3RDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChWOE9iamVjdENvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OnJ1blNjcmlwdCk6CisgICAgICAgIChX
ZWJDb3JlOjpWOFByb3h5OjppbnN0cnVtZW50ZWRDYWxsRnVuY3Rpb24pOgorCisyMDEyLTA4LTE5
ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBbVjhdIFJl
bmFtZSBTYWZlQWxsb2NhdGlvbiB0byBWOE9iamVjdENvbnN0cnVjdG9yCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDQzNgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwCmluZGV4IGMwMDA4MmQ2Y2Y0YTE0MzA3ZWI4MmY0
MGE0NDMzMzQ3MzcyYzZiYWMuLmEwOGEzMmJhOWZjYTQ5Y2VjZTc1ZWVlOGE2ZmYyZTRiMzI0NjA3
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwCkBAIC01OTEs
MTEgKzU5MSwxMCBAQCBib29sIF9OUE5fQ29uc3RydWN0KE5QUCBucHAsIE5QT2JqZWN0KiBucE9i
amVjdCwgY29uc3QgTlBWYXJpYW50KiBhcmd1bWVudHMsIHVpbgogICAgICAgICB2ODo6TG9jYWw8
djg6OlZhbHVlPiByZXN1bHRPYmplY3Q7CiAgICAgICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9u
PiBjdG9yKHY4OjpGdW5jdGlvbjo6Q2FzdCgqY3Rvck9iaikpOwogICAgICAgICBpZiAoIWN0b3It
PklzTnVsbCgpKSB7Ci0gICAgICAgICAgICBWOFByb3h5KiBwcm94eSA9IHRvVjhQcm94eShucE9i
amVjdCk7Ci0gICAgICAgICAgICBBU1NFUlQocHJveHkpOwotCisgICAgICAgICAgICBGcmFtZSog
ZnJhbWUgPSBvYmplY3QtPnJvb3RPYmplY3QtPmZyYW1lKCk7CisgICAgICAgICAgICBBU1NFUlQo
ZnJhbWUpOwogICAgICAgICAgICAgT3duQXJyYXlQdHI8djg6OkhhbmRsZTx2ODo6VmFsdWU+ID4g
YXJndiA9IGNyZWF0ZVZhbHVlTGlzdEZyb21WYXJpYW50QXJncyhhcmd1bWVudHMsIGFyZ3VtZW50
Q291bnQsIG5wT2JqZWN0KTsKLSAgICAgICAgICAgIHJlc3VsdE9iamVjdCA9IHByb3h5LT5uZXdJ
bnN0YW5jZShjdG9yLCBhcmd1bWVudENvdW50LCBhcmd2LmdldCgpKTsKKyAgICAgICAgICAgIHJl
c3VsdE9iamVjdCA9IFY4T2JqZWN0Q29uc3RydWN0b3I6Om5ld0luc3RhbmNlSW5GcmFtZShjdG9y
LCBhcmd1bWVudENvdW50LCBhcmd2LmdldCgpLCBmcmFtZSk7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAocmVzdWx0T2JqZWN0LklzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEJpbmRpbmcuY3BwCmluZGV4IGY5YTM4ODZhZTcwNGUzYTg5ZDE2YmM4YmYyMjVlNjY1MDZjMzA0
NjAuLjgwYjNjZmIyMzFiYmJiMzdmM2I4NTQ1ZjM5ZTQwM2ZkN2JlYzI0OWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcApAQCAtMzgxLDQgKzM4MSwxMyBAQCBQYXNz
UmVmUHRyPERPTVN0cmluZ0xpc3Q+IHRvRE9NU3RyaW5nTGlzdCh2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gdmFsdWUpCiAgICAgcmV0dXJuIHJldC5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgYXNzZXJ0SWZW
OElzRGVhZCgpCit7CisgICAgaWYgKHY4OjpWODo6SXNEZWFkKCkpIHsKKyAgICAgICAgLy8gRklY
TUU6IFdlIHRlbXBvcmFyaWx5IGRlYWwgd2l0aCBWOCBpbnRlcm5hbCBlcnJvciBzaXR1YXRpb25z
CisgICAgICAgIC8vIHN1Y2ggYXMgb3V0LW9mLW1lbW9yeSBieSBjcmFzaGluZyB0aGUgcmVuZGVy
ZXIuCisgICAgICAgIENSQVNIKCk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCmluZGV4IGNjMjdmMzljYzQzODJk
YjIyZDE0MmU0MzYzMDJmNDgyNmVlMWViMTIuLmI3N2MyMzhkZWM4YjU4NDJlZWFjNzdiNDM0NjFj
MDdmZGIxMjVlZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Qmlu
ZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC0z
NjgsNiArMzY4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgUGFzc1JlZlB0cjxET01T
dHJpbmdMaXN0PiB0b0RPTVN0cmluZ0xpc3Qodjg6OkhhbmRsZTx2ODo6VmFsdWU+KTsKIAorICAg
IHZvaWQgYXNzZXJ0SWZWOElzRGVhZCgpOworCiAgICAgY2xhc3MgVjhQYXJhbWV0ZXJCYXNlIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIG9wZXJhdG9yIFN0cmluZygpIHsgcmV0dXJuIHRvU3RyaW5n
PFN0cmluZz4oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhP
YmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE9iamVj
dENvbnN0cnVjdG9yLmNwcAppbmRleCA5MTU4OWE3YTgzYTY3ZGQyNzQxOGU0NWM3NDgyNTc0Yzdj
YTMwNzMyLi40MTlhYzAwMTVjMGMxY2UyMzE0ZjU5MmFhMWY2OGFkYzJkOGNlZTk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE9iamVjdENvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE9iamVjdENvbnN0cnVjdG9yLmNwcApA
QCAtMjUsMTAgKzI1LDYzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVjhPYmpl
Y3RDb25zdHJ1Y3Rvci5oIgogCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJWOEJpbmRp
bmcuaCIKKyNpbmNsdWRlICJWOFJlY3Vyc2lvblNjb3BlLmgiCisKKyNpZiBQTEFURk9STShDSFJP
TUlVTSkKKyNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCit2ODo6TG9jYWw8djg6Ok9iamVjdD4gVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5z
dGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGZ1bmN0aW9uKQoreworICAgIGlmIChmdW5j
dGlvbi5Jc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4oKTsK
KyAgICBDb25zdHJ1Y3Rvck1vZGUgY29uc3RydWN0b3JNb2RlOworICAgIFY4UmVjdXJzaW9uU2Nv
cGU6Ok1pY3JvdGFza1N1cHByZXNzaW9uIHNjb3BlOworICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0
PiByZXN1bHQgPSBmdW5jdGlvbi0+TmV3SW5zdGFuY2UoKTsKKyAgICBhc3NlcnRJZlY4SXNEZWFk
KCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordjg6OkxvY2FsPHY4OjpPYmplY3Q+IFY4T2Jq
ZWN0Q29uc3RydWN0b3I6Om5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRl
PiBvYmplY3RUZW1wbGF0ZSkKK3sKKyAgICBpZiAob2JqZWN0VGVtcGxhdGUuSXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpPYmplY3Q+KCk7CisgICAgQ29uc3RydWN0b3JN
b2RlIGNvbnN0cnVjdG9yTW9kZTsKKyAgICBWOFJlY3Vyc2lvblNjb3BlOjpNaWNyb3Rhc2tTdXBw
cmVzc2lvbiBzY29wZTsKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gcmVzdWx0ID0gb2JqZWN0
VGVtcGxhdGUtPk5ld0luc3RhbmNlKCk7CisgICAgYXNzZXJ0SWZWOElzRGVhZCgpOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKK3Y4OjpMb2NhbDx2ODo6T2JqZWN0PiBWOE9iamVjdENvbnN0cnVj
dG9yOjpuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4gZnVuY3Rpb24sIGludCBh
cmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdKQoreworICAgIGlmIChmdW5jdGlvbi5J
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4oKTsKKyAgICBD
b25zdHJ1Y3Rvck1vZGUgY29uc3RydWN0b3JNb2RlOworICAgIFY4UmVjdXJzaW9uU2NvcGU6Ok1p
Y3JvdGFza1N1cHByZXNzaW9uIHNjb3BlOworICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiByZXN1
bHQgPSBmdW5jdGlvbi0+TmV3SW5zdGFuY2UoYXJnYywgYXJndik7CisgICAgYXNzZXJ0SWZWOElz
RGVhZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3Y4OjpMb2NhbDx2ODo6VmFsdWU+IFY4
T2JqZWN0Q29uc3RydWN0b3I6Om5ld0luc3RhbmNlSW5GcmFtZSh2ODo6SGFuZGxlPHY4OjpGdW5j
dGlvbj4gZnVuY3Rpb24sIGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdLCBG
cmFtZSogZnJhbWUpCit7CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgVFJBQ0VfRVZFTlQw
KCJ2OCIsICJ2OC5uZXdJbnN0YW5jZSIpOworI2VuZGlmCisKKyAgICAvLyBObyBhcnRpZmljaWFs
IGxpbWl0YXRpb25zIG9uIHRoZSBkZXB0aCBvZiByZWN1cnNpb24sIHNlZSBjb21tZW50IGluCisg
ICAgLy8gVjhQcm94eTo6Y2FsbEZ1bmN0aW9uLgorICAgIFY4UmVjdXJzaW9uU2NvcGUgcmVjdXJz
aW9uU2NvcGUoZnJhbWUgPyBmcmFtZS0+ZG9jdW1lbnQoKSA6IDApOworICAgIHY4OjpMb2NhbDx2
ODo6T2JqZWN0PiByZXN1bHQgPSBmdW5jdGlvbi0+TmV3SW5zdGFuY2UoYXJnYywgYXJndik7Cisg
ICAgYXNzZXJ0SWZWOElzRGVhZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOE9iamVjdENvbnN0cnVjdG9yOjppc1ZhbGlkQ29uc3RydWN0b3JNb2Rl
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgaWYgKENvbnN0cnVjdG9yTW9kZTo6
Y3VycmVudCgpID09IENvbnN0cnVjdG9yTW9kZTo6Q3JlYXRlTmV3T2JqZWN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhPYmplY3RDb25zdHJ1Y3Rvci5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhPYmplY3RDb25zdHJ1Y3Rvci5oCmluZGV4IDJmMWNj
MjJhYWFiYTJhODdkMGI5Yzc0OTRmMWZjZjg2NTYwZDQxNGMuLmI3OTczMTFjMjYzYjRkZDJmOTlj
ODkwYzc0NDk3Yjk5NzQ1YmQwMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4T2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOE9iamVjdENvbnN0cnVjdG9yLmgKQEAgLTMyLDEyICszMiwxMyBAQAogI2RlZmluZSBWOE9i
amVjdENvbnN0cnVjdG9yX2gKIAogI2luY2x1ZGUgIlY4UGVySXNvbGF0ZURhdGEuaCIKLSNpbmNs
dWRlICJWOFJlY3Vyc2lvblNjb3BlLmgiCiAKICNpbmNsdWRlIDx2OC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIEZyYW1lOworCiBjbGFzcyBDb25zdHJ1Y3Rvck1vZGUgewogcHVi
bGljOgogICAgIGVudW0gTW9kZSB7CkBAIC02Niw0MCArNjcsMTQgQEAgcHJpdmF0ZToKIAogY2xh
c3MgVjhPYmplY3RDb25zdHJ1Y3RvciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGlubGluZSB2ODo6
TG9jYWw8djg6Ok9iamVjdD4gbmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+KTsK
LSAgICBzdGF0aWMgaW5saW5lIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBuZXdJbnN0YW5jZSh2ODo6
SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4pOwotICAgIHN0YXRpYyBpbmxpbmUgdjg6OkxvY2Fs
PHY4OjpPYmplY3Q+IG5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiwgaW50IGFy
Z2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10pOworICAgIHN0YXRpYyB2ODo6TG9jYWw8
djg6Ok9iamVjdD4gbmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+KTsKKyAgICBz
dGF0aWMgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IG5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6Ok9i
amVjdFRlbXBsYXRlPik7CisgICAgc3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBuZXdJbnN0
YW5jZSh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4sIGludCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IGFyZ3ZbXSk7CisgICAgc3RhdGljIHY4OjpMb2NhbDx2ODo6VmFsdWU+IG5ld0luc3RhbmNlSW5G
cmFtZSh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4sIGludCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IGFyZ3ZbXSwgRnJhbWUqKTsKIAogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gaXNW
YWxpZENvbnN0cnVjdG9yTW9kZShjb25zdCB2ODo6QXJndW1lbnRzJik7CiB9OwogCi12ODo6TG9j
YWw8djg6Ok9iamVjdD4gVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2Uodjg6OkhhbmRs
ZTx2ODo6RnVuY3Rpb24+IGZ1bmN0aW9uKQotewotICAgIGlmIChmdW5jdGlvbi5Jc0VtcHR5KCkp
Ci0gICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4oKTsKLSAgICBDb25zdHJ1Y3Rv
ck1vZGUgY29uc3RydWN0b3JNb2RlOwotICAgIFY4UmVjdXJzaW9uU2NvcGU6Ok1pY3JvdGFza1N1
cHByZXNzaW9uIHNjb3BlOwotICAgIHJldHVybiBmdW5jdGlvbi0+TmV3SW5zdGFuY2UoKTsKLX0K
LQotdjg6OkxvY2FsPHY4OjpPYmplY3Q+IFY4T2JqZWN0Q29uc3RydWN0b3I6Om5ld0luc3RhbmNl
KHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRlPiBvYmplY3RUZW1wbGF0ZSkKLXsKLSAgICBp
ZiAob2JqZWN0VGVtcGxhdGUuSXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4
OjpPYmplY3Q+KCk7Ci0gICAgQ29uc3RydWN0b3JNb2RlIGNvbnN0cnVjdG9yTW9kZTsKLSAgICBW
OFJlY3Vyc2lvblNjb3BlOjpNaWNyb3Rhc2tTdXBwcmVzc2lvbiBzY29wZTsKLSAgICByZXR1cm4g
b2JqZWN0VGVtcGxhdGUtPk5ld0luc3RhbmNlKCk7Ci19Ci0KLXY4OjpMb2NhbDx2ODo6T2JqZWN0
PiBWOE9iamVjdENvbnN0cnVjdG9yOjpuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpGdW5jdGlv
bj4gZnVuY3Rpb24sIGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdKQotewot
ICAgIGlmIChmdW5jdGlvbi5Jc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6
Ok9iamVjdD4oKTsKLSAgICBDb25zdHJ1Y3Rvck1vZGUgY29uc3RydWN0b3JNb2RlOwotICAgIFY4
UmVjdXJzaW9uU2NvcGU6Ok1pY3JvdGFza1N1cHByZXNzaW9uIHNjb3BlOwotICAgIHJldHVybiBm
dW5jdGlvbi0+TmV3SW5zdGFuY2UoYXJnYywgYXJndik7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIFY4T2JqZWN0Q29uc3RydWN0b3JfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFByb3h5LmNwcAppbmRleCBhYjI3M2FlZDBmNTc4NTFiMWEyMzFlOTg2ZDNmYzIw
NTUyMDBkODM4Li44MTY3MTIyM2FiYjZmMzA1MjFjYWFmMTdkNjlmODlmOTFiOTU4YWZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcApAQCAtMTA1LDEzICsxMDUsNiBAQCB2
b2lkIFY4UHJveHk6OnJlcG9ydFVuc2FmZUFjY2Vzc1RvKERvY3VtZW50KiB0YXJnZXREb2N1bWVu
dCkKICAgICBzb3VyY2VEb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNl
LCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIHN0ciwgc3RhY2tUcmFjZS5yZWxl
YXNlKCkpOwogfQogCi1zdGF0aWMgdm9pZCBoYW5kbGVGYXRhbEVycm9ySW5WOCgpCi17Ci0gICAg
Ly8gRklYTUU6IFdlIHRlbXBvcmFyaWx5IGRlYWwgd2l0aCBWOCBpbnRlcm5hbCBlcnJvciBzaXR1
YXRpb25zCi0gICAgLy8gc3VjaCBhcyBvdXQtb2YtbWVtb3J5IGJ5IGNyYXNoaW5nIHRoZSByZW5k
ZXJlci4KLSAgICBDUkFTSCgpOwotfQotCiBzdGF0aWMgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gaGFu
ZGxlTWF4UmVjdXJzaW9uRGVwdGhFeGNlZWRlZCgpCiB7CiAgICAgdGhyb3dFcnJvcihSYW5nZUVy
cm9yLCAiTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQuIik7CkBAIC0yNjIsOSArMjU1
LDcgQEAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gVjhQcm94eTo6cnVuU2NyaXB0KHY4OjpIYW5kbGU8
djg6OlNjcmlwdD4gc2NyaXB0KQogICAgIGlmIChyZXN1bHQuSXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gdjg6OkxvY2FsPHY4OjpWYWx1ZT4oKTsKIAotICAgIGlmICh2ODo6Vjg6OklzRGVhZCgp
KQotICAgICAgICBoYW5kbGVGYXRhbEVycm9ySW5WOCgpOwotCisgICAgYXNzZXJ0SWZWOElzRGVh
ZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTMyNywzMCArMzE4LDcgQEAgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gVjhQcm94eTo6aW5zdHJ1bWVudGVkQ2FsbEZ1bmN0aW9uKEZyYW1lKiBm
cmFtZSwgdjg6OkhhbmRsZTwKICAgICB9CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZENhbGxGdW5jdGlvbihjb29raWUpOwotCi0gICAgaWYgKHY4OjpWODo6SXNEZWFkKCkpCi0g
ICAgICAgIGhhbmRsZUZhdGFsRXJyb3JJblY4KCk7Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQot
Ci12ODo6TG9jYWw8djg6OlZhbHVlPiBWOFByb3h5OjpuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4
OjpGdW5jdGlvbj4gY29uc3RydWN0b3IsIGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
YXJnc1tdKQotewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNFX0VWRU5UMCgidjgi
LCAidjgubmV3SW5zdGFuY2UiKTsKLSNlbmRpZgotCi0gICAgLy8gTm8gYXJ0aWZpY2lhbCBsaW1p
dGF0aW9ucyBvbiB0aGUgZGVwdGggb2YgcmVjdXJzaW9uLCBzZWUgY29tbWVudCBpbgotICAgIC8v
IFY4UHJveHk6OmNhbGxGdW5jdGlvbi4KLSAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiByZXN1bHQ7
Ci0gICAgewotICAgICAgICBWOFJlY3Vyc2lvblNjb3BlIHJlY3Vyc2lvblNjb3BlKGZyYW1lKCkg
PyBmcmFtZSgpLT5kb2N1bWVudCgpIDogMCk7Ci0gICAgICAgIHJlc3VsdCA9IGNvbnN0cnVjdG9y
LT5OZXdJbnN0YW5jZShhcmdjLCBhcmdzKTsKLSAgICB9Ci0KLSAgICBpZiAodjg6OlY4OjpJc0Rl
YWQoKSkKLSAgICAgICAgaGFuZGxlRmF0YWxFcnJvckluVjgoKTsKLQorICAgIGFzc2VydElmVjhJ
c0RlYWQoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159332</attachid>
            <date>2012-08-19 22:23:51 -0700</date>
            <delta_ts>2012-08-20 00:48:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94443-20120820142312.patch</filename>
            <type>text/plain</type>
            <size>11094</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1OTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI5ODA3OGU0YWI2YjA0
ZGZjMzUxYTU5ZDk4YzJkN2I5NWRiNWUwMS4uY2NiNjk0YjdlYmE5ZDhiZmY0MTQxNjZkMzU1Njcz
Yzk1NzViNmYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2IEBACiAyMDEyLTA4LTE5ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbVjhdIE1vdmUgVjhQ
cm94eTo6bmV3SW5zdGFuY2UoKSB0byBWOE9iamVjdENvbnN0cnVjdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDQ0MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGtpbGwgVjhQcm94eSwgdGhpcyBw
YXRjaCBtb3ZlcyBWOFByb3h5OjpuZXdJbnN0YW5jZSgpIHRvCisgICAgICAgIFY4T2JqZWN0Q29u
c3RydWN0b3I6Om5ld0luc3RhbmNlSW5GcmFtZSgpLgorICAgICAgICBJbiBhZGRpdGlvbiwgdGhp
cyBwYXRjaCBkb2VzIHRoZSBmb2xsb3dpbmcgdGhpbmdzOgorCisgICAgICAgIC0gRm9yIGNvbnNp
c3RlbmN5IHdpdGggVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2VJbkZyYW1lKCksCisg
ICAgICAgIHRoaXMgcGF0Y2ggaW5zZXJ0cyBhbiBpZih2ODo6Vjg6OklzRGVhZCgpKSBjaGVjayB0
byBqdXN0IGFmdGVyCisgICAgICAgIEZ1bmN0aW9uOjpOZXdJbnN0YW5jZSgpLiBUaGUgY2hlY2sg
aXMgZG9uZSBieSBWOEJpbmRpbmc6OmFzc2VydElmVjhJc0RlYWQoKS4KKworICAgICAgICAtIFRv
IGF2b2lkICNpbmNsdWRlIGNpcmN1bGFyIGRlcGVuZGVuY3ksIHRoaXMgcGF0Y2ggZGUtaW5saW5l
CisgICAgICAgIFY4T2JqZWN0Q29uc3RydWN0b3I6Om5ld0luc3RhbmNlKClzLiBJIGRpZG4ndCBv
YnNlcnZlIGFueSBwZXJmIHJlZ3Jlc3Npb24uCisgICAgICAgIEkgZG9uJ3QgdGhpbmsgdGhlc2Ug
bWV0aG9kcyBhcmUgd29ydGggYmVpbmcgaW5saW5lZCwgYmVjYXVzZQorICAgICAgICB0aGVzZSBt
ZXRob2RzIGNhbGwgRnVuY3Rpb246Ok5ld0luc3RhbmNlKCksIHdoaWNoIGlzIG5vdCBpbmxpbmVk
CisgICAgICAgIGFuZCBjYWxscyBhIGJ1bmNoIG9mIGhlYXZ5IG1laHRvZHMgaW4gVjguCisKKyAg
ICAgICAgTm8gdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIGJpbmRp
bmdzL3Y4L05QVjhPYmplY3QuY3BwOgorICAgICAgICAoX05QTl9Db25zdHJ1Y3QpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjphc3NlcnRJ
ZlY4SXNEZWFkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4
QmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhP
YmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdENvbnN0cnVj
dG9yOjpuZXdJbnN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0Q29uc3RydWN0b3I6Om5ld0luc3RhbmNlSW5GcmFtZSk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvVjhPYmplY3RDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChWOE9iamVjdENvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OnJ1blNjcmlwdCk6CisgICAgICAgIChX
ZWJDb3JlOjpWOFByb3h5OjppbnN0cnVtZW50ZWRDYWxsRnVuY3Rpb24pOgorCisyMDEyLTA4LTE5
ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBbVjhdIFJl
bmFtZSBTYWZlQWxsb2NhdGlvbiB0byBWOE9iamVjdENvbnN0cnVjdG9yCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDQzNgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwCmluZGV4IGMwMDA4MmQ2Y2Y0YTE0MzA3ZWI4MmY0
MGE0NDMzMzQ3MzcyYzZiYWMuLmEwOGEzMmJhOWZjYTQ5Y2VjZTc1ZWVlOGE2ZmYyZTRiMzI0NjA3
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwCkBAIC01OTEs
MTEgKzU5MSwxMCBAQCBib29sIF9OUE5fQ29uc3RydWN0KE5QUCBucHAsIE5QT2JqZWN0KiBucE9i
amVjdCwgY29uc3QgTlBWYXJpYW50KiBhcmd1bWVudHMsIHVpbgogICAgICAgICB2ODo6TG9jYWw8
djg6OlZhbHVlPiByZXN1bHRPYmplY3Q7CiAgICAgICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9u
PiBjdG9yKHY4OjpGdW5jdGlvbjo6Q2FzdCgqY3Rvck9iaikpOwogICAgICAgICBpZiAoIWN0b3It
PklzTnVsbCgpKSB7Ci0gICAgICAgICAgICBWOFByb3h5KiBwcm94eSA9IHRvVjhQcm94eShucE9i
amVjdCk7Ci0gICAgICAgICAgICBBU1NFUlQocHJveHkpOwotCisgICAgICAgICAgICBGcmFtZSog
ZnJhbWUgPSBvYmplY3QtPnJvb3RPYmplY3QtPmZyYW1lKCk7CisgICAgICAgICAgICBBU1NFUlQo
ZnJhbWUpOwogICAgICAgICAgICAgT3duQXJyYXlQdHI8djg6OkhhbmRsZTx2ODo6VmFsdWU+ID4g
YXJndiA9IGNyZWF0ZVZhbHVlTGlzdEZyb21WYXJpYW50QXJncyhhcmd1bWVudHMsIGFyZ3VtZW50
Q291bnQsIG5wT2JqZWN0KTsKLSAgICAgICAgICAgIHJlc3VsdE9iamVjdCA9IHByb3h5LT5uZXdJ
bnN0YW5jZShjdG9yLCBhcmd1bWVudENvdW50LCBhcmd2LmdldCgpKTsKKyAgICAgICAgICAgIHJl
c3VsdE9iamVjdCA9IFY4T2JqZWN0Q29uc3RydWN0b3I6Om5ld0luc3RhbmNlSW5GcmFtZShjdG9y
LCBhcmd1bWVudENvdW50LCBhcmd2LmdldCgpLCBmcmFtZSk7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAocmVzdWx0T2JqZWN0LklzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEJpbmRpbmcuY3BwCmluZGV4IGY5YTM4ODZhZTcwNGUzYTg5ZDE2YmM4YmYyMjVlNjY1MDZjMzA0
NjAuLjgwYjNjZmIyMzFiYmJiMzdmM2I4NTQ1ZjM5ZTQwM2ZkN2JlYzI0OWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcApAQCAtMzgxLDQgKzM4MSwxMyBAQCBQYXNz
UmVmUHRyPERPTVN0cmluZ0xpc3Q+IHRvRE9NU3RyaW5nTGlzdCh2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gdmFsdWUpCiAgICAgcmV0dXJuIHJldC5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgYXNzZXJ0SWZW
OElzRGVhZCgpCit7CisgICAgaWYgKHY4OjpWODo6SXNEZWFkKCkpIHsKKyAgICAgICAgLy8gRklY
TUU6IFdlIHRlbXBvcmFyaWx5IGRlYWwgd2l0aCBWOCBpbnRlcm5hbCBlcnJvciBzaXR1YXRpb25z
CisgICAgICAgIC8vIHN1Y2ggYXMgb3V0LW9mLW1lbW9yeSBieSBjcmFzaGluZyB0aGUgcmVuZGVy
ZXIuCisgICAgICAgIENSQVNIKCk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCmluZGV4IGNjMjdmMzljYzQzODJk
YjIyZDE0MmU0MzYzMDJmNDgyNmVlMWViMTIuLmI3N2MyMzhkZWM4YjU4NDJlZWFjNzdiNDM0NjFj
MDdmZGIxMjVlZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Qmlu
ZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC0z
NjgsNiArMzY4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgUGFzc1JlZlB0cjxET01T
dHJpbmdMaXN0PiB0b0RPTVN0cmluZ0xpc3Qodjg6OkhhbmRsZTx2ODo6VmFsdWU+KTsKIAorICAg
IHZvaWQgYXNzZXJ0SWZWOElzRGVhZCgpOworCiAgICAgY2xhc3MgVjhQYXJhbWV0ZXJCYXNlIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIG9wZXJhdG9yIFN0cmluZygpIHsgcmV0dXJuIHRvU3RyaW5n
PFN0cmluZz4oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhP
YmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE9iamVj
dENvbnN0cnVjdG9yLmNwcAppbmRleCA5MTU4OWE3YTgzYTY3ZGQyNzQxOGU0NWM3NDgyNTc0Yzdj
YTMwNzMyLi42Nzg0ZDA5NzIyZTRiYzM4MjQ0Mjg4ZmI0NTgyOWFkNjNhZTkxZjljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE9iamVjdENvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE9iamVjdENvbnN0cnVjdG9yLmNwcApA
QCAtMjUsMTAgKzI1LDYzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVjhPYmpl
Y3RDb25zdHJ1Y3Rvci5oIgogCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJWOEJpbmRp
bmcuaCIKKyNpbmNsdWRlICJWOFJlY3Vyc2lvblNjb3BlLmgiCisKKyNpZiBQTEFURk9STShDSFJP
TUlVTSkKKyNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCit2ODo6TG9jYWw8djg6Ok9iamVjdD4gVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5z
dGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGZ1bmN0aW9uKQoreworICAgIGlmIChmdW5j
dGlvbi5Jc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4oKTsK
KyAgICBDb25zdHJ1Y3Rvck1vZGUgY29uc3RydWN0b3JNb2RlOworICAgIFY4UmVjdXJzaW9uU2Nv
cGU6Ok1pY3JvdGFza1N1cHByZXNzaW9uIHNjb3BlOworICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0
PiByZXN1bHQgPSBmdW5jdGlvbi0+TmV3SW5zdGFuY2UoKTsKKyAgICBhc3NlcnRJZlY4SXNEZWFk
KCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordjg6OkxvY2FsPHY4OjpPYmplY3Q+IFY4T2Jq
ZWN0Q29uc3RydWN0b3I6Om5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRl
PiBvYmplY3RUZW1wbGF0ZSkKK3sKKyAgICBpZiAob2JqZWN0VGVtcGxhdGUuSXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpPYmplY3Q+KCk7CisgICAgQ29uc3RydWN0b3JN
b2RlIGNvbnN0cnVjdG9yTW9kZTsKKyAgICBWOFJlY3Vyc2lvblNjb3BlOjpNaWNyb3Rhc2tTdXBw
cmVzc2lvbiBzY29wZTsKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gcmVzdWx0ID0gb2JqZWN0
VGVtcGxhdGUtPk5ld0luc3RhbmNlKCk7CisgICAgYXNzZXJ0SWZWOElzRGVhZCgpOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKK3Y4OjpMb2NhbDx2ODo6T2JqZWN0PiBWOE9iamVjdENvbnN0cnVj
dG9yOjpuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4gZnVuY3Rpb24sIGludCBh
cmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdKQoreworICAgIGlmIChmdW5jdGlvbi5J
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4oKTsKKyAgICBD
b25zdHJ1Y3Rvck1vZGUgY29uc3RydWN0b3JNb2RlOworICAgIFY4UmVjdXJzaW9uU2NvcGU6Ok1p
Y3JvdGFza1N1cHByZXNzaW9uIHNjb3BlOworICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiByZXN1
bHQgPSBmdW5jdGlvbi0+TmV3SW5zdGFuY2UoYXJnYywgYXJndik7CisgICAgYXNzZXJ0SWZWOElz
RGVhZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3Y4OjpMb2NhbDx2ODo6T2JqZWN0PiBW
OE9iamVjdENvbnN0cnVjdG9yOjpuZXdJbnN0YW5jZUluRnJhbWUodjg6OkhhbmRsZTx2ODo6RnVu
Y3Rpb24+IGZ1bmN0aW9uLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSwg
RnJhbWUqIGZyYW1lKQoreworI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorICAgIFRSQUNFX0VWRU5U
MCgidjgiLCAidjgubmV3SW5zdGFuY2UiKTsKKyNlbmRpZgorCisgICAgLy8gTm8gYXJ0aWZpY2lh
bCBsaW1pdGF0aW9ucyBvbiB0aGUgZGVwdGggb2YgcmVjdXJzaW9uLCBzZWUgY29tbWVudCBpbgor
ICAgIC8vIFY4UHJveHk6OmNhbGxGdW5jdGlvbi4KKyAgICBWOFJlY3Vyc2lvblNjb3BlIHJlY3Vy
c2lvblNjb3BlKGZyYW1lID8gZnJhbWUtPmRvY3VtZW50KCkgOiAwKTsKKyAgICB2ODo6TG9jYWw8
djg6Ok9iamVjdD4gcmVzdWx0ID0gZnVuY3Rpb24tPk5ld0luc3RhbmNlKGFyZ2MsIGFyZ3YpOwor
ICAgIGFzc2VydElmVjhJc0RlYWQoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhPYmplY3RDb25zdHJ1Y3Rvcjo6aXNWYWxpZENvbnN0cnVjdG9yTW9k
ZShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIGlmIChDb25zdHJ1Y3Rvck1vZGU6
OmN1cnJlbnQoKSA9PSBDb25zdHJ1Y3Rvck1vZGU6OkNyZWF0ZU5ld09iamVjdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4T2JqZWN0Q29uc3RydWN0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4T2JqZWN0Q29uc3RydWN0b3IuaAppbmRleCAyZjFj
YzIyYWFhYmEyYTg3ZDBiOWM3NDk0ZjFmY2Y4NjU2MGQ0MTRjLi4xM2Y5MzJmZmUwMmRlNmJlNTRh
MWFhNjhkM2JkNWYzNzE3Yzc0MjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOE9iamVjdENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhPYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC0zMiwxMiArMzIsMTMgQEAKICNkZWZpbmUgVjhP
YmplY3RDb25zdHJ1Y3Rvcl9oCiAKICNpbmNsdWRlICJWOFBlcklzb2xhdGVEYXRhLmgiCi0jaW5j
bHVkZSAiVjhSZWN1cnNpb25TY29wZS5oIgogCiAjaW5jbHVkZSA8djguaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBGcmFtZTsKKwogY2xhc3MgQ29uc3RydWN0b3JNb2RlIHsKIHB1
YmxpYzoKICAgICBlbnVtIE1vZGUgewpAQCAtNjYsNDAgKzY3LDE0IEBAIHByaXZhdGU6CiAKIGNs
YXNzIFY4T2JqZWN0Q29uc3RydWN0b3IgewogcHVibGljOgotICAgIHN0YXRpYyBpbmxpbmUgdjg6
OkxvY2FsPHY4OjpPYmplY3Q+IG5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPik7
Ci0gICAgc3RhdGljIGlubGluZSB2ODo6TG9jYWw8djg6Ok9iamVjdD4gbmV3SW5zdGFuY2Uodjg6
OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+KTsKLSAgICBzdGF0aWMgaW5saW5lIHY4OjpMb2Nh
bDx2ODo6T2JqZWN0PiBuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4sIGludCBh
cmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdKTsKKyAgICBzdGF0aWMgdjg6OkxvY2Fs
PHY4OjpPYmplY3Q+IG5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPik7CisgICAg
c3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpP
YmplY3RUZW1wbGF0ZT4pOworICAgIHN0YXRpYyB2ODo6TG9jYWw8djg6Ok9iamVjdD4gbmV3SW5z
dGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+LCBpbnQsIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBhcmd2W10pOworICAgIHN0YXRpYyB2ODo6TG9jYWw8djg6Ok9iamVjdD4gbmV3SW5zdGFuY2VJ
bkZyYW1lKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiwgaW50LCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gYXJndltdLCBGcmFtZSopOwogCiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBp
c1ZhbGlkQ29uc3RydWN0b3JNb2RlKGNvbnN0IHY4OjpBcmd1bWVudHMmKTsKIH07CiAKLXY4OjpM
b2NhbDx2ODo6T2JqZWN0PiBWOE9iamVjdENvbnN0cnVjdG9yOjpuZXdJbnN0YW5jZSh2ODo6SGFu
ZGxlPHY4OjpGdW5jdGlvbj4gZnVuY3Rpb24pCi17Ci0gICAgaWYgKGZ1bmN0aW9uLklzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6T2JqZWN0PigpOwotICAgIENvbnN0cnVj
dG9yTW9kZSBjb25zdHJ1Y3Rvck1vZGU7Ci0gICAgVjhSZWN1cnNpb25TY29wZTo6TWljcm90YXNr
U3VwcHJlc3Npb24gc2NvcGU7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uLT5OZXdJbnN0YW5jZSgpOwot
fQotCi12ODo6TG9jYWw8djg6Ok9iamVjdD4gVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFu
Y2Uodjg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+IG9iamVjdFRlbXBsYXRlKQotewotICAg
IGlmIChvYmplY3RUZW1wbGF0ZS5Jc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiB2ODo6TG9jYWw8
djg6Ok9iamVjdD4oKTsKLSAgICBDb25zdHJ1Y3Rvck1vZGUgY29uc3RydWN0b3JNb2RlOwotICAg
IFY4UmVjdXJzaW9uU2NvcGU6Ok1pY3JvdGFza1N1cHByZXNzaW9uIHNjb3BlOwotICAgIHJldHVy
biBvYmplY3RUZW1wbGF0ZS0+TmV3SW5zdGFuY2UoKTsKLX0KLQotdjg6OkxvY2FsPHY4OjpPYmpl
Y3Q+IFY4T2JqZWN0Q29uc3RydWN0b3I6Om5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6OkZ1bmN0
aW9uPiBmdW5jdGlvbiwgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10pCi17
Ci0gICAgaWYgKGZ1bmN0aW9uLklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2
ODo6T2JqZWN0PigpOwotICAgIENvbnN0cnVjdG9yTW9kZSBjb25zdHJ1Y3Rvck1vZGU7Ci0gICAg
VjhSZWN1cnNpb25TY29wZTo6TWljcm90YXNrU3VwcHJlc3Npb24gc2NvcGU7Ci0gICAgcmV0dXJu
IGZ1bmN0aW9uLT5OZXdJbnN0YW5jZShhcmdjLCBhcmd2KTsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gVjhPYmplY3RDb25zdHJ1Y3Rvcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4UHJveHkuY3BwCmluZGV4IGFiMjczYWVkMGY1Nzg1MWIxYTIzMWU5ODZkM2Zj
MjA1NTIwMGQ4MzguLjgxNjcxMjIzYWJiNmYzMDUyMWNhYWYxN2Q2OWY4OWY5MWI5NThhZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCkBAIC0xMDUsMTMgKzEwNSw2IEBA
IHZvaWQgVjhQcm94eTo6cmVwb3J0VW5zYWZlQWNjZXNzVG8oRG9jdW1lbnQqIHRhcmdldERvY3Vt
ZW50KQogICAgIHNvdXJjZURvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgc3RyLCBzdGFja1RyYWNlLnJl
bGVhc2UoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGhhbmRsZUZhdGFsRXJyb3JJblY4KCkKLXsKLSAg
ICAvLyBGSVhNRTogV2UgdGVtcG9yYXJpbHkgZGVhbCB3aXRoIFY4IGludGVybmFsIGVycm9yIHNp
dHVhdGlvbnMKLSAgICAvLyBzdWNoIGFzIG91dC1vZi1tZW1vcnkgYnkgY3Jhc2hpbmcgdGhlIHJl
bmRlcmVyLgotICAgIENSQVNIKCk7Ci19Ci0KIHN0YXRpYyB2ODo6TG9jYWw8djg6OlZhbHVlPiBo
YW5kbGVNYXhSZWN1cnNpb25EZXB0aEV4Y2VlZGVkKCkKIHsKICAgICB0aHJvd0Vycm9yKFJhbmdl
RXJyb3IsICJNYXhpbXVtIGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZC4iKTsKQEAgLTI2Miw5ICsy
NTUsNyBAQCB2ODo6TG9jYWw8djg6OlZhbHVlPiBWOFByb3h5OjpydW5TY3JpcHQodjg6OkhhbmRs
ZTx2ODo6U2NyaXB0PiBzY3JpcHQpCiAgICAgaWYgKHJlc3VsdC5Jc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiB2ODo6TG9jYWw8djg6OlZhbHVlPigpOwogCi0gICAgaWYgKHY4OjpWODo6SXNEZWFk
KCkpCi0gICAgICAgIGhhbmRsZUZhdGFsRXJyb3JJblY4KCk7Ci0KKyAgICBhc3NlcnRJZlY4SXNE
ZWFkKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMzI3LDMwICszMTgsNyBAQCB2ODo6
TG9jYWw8djg6OlZhbHVlPiBWOFByb3h5OjppbnN0cnVtZW50ZWRDYWxsRnVuY3Rpb24oRnJhbWUq
IGZyYW1lLCB2ODo6SGFuZGxlPAogICAgIH0KIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ2FsbEZ1bmN0aW9uKGNvb2tpZSk7Ci0KLSAgICBpZiAodjg6OlY4OjpJc0RlYWQoKSkK
LSAgICAgICAgaGFuZGxlRmF0YWxFcnJvckluVjgoKTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19
Ci0KLXY4OjpMb2NhbDx2ODo6VmFsdWU+IFY4UHJveHk6Om5ld0luc3RhbmNlKHY4OjpIYW5kbGU8
djg6OkZ1bmN0aW9uPiBjb25zdHJ1Y3RvciwgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBhcmdzW10pCi17Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgVFJBQ0VfRVZFTlQwKCJ2
OCIsICJ2OC5uZXdJbnN0YW5jZSIpOwotI2VuZGlmCi0KLSAgICAvLyBObyBhcnRpZmljaWFsIGxp
bWl0YXRpb25zIG9uIHRoZSBkZXB0aCBvZiByZWN1cnNpb24sIHNlZSBjb21tZW50IGluCi0gICAg
Ly8gVjhQcm94eTo6Y2FsbEZ1bmN0aW9uLgotICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHJlc3Vs
dDsKLSAgICB7Ci0gICAgICAgIFY4UmVjdXJzaW9uU2NvcGUgcmVjdXJzaW9uU2NvcGUoZnJhbWUo
KSA/IGZyYW1lKCktPmRvY3VtZW50KCkgOiAwKTsKLSAgICAgICAgcmVzdWx0ID0gY29uc3RydWN0
b3ItPk5ld0luc3RhbmNlKGFyZ2MsIGFyZ3MpOwotICAgIH0KLQotICAgIGlmICh2ODo6Vjg6Oklz
RGVhZCgpKQotICAgICAgICBoYW5kbGVGYXRhbEVycm9ySW5WOCgpOwotCisgICAgYXNzZXJ0SWZW
OElzRGVhZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159339</attachid>
            <date>2012-08-19 23:21:56 -0700</date>
            <delta_ts>2012-08-19 23:51:59 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-94443-20120820152116.patch</filename>
            <type>text/plain</type>
            <size>11100</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1OTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI5ODA3OGU0YWI2YjA0
ZGZjMzUxYTU5ZDk4YzJkN2I5NWRiNWUwMS4uZWFhOTg5ODUzMjA3ODkzZWM3MWNjOTI2YzVkYjMx
ZDcwMWI4NGZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2IEBACiAyMDEyLTA4LTE5ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbVjhdIE1vdmUgVjhQ
cm94eTo6bmV3SW5zdGFuY2UoKSB0byBWOE9iamVjdENvbnN0cnVjdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDQ0MworCisgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgVG8ga2lsbCBWOFByb3h5LCB0aGlzIHBhdGNo
IG1vdmVzIFY4UHJveHk6Om5ld0luc3RhbmNlKCkgdG8KKyAgICAgICAgVjhPYmplY3RDb25zdHJ1
Y3Rvcjo6bmV3SW5zdGFuY2VJbkZyYW1lKCkuCisgICAgICAgIEluIGFkZGl0aW9uLCB0aGlzIHBh
dGNoIGRvZXMgdGhlIGZvbGxvd2luZyB0aGluZ3M6CisKKyAgICAgICAgLSBGb3IgY29uc2lzdGVu
Y3kgd2l0aCBWOE9iamVjdENvbnN0cnVjdG9yOjpuZXdJbnN0YW5jZUluRnJhbWUoKSwKKyAgICAg
ICAgdGhpcyBwYXRjaCBpbnNlcnRzIGFuIGlmKHY4OjpWODo6SXNEZWFkKCkpIGNoZWNrIHRvIGp1
c3QgYWZ0ZXIKKyAgICAgICAgRnVuY3Rpb246Ok5ld0luc3RhbmNlKCkuIFRoZSBjaGVjayBpcyBk
b25lIGJ5IFY4QmluZGluZzo6YXNzZXJ0SWZWOElzRGVhZCgpLgorCisgICAgICAgIC0gVG8gYXZv
aWQgI2luY2x1ZGUgY2lyY3VsYXIgZGVwZW5kZW5jeSwgdGhpcyBwYXRjaCBkZS1pbmxpbmUKKyAg
ICAgICAgVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2UoKXMuIEkgZGlkbid0IG9ic2Vy
dmUgYW55IHBlcmYgcmVncmVzc2lvbi4KKyAgICAgICAgSSBkb24ndCB0aGluayB0aGVzZSBtZXRo
b2RzIGFyZSB3b3J0aCBiZWluZyBpbmxpbmVkLCBiZWNhdXNlCisgICAgICAgIHRoZXNlIG1ldGhv
ZHMgY2FsbCBGdW5jdGlvbjo6TmV3SW5zdGFuY2UoKSwgd2hpY2ggaXMgbm90IGlubGluZWQKKyAg
ICAgICAgYW5kIGNhbGxzIGEgYnVuY2ggb2YgaGVhdnkgbWVodG9kcyBpbiBWOC4KKworICAgICAg
ICBObyB0ZXN0cy4gTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogYmluZGluZ3Mv
djgvTlBWOE9iamVjdC5jcHA6CisgICAgICAgIChfTlBOX0NvbnN0cnVjdCk6CisgICAgICAgICog
YmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFzc2VydElmVjhJ
c0RlYWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5k
aW5nLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOE9iamVj
dENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0Q29uc3RydWN0b3I6
Om5ld0luc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VjhP
YmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2VJbkZyYW1lKToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9WOE9iamVjdENvbnN0cnVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFY4T2JqZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VjhQcm94eTo6cnVuU2NyaXB0KToKKyAgICAgICAgKFdlYkNv
cmU6OlY4UHJveHk6Omluc3RydW1lbnRlZENhbGxGdW5jdGlvbik6CisKKzIwMTItMDgtMTkgIEtl
bnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtWOF0gUmVuYW1l
IFNhZmVBbGxvY2F0aW9uIHRvIFY4T2JqZWN0Q29uc3RydWN0b3IKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NDM2CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAKaW5kZXggYzAwMDgyZDZjZjRhMTQzMDdlYjgyZjQwYTQ0
MzMzNDczNzJjNmJhYy4uNjlhYTY0M2U0Y2U4OTA0YTQwM2I5NmJhMmZjZmRhNjNhMDI3MzgxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAKQEAgLTU5MSwxMSAr
NTkxLDEwIEBAIGJvb2wgX05QTl9Db25zdHJ1Y3QoTlBQIG5wcCwgTlBPYmplY3QqIG5wT2JqZWN0
LCBjb25zdCBOUFZhcmlhbnQqIGFyZ3VtZW50cywgdWluCiAgICAgICAgIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHJlc3VsdE9iamVjdDsKICAgICAgICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGN0
b3Iodjg6OkZ1bmN0aW9uOjpDYXN0KCpjdG9yT2JqKSk7CiAgICAgICAgIGlmICghY3Rvci0+SXNO
dWxsKCkpIHsKLSAgICAgICAgICAgIFY4UHJveHkqIHByb3h5ID0gdG9WOFByb3h5KG5wT2JqZWN0
KTsKLSAgICAgICAgICAgIEFTU0VSVChwcm94eSk7Ci0KKyAgICAgICAgICAgIEZyYW1lKiBmcmFt
ZSA9IG9iamVjdC0+cm9vdE9iamVjdC0+ZnJhbWUoKTsKKyAgICAgICAgICAgIEFTU0VSVChmcmFt
ZSk7CiAgICAgICAgICAgICBPd25BcnJheVB0cjx2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gPiBhcmd2
ID0gY3JlYXRlVmFsdWVMaXN0RnJvbVZhcmlhbnRBcmdzKGFyZ3VtZW50cywgYXJndW1lbnRDb3Vu
dCwgbnBPYmplY3QpOwotICAgICAgICAgICAgcmVzdWx0T2JqZWN0ID0gcHJveHktPm5ld0luc3Rh
bmNlKGN0b3IsIGFyZ3VtZW50Q291bnQsIGFyZ3YuZ2V0KCkpOworICAgICAgICAgICAgcmVzdWx0
T2JqZWN0ID0gVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2VJbkRvY3VtZW50KGN0b3Is
IGFyZ3VtZW50Q291bnQsIGFyZ3YuZ2V0KCksIGZyYW1lID8gZnJhbWUtPmRvY3VtZW50KCkgOiAw
KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZXN1bHRPYmplY3QuSXNFbXB0eSgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAKaW5kZXggZjlhMzg4NmFlNzA0ZTNh
ODlkMTZiYzhiZjIyNWU2NjUwNmMzMDQ2MC4uNTY1Zjk4OTFhZDQ3ODFjNThiYzE4MmMzZDZkMjNl
OGVjZjBkYTJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5k
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCkBA
IC0zODEsNCArMzgxLDEzIEBAIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gdG9ET01TdHJpbmdM
aXN0KHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKICAgICByZXR1cm4gcmV0LnJlbGVhc2Uo
KTsKIH0KIAordm9pZCBjcmFzaElmVjhJc0RlYWQoKQoreworICAgIGlmICh2ODo6Vjg6OklzRGVh
ZCgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBXZSB0ZW1wb3JhcmlseSBkZWFsIHdpdGggVjggaW50
ZXJuYWwgZXJyb3Igc2l0dWF0aW9ucworICAgICAgICAvLyBzdWNoIGFzIG91dC1vZi1tZW1vcnkg
YnkgY3Jhc2hpbmcgdGhlIHJlbmRlcmVyLgorICAgICAgICBDUkFTSCgpOworICAgIH0KK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhCaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcu
aAppbmRleCBjYzI3ZjM5Y2M0MzgyZGIyMmQxNDJlNDM2MzAyZjQ4MjZlZTFlYjEyLi4zYTNlMDAy
NzkzZTg4YjA0Nzc0MDQzYmU2NTRkMWUzMDFhNTY1ZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOEJpbmRpbmcuaApAQCAtMzY4LDYgKzM2OCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gdG9ET01TdHJpbmdMaXN0KHY4OjpIYW5k
bGU8djg6OlZhbHVlPik7CiAKKyAgICB2b2lkIGNyYXNoSWZWOElzRGVhZCgpOworCiAgICAgY2xh
c3MgVjhQYXJhbWV0ZXJCYXNlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIG9wZXJhdG9yIFN0cmlu
ZygpIHsgcmV0dXJuIHRvU3RyaW5nPFN0cmluZz4oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhPYmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOE9iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCA5MTU4OWE3YTgzYTY3
ZGQyNzQxOGU0NWM3NDgyNTc0YzdjYTMwNzMyLi5mNzg3NzQ1MGE5MzEzNDdjMGQ2ZGJmYWU3YzY3
OWNmYzliZjNkMTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE9i
amVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE9i
amVjdENvbnN0cnVjdG9yLmNwcApAQCAtMjUsMTAgKzI1LDYzIEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiVjhPYmplY3RDb25zdHJ1Y3Rvci5oIgogCisjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOFJlY3Vyc2lvblNjb3BlLmgi
CisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCisjZW5k
aWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit2ODo6TG9jYWw8djg6Ok9iamVjdD4gVjhPYmpl
Y3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGZ1bmN0
aW9uKQoreworICAgIGlmIChmdW5jdGlvbi5Jc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB2ODo6
TG9jYWw8djg6Ok9iamVjdD4oKTsKKyAgICBDb25zdHJ1Y3Rvck1vZGUgY29uc3RydWN0b3JNb2Rl
OworICAgIFY4UmVjdXJzaW9uU2NvcGU6Ok1pY3JvdGFza1N1cHByZXNzaW9uIHNjb3BlOworICAg
IHY4OjpMb2NhbDx2ODo6T2JqZWN0PiByZXN1bHQgPSBmdW5jdGlvbi0+TmV3SW5zdGFuY2UoKTsK
KyAgICBjcmFzaElmVjhJc0RlYWQoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2ODo6TG9j
YWw8djg6Ok9iamVjdD4gVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2Uodjg6OkhhbmRs
ZTx2ODo6T2JqZWN0VGVtcGxhdGU+IG9iamVjdFRlbXBsYXRlKQoreworICAgIGlmIChvYmplY3RU
ZW1wbGF0ZS5Jc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4o
KTsKKyAgICBDb25zdHJ1Y3Rvck1vZGUgY29uc3RydWN0b3JNb2RlOworICAgIFY4UmVjdXJzaW9u
U2NvcGU6Ok1pY3JvdGFza1N1cHByZXNzaW9uIHNjb3BlOworICAgIHY4OjpMb2NhbDx2ODo6T2Jq
ZWN0PiByZXN1bHQgPSBvYmplY3RUZW1wbGF0ZS0+TmV3SW5zdGFuY2UoKTsKKyAgICBjcmFzaElm
VjhJc0RlYWQoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2ODo6TG9jYWw8djg6Ok9iamVj
dD4gVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rp
b24+IGZ1bmN0aW9uLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSkKK3sK
KyAgICBpZiAoZnVuY3Rpb24uSXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4
OjpPYmplY3Q+KCk7CisgICAgQ29uc3RydWN0b3JNb2RlIGNvbnN0cnVjdG9yTW9kZTsKKyAgICBW
OFJlY3Vyc2lvblNjb3BlOjpNaWNyb3Rhc2tTdXBwcmVzc2lvbiBzY29wZTsKKyAgICB2ODo6TG9j
YWw8djg6Ok9iamVjdD4gcmVzdWx0ID0gZnVuY3Rpb24tPk5ld0luc3RhbmNlKGFyZ2MsIGFyZ3Yp
OworICAgIGNyYXNoSWZWOElzRGVhZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3Y4OjpM
b2NhbDx2ODo6T2JqZWN0PiBWOE9iamVjdENvbnN0cnVjdG9yOjpuZXdJbnN0YW5jZUluRG9jdW1l
bnQodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGZ1bmN0aW9uLCBpbnQgYXJnYywgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGFyZ3ZbXSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworI2lmIFBMQVRGT1JN
KENIUk9NSVVNKQorICAgIFRSQUNFX0VWRU5UMCgidjgiLCAidjgubmV3SW5zdGFuY2UiKTsKKyNl
bmRpZgorCisgICAgLy8gTm8gYXJ0aWZpY2lhbCBsaW1pdGF0aW9ucyBvbiB0aGUgZGVwdGggb2Yg
cmVjdXJzaW9uLCBzZWUgY29tbWVudCBpbgorICAgIC8vIFY4UHJveHk6OmNhbGxGdW5jdGlvbi4K
KyAgICBWOFJlY3Vyc2lvblNjb3BlIHJlY3Vyc2lvblNjb3BlKGRvY3VtZW50KTsKKyAgICB2ODo6
TG9jYWw8djg6Ok9iamVjdD4gcmVzdWx0ID0gZnVuY3Rpb24tPk5ld0luc3RhbmNlKGFyZ2MsIGFy
Z3YpOworICAgIGNyYXNoSWZWOElzRGVhZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOE9iamVjdENvbnN0cnVjdG9yOjppc1ZhbGlkQ29uc3RydWN0
b3JNb2RlKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgaWYgKENvbnN0cnVjdG9y
TW9kZTo6Y3VycmVudCgpID09IENvbnN0cnVjdG9yTW9kZTo6Q3JlYXRlTmV3T2JqZWN0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhPYmplY3RDb25zdHJ1Y3Rvci5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhPYmplY3RDb25zdHJ1Y3Rvci5oCmluZGV4
IDJmMWNjMjJhYWFiYTJhODdkMGI5Yzc0OTRmMWZjZjg2NTYwZDQxNGMuLmI2ZDg1NzY3ZjBlYTQ1
YjQ4NmIyYzQ0NTUxN2UyYTg1ZDk2OTY1YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4T2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOE9iamVjdENvbnN0cnVjdG9yLmgKQEAgLTMyLDEyICszMiwxMyBAQAogI2RlZmlu
ZSBWOE9iamVjdENvbnN0cnVjdG9yX2gKIAogI2luY2x1ZGUgIlY4UGVySXNvbGF0ZURhdGEuaCIK
LSNpbmNsdWRlICJWOFJlY3Vyc2lvblNjb3BlLmgiCiAKICNpbmNsdWRlIDx2OC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZyYW1lOworCiBjbGFzcyBDb25zdHJ1Y3Rvck1vZGUg
ewogcHVibGljOgogICAgIGVudW0gTW9kZSB7CkBAIC02Niw0MCArNjcsMTQgQEAgcHJpdmF0ZToK
IAogY2xhc3MgVjhPYmplY3RDb25zdHJ1Y3RvciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGlubGlu
ZSB2ODo6TG9jYWw8djg6Ok9iamVjdD4gbmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rp
b24+KTsKLSAgICBzdGF0aWMgaW5saW5lIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBuZXdJbnN0YW5j
ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4pOwotICAgIHN0YXRpYyBpbmxpbmUgdjg6
OkxvY2FsPHY4OjpPYmplY3Q+IG5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiwg
aW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10pOworICAgIHN0YXRpYyB2ODo6
TG9jYWw8djg6Ok9iamVjdD4gbmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+KTsK
KyAgICBzdGF0aWMgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IG5ld0luc3RhbmNlKHY4OjpIYW5kbGU8
djg6Ok9iamVjdFRlbXBsYXRlPik7CisgICAgc3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBu
ZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4sIGludCwgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IGFyZ3ZbXSk7CisgICAgc3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBuZXdJbnN0
YW5jZUluRnJhbWUodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+LCBpbnQsIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBhcmd2W10sIERvY3VtZW50Kik7CiAKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IGlzVmFsaWRDb25zdHJ1Y3Rvck1vZGUoY29uc3Qgdjg6OkFyZ3VtZW50cyYpOwogfTsK
IAotdjg6OkxvY2FsPHY4OjpPYmplY3Q+IFY4T2JqZWN0Q29uc3RydWN0b3I6Om5ld0luc3RhbmNl
KHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbikKLXsKLSAgICBpZiAoZnVuY3Rpb24u
SXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpPYmplY3Q+KCk7Ci0gICAg
Q29uc3RydWN0b3JNb2RlIGNvbnN0cnVjdG9yTW9kZTsKLSAgICBWOFJlY3Vyc2lvblNjb3BlOjpN
aWNyb3Rhc2tTdXBwcmVzc2lvbiBzY29wZTsKLSAgICByZXR1cm4gZnVuY3Rpb24tPk5ld0luc3Rh
bmNlKCk7Ci19Ci0KLXY4OjpMb2NhbDx2ODo6T2JqZWN0PiBWOE9iamVjdENvbnN0cnVjdG9yOjpu
ZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4gb2JqZWN0VGVtcGxhdGUp
Ci17Ci0gICAgaWYgKG9iamVjdFRlbXBsYXRlLklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHY4
OjpMb2NhbDx2ODo6T2JqZWN0PigpOwotICAgIENvbnN0cnVjdG9yTW9kZSBjb25zdHJ1Y3Rvck1v
ZGU7Ci0gICAgVjhSZWN1cnNpb25TY29wZTo6TWljcm90YXNrU3VwcHJlc3Npb24gc2NvcGU7Ci0g
ICAgcmV0dXJuIG9iamVjdFRlbXBsYXRlLT5OZXdJbnN0YW5jZSgpOwotfQotCi12ODo6TG9jYWw8
djg6Ok9iamVjdD4gVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2
ODo6RnVuY3Rpb24+IGZ1bmN0aW9uLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFy
Z3ZbXSkKLXsKLSAgICBpZiAoZnVuY3Rpb24uSXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gdjg6
OkxvY2FsPHY4OjpPYmplY3Q+KCk7Ci0gICAgQ29uc3RydWN0b3JNb2RlIGNvbnN0cnVjdG9yTW9k
ZTsKLSAgICBWOFJlY3Vyc2lvblNjb3BlOjpNaWNyb3Rhc2tTdXBwcmVzc2lvbiBzY29wZTsKLSAg
ICByZXR1cm4gZnVuY3Rpb24tPk5ld0luc3RhbmNlKGFyZ2MsIGFyZ3YpOwotfQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBWOE9iamVjdENvbnN0cnVjdG9yX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKaW5kZXggYWIyNzNhZWQwZjU3ODUxYjFhMjMx
ZTk4NmQzZmMyMDU1MjAwZDgzOC4uOWQ5MTliNmZjMmRlMzQxMzY1NzM4MWRkMzIxMzRhMzBhYTI4
NmQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKQEAgLTEwNSwxMyAr
MTA1LDYgQEAgdm9pZCBWOFByb3h5OjpyZXBvcnRVbnNhZmVBY2Nlc3NUbyhEb2N1bWVudCogdGFy
Z2V0RG9jdW1lbnQpCiAgICAgc291cmNlRG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVz
c2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBzdHIsIHN0YWNr
VHJhY2UucmVsZWFzZSgpKTsKIH0KIAotc3RhdGljIHZvaWQgaGFuZGxlRmF0YWxFcnJvckluVjgo
KQotewotICAgIC8vIEZJWE1FOiBXZSB0ZW1wb3JhcmlseSBkZWFsIHdpdGggVjggaW50ZXJuYWwg
ZXJyb3Igc2l0dWF0aW9ucwotICAgIC8vIHN1Y2ggYXMgb3V0LW9mLW1lbW9yeSBieSBjcmFzaGlu
ZyB0aGUgcmVuZGVyZXIuCi0gICAgQ1JBU0goKTsKLX0KLQogc3RhdGljIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IGhhbmRsZU1heFJlY3Vyc2lvbkRlcHRoRXhjZWVkZWQoKQogewogICAgIHRocm93RXJy
b3IoUmFuZ2VFcnJvciwgIk1heGltdW0gY2FsbCBzdGFjayBzaXplIGV4Y2VlZGVkLiIpOwpAQCAt
MjYyLDkgKzI1NSw3IEBAIHY4OjpMb2NhbDx2ODo6VmFsdWU+IFY4UHJveHk6OnJ1blNjcmlwdCh2
ODo6SGFuZGxlPHY4OjpTY3JpcHQ+IHNjcmlwdCkKICAgICBpZiAocmVzdWx0LklzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6VmFsdWU+KCk7CiAKLSAgICBpZiAodjg6OlY4
OjpJc0RlYWQoKSkKLSAgICAgICAgaGFuZGxlRmF0YWxFcnJvckluVjgoKTsKLQorICAgIGNyYXNo
SWZWOElzRGVhZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTMyNywzMCArMzE4LDcg
QEAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gVjhQcm94eTo6aW5zdHJ1bWVudGVkQ2FsbEZ1bmN0aW9u
KEZyYW1lKiBmcmFtZSwgdjg6OkhhbmRsZTwKICAgICB9CiAKICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENhbGxGdW5jdGlvbihjb29raWUpOwotCi0gICAgaWYgKHY4OjpWODo6SXNE
ZWFkKCkpCi0gICAgICAgIGhhbmRsZUZhdGFsRXJyb3JJblY4KCk7Ci0KLSAgICByZXR1cm4gcmVz
dWx0OwotfQotCi12ODo6TG9jYWw8djg6OlZhbHVlPiBWOFByb3h5OjpuZXdJbnN0YW5jZSh2ODo6
SGFuZGxlPHY4OjpGdW5jdGlvbj4gY29uc3RydWN0b3IsIGludCBhcmdjLCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gYXJnc1tdKQotewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNFX0VW
RU5UMCgidjgiLCAidjgubmV3SW5zdGFuY2UiKTsKLSNlbmRpZgotCi0gICAgLy8gTm8gYXJ0aWZp
Y2lhbCBsaW1pdGF0aW9ucyBvbiB0aGUgZGVwdGggb2YgcmVjdXJzaW9uLCBzZWUgY29tbWVudCBp
bgotICAgIC8vIFY4UHJveHk6OmNhbGxGdW5jdGlvbi4KLSAgICB2ODo6TG9jYWw8djg6OlZhbHVl
PiByZXN1bHQ7Ci0gICAgewotICAgICAgICBWOFJlY3Vyc2lvblNjb3BlIHJlY3Vyc2lvblNjb3Bl
KGZyYW1lKCkgPyBmcmFtZSgpLT5kb2N1bWVudCgpIDogMCk7Ci0gICAgICAgIHJlc3VsdCA9IGNv
bnN0cnVjdG9yLT5OZXdJbnN0YW5jZShhcmdjLCBhcmdzKTsKLSAgICB9Ci0KLSAgICBpZiAodjg6
OlY4OjpJc0RlYWQoKSkKLSAgICAgICAgaGFuZGxlRmF0YWxFcnJvckluVjgoKTsKLQorICAgIGNy
YXNoSWZWOElzRGVhZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
</data>
<flag name="commit-queue"
          id="169631"
          type_id="3"
          status="-"
          setter="haraken"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159345</attachid>
            <date>2012-08-19 23:52:26 -0700</date>
            <delta_ts>2012-08-20 00:47:43 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-94443-20120820155146.patch</filename>
            <type>text/plain</type>
            <size>11106</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1OTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI5ODA3OGU0YWI2YjA0
ZGZjMzUxYTU5ZDk4YzJkN2I5NWRiNWUwMS4uZWFhOTg5ODUzMjA3ODkzZWM3MWNjOTI2YzVkYjMx
ZDcwMWI4NGZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2IEBACiAyMDEyLTA4LTE5ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbVjhdIE1vdmUgVjhQ
cm94eTo6bmV3SW5zdGFuY2UoKSB0byBWOE9iamVjdENvbnN0cnVjdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDQ0MworCisgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgVG8ga2lsbCBWOFByb3h5LCB0aGlzIHBhdGNo
IG1vdmVzIFY4UHJveHk6Om5ld0luc3RhbmNlKCkgdG8KKyAgICAgICAgVjhPYmplY3RDb25zdHJ1
Y3Rvcjo6bmV3SW5zdGFuY2VJbkZyYW1lKCkuCisgICAgICAgIEluIGFkZGl0aW9uLCB0aGlzIHBh
dGNoIGRvZXMgdGhlIGZvbGxvd2luZyB0aGluZ3M6CisKKyAgICAgICAgLSBGb3IgY29uc2lzdGVu
Y3kgd2l0aCBWOE9iamVjdENvbnN0cnVjdG9yOjpuZXdJbnN0YW5jZUluRnJhbWUoKSwKKyAgICAg
ICAgdGhpcyBwYXRjaCBpbnNlcnRzIGFuIGlmKHY4OjpWODo6SXNEZWFkKCkpIGNoZWNrIHRvIGp1
c3QgYWZ0ZXIKKyAgICAgICAgRnVuY3Rpb246Ok5ld0luc3RhbmNlKCkuIFRoZSBjaGVjayBpcyBk
b25lIGJ5IFY4QmluZGluZzo6YXNzZXJ0SWZWOElzRGVhZCgpLgorCisgICAgICAgIC0gVG8gYXZv
aWQgI2luY2x1ZGUgY2lyY3VsYXIgZGVwZW5kZW5jeSwgdGhpcyBwYXRjaCBkZS1pbmxpbmUKKyAg
ICAgICAgVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2UoKXMuIEkgZGlkbid0IG9ic2Vy
dmUgYW55IHBlcmYgcmVncmVzc2lvbi4KKyAgICAgICAgSSBkb24ndCB0aGluayB0aGVzZSBtZXRo
b2RzIGFyZSB3b3J0aCBiZWluZyBpbmxpbmVkLCBiZWNhdXNlCisgICAgICAgIHRoZXNlIG1ldGhv
ZHMgY2FsbCBGdW5jdGlvbjo6TmV3SW5zdGFuY2UoKSwgd2hpY2ggaXMgbm90IGlubGluZWQKKyAg
ICAgICAgYW5kIGNhbGxzIGEgYnVuY2ggb2YgaGVhdnkgbWVodG9kcyBpbiBWOC4KKworICAgICAg
ICBObyB0ZXN0cy4gTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogYmluZGluZ3Mv
djgvTlBWOE9iamVjdC5jcHA6CisgICAgICAgIChfTlBOX0NvbnN0cnVjdCk6CisgICAgICAgICog
YmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFzc2VydElmVjhJ
c0RlYWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5k
aW5nLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOE9iamVj
dENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0Q29uc3RydWN0b3I6
Om5ld0luc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VjhP
YmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2VJbkZyYW1lKToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9WOE9iamVjdENvbnN0cnVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFY4T2JqZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VjhQcm94eTo6cnVuU2NyaXB0KToKKyAgICAgICAgKFdlYkNv
cmU6OlY4UHJveHk6Omluc3RydW1lbnRlZENhbGxGdW5jdGlvbik6CisKKzIwMTItMDgtMTkgIEtl
bnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtWOF0gUmVuYW1l
IFNhZmVBbGxvY2F0aW9uIHRvIFY4T2JqZWN0Q29uc3RydWN0b3IKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NDM2CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAKaW5kZXggYzAwMDgyZDZjZjRhMTQzMDdlYjgyZjQwYTQ0
MzMzNDczNzJjNmJhYy4uNjlhYTY0M2U0Y2U4OTA0YTQwM2I5NmJhMmZjZmRhNjNhMDI3MzgxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAKQEAgLTU5MSwxMSAr
NTkxLDEwIEBAIGJvb2wgX05QTl9Db25zdHJ1Y3QoTlBQIG5wcCwgTlBPYmplY3QqIG5wT2JqZWN0
LCBjb25zdCBOUFZhcmlhbnQqIGFyZ3VtZW50cywgdWluCiAgICAgICAgIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHJlc3VsdE9iamVjdDsKICAgICAgICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGN0
b3Iodjg6OkZ1bmN0aW9uOjpDYXN0KCpjdG9yT2JqKSk7CiAgICAgICAgIGlmICghY3Rvci0+SXNO
dWxsKCkpIHsKLSAgICAgICAgICAgIFY4UHJveHkqIHByb3h5ID0gdG9WOFByb3h5KG5wT2JqZWN0
KTsKLSAgICAgICAgICAgIEFTU0VSVChwcm94eSk7Ci0KKyAgICAgICAgICAgIEZyYW1lKiBmcmFt
ZSA9IG9iamVjdC0+cm9vdE9iamVjdC0+ZnJhbWUoKTsKKyAgICAgICAgICAgIEFTU0VSVChmcmFt
ZSk7CiAgICAgICAgICAgICBPd25BcnJheVB0cjx2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gPiBhcmd2
ID0gY3JlYXRlVmFsdWVMaXN0RnJvbVZhcmlhbnRBcmdzKGFyZ3VtZW50cywgYXJndW1lbnRDb3Vu
dCwgbnBPYmplY3QpOwotICAgICAgICAgICAgcmVzdWx0T2JqZWN0ID0gcHJveHktPm5ld0luc3Rh
bmNlKGN0b3IsIGFyZ3VtZW50Q291bnQsIGFyZ3YuZ2V0KCkpOworICAgICAgICAgICAgcmVzdWx0
T2JqZWN0ID0gVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2VJbkRvY3VtZW50KGN0b3Is
IGFyZ3VtZW50Q291bnQsIGFyZ3YuZ2V0KCksIGZyYW1lID8gZnJhbWUtPmRvY3VtZW50KCkgOiAw
KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZXN1bHRPYmplY3QuSXNFbXB0eSgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAKaW5kZXggZjlhMzg4NmFlNzA0ZTNh
ODlkMTZiYzhiZjIyNWU2NjUwNmMzMDQ2MC4uNTY1Zjk4OTFhZDQ3ODFjNThiYzE4MmMzZDZkMjNl
OGVjZjBkYTJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5k
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCkBA
IC0zODEsNCArMzgxLDEzIEBAIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gdG9ET01TdHJpbmdM
aXN0KHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKICAgICByZXR1cm4gcmV0LnJlbGVhc2Uo
KTsKIH0KIAordm9pZCBjcmFzaElmVjhJc0RlYWQoKQoreworICAgIGlmICh2ODo6Vjg6OklzRGVh
ZCgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBXZSB0ZW1wb3JhcmlseSBkZWFsIHdpdGggVjggaW50
ZXJuYWwgZXJyb3Igc2l0dWF0aW9ucworICAgICAgICAvLyBzdWNoIGFzIG91dC1vZi1tZW1vcnkg
YnkgY3Jhc2hpbmcgdGhlIHJlbmRlcmVyLgorICAgICAgICBDUkFTSCgpOworICAgIH0KK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhCaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcu
aAppbmRleCBjYzI3ZjM5Y2M0MzgyZGIyMmQxNDJlNDM2MzAyZjQ4MjZlZTFlYjEyLi4zYTNlMDAy
NzkzZTg4YjA0Nzc0MDQzYmU2NTRkMWUzMDFhNTY1ZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOEJpbmRpbmcuaApAQCAtMzY4LDYgKzM2OCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gdG9ET01TdHJpbmdMaXN0KHY4OjpIYW5k
bGU8djg6OlZhbHVlPik7CiAKKyAgICB2b2lkIGNyYXNoSWZWOElzRGVhZCgpOworCiAgICAgY2xh
c3MgVjhQYXJhbWV0ZXJCYXNlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIG9wZXJhdG9yIFN0cmlu
ZygpIHsgcmV0dXJuIHRvU3RyaW5nPFN0cmluZz4oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhPYmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOE9iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCA5MTU4OWE3YTgzYTY3
ZGQyNzQxOGU0NWM3NDgyNTc0YzdjYTMwNzMyLi5mNzg3NzQ1MGE5MzEzNDdjMGQ2ZGJmYWU3YzY3
OWNmYzliZjNkMTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE9i
amVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE9i
amVjdENvbnN0cnVjdG9yLmNwcApAQCAtMjUsMTAgKzI1LDYzIEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiVjhPYmplY3RDb25zdHJ1Y3Rvci5oIgogCisjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOFJlY3Vyc2lvblNjb3BlLmgi
CisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCisjZW5k
aWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit2ODo6TG9jYWw8djg6Ok9iamVjdD4gVjhPYmpl
Y3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGZ1bmN0
aW9uKQoreworICAgIGlmIChmdW5jdGlvbi5Jc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB2ODo6
TG9jYWw8djg6Ok9iamVjdD4oKTsKKyAgICBDb25zdHJ1Y3Rvck1vZGUgY29uc3RydWN0b3JNb2Rl
OworICAgIFY4UmVjdXJzaW9uU2NvcGU6Ok1pY3JvdGFza1N1cHByZXNzaW9uIHNjb3BlOworICAg
IHY4OjpMb2NhbDx2ODo6T2JqZWN0PiByZXN1bHQgPSBmdW5jdGlvbi0+TmV3SW5zdGFuY2UoKTsK
KyAgICBjcmFzaElmVjhJc0RlYWQoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2ODo6TG9j
YWw8djg6Ok9iamVjdD4gVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2Uodjg6OkhhbmRs
ZTx2ODo6T2JqZWN0VGVtcGxhdGU+IG9iamVjdFRlbXBsYXRlKQoreworICAgIGlmIChvYmplY3RU
ZW1wbGF0ZS5Jc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4o
KTsKKyAgICBDb25zdHJ1Y3Rvck1vZGUgY29uc3RydWN0b3JNb2RlOworICAgIFY4UmVjdXJzaW9u
U2NvcGU6Ok1pY3JvdGFza1N1cHByZXNzaW9uIHNjb3BlOworICAgIHY4OjpMb2NhbDx2ODo6T2Jq
ZWN0PiByZXN1bHQgPSBvYmplY3RUZW1wbGF0ZS0+TmV3SW5zdGFuY2UoKTsKKyAgICBjcmFzaElm
VjhJc0RlYWQoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2ODo6TG9jYWw8djg6Ok9iamVj
dD4gVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rp
b24+IGZ1bmN0aW9uLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSkKK3sK
KyAgICBpZiAoZnVuY3Rpb24uSXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4
OjpPYmplY3Q+KCk7CisgICAgQ29uc3RydWN0b3JNb2RlIGNvbnN0cnVjdG9yTW9kZTsKKyAgICBW
OFJlY3Vyc2lvblNjb3BlOjpNaWNyb3Rhc2tTdXBwcmVzc2lvbiBzY29wZTsKKyAgICB2ODo6TG9j
YWw8djg6Ok9iamVjdD4gcmVzdWx0ID0gZnVuY3Rpb24tPk5ld0luc3RhbmNlKGFyZ2MsIGFyZ3Yp
OworICAgIGNyYXNoSWZWOElzRGVhZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3Y4OjpM
b2NhbDx2ODo6T2JqZWN0PiBWOE9iamVjdENvbnN0cnVjdG9yOjpuZXdJbnN0YW5jZUluRG9jdW1l
bnQodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGZ1bmN0aW9uLCBpbnQgYXJnYywgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGFyZ3ZbXSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworI2lmIFBMQVRGT1JN
KENIUk9NSVVNKQorICAgIFRSQUNFX0VWRU5UMCgidjgiLCAidjgubmV3SW5zdGFuY2UiKTsKKyNl
bmRpZgorCisgICAgLy8gTm8gYXJ0aWZpY2lhbCBsaW1pdGF0aW9ucyBvbiB0aGUgZGVwdGggb2Yg
cmVjdXJzaW9uLCBzZWUgY29tbWVudCBpbgorICAgIC8vIFY4UHJveHk6OmNhbGxGdW5jdGlvbi4K
KyAgICBWOFJlY3Vyc2lvblNjb3BlIHJlY3Vyc2lvblNjb3BlKGRvY3VtZW50KTsKKyAgICB2ODo6
TG9jYWw8djg6Ok9iamVjdD4gcmVzdWx0ID0gZnVuY3Rpb24tPk5ld0luc3RhbmNlKGFyZ2MsIGFy
Z3YpOworICAgIGNyYXNoSWZWOElzRGVhZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOE9iamVjdENvbnN0cnVjdG9yOjppc1ZhbGlkQ29uc3RydWN0
b3JNb2RlKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgaWYgKENvbnN0cnVjdG9y
TW9kZTo6Y3VycmVudCgpID09IENvbnN0cnVjdG9yTW9kZTo6Q3JlYXRlTmV3T2JqZWN0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhPYmplY3RDb25zdHJ1Y3Rvci5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhPYmplY3RDb25zdHJ1Y3Rvci5oCmluZGV4
IDJmMWNjMjJhYWFiYTJhODdkMGI5Yzc0OTRmMWZjZjg2NTYwZDQxNGMuLjFlNDAxYzczMWJjODZj
MDRiOTM1MDAyYmI3MWZhZTk0ZDg3Mzk0YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4T2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOE9iamVjdENvbnN0cnVjdG9yLmgKQEAgLTMyLDEyICszMiwxMyBAQAogI2RlZmlu
ZSBWOE9iamVjdENvbnN0cnVjdG9yX2gKIAogI2luY2x1ZGUgIlY4UGVySXNvbGF0ZURhdGEuaCIK
LSNpbmNsdWRlICJWOFJlY3Vyc2lvblNjb3BlLmgiCiAKICNpbmNsdWRlIDx2OC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3VtZW50OworCiBjbGFzcyBDb25zdHJ1Y3Rvck1v
ZGUgewogcHVibGljOgogICAgIGVudW0gTW9kZSB7CkBAIC02Niw0MCArNjcsMTQgQEAgcHJpdmF0
ZToKIAogY2xhc3MgVjhPYmplY3RDb25zdHJ1Y3RvciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGlu
bGluZSB2ODo6TG9jYWw8djg6Ok9iamVjdD4gbmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVu
Y3Rpb24+KTsKLSAgICBzdGF0aWMgaW5saW5lIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBuZXdJbnN0
YW5jZSh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4pOwotICAgIHN0YXRpYyBpbmxpbmUg
djg6OkxvY2FsPHY4OjpPYmplY3Q+IG5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9u
PiwgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10pOworICAgIHN0YXRpYyB2
ODo6TG9jYWw8djg6Ok9iamVjdD4gbmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+
KTsKKyAgICBzdGF0aWMgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IG5ld0luc3RhbmNlKHY4OjpIYW5k
bGU8djg6Ok9iamVjdFRlbXBsYXRlPik7CisgICAgc3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0
PiBuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4sIGludCwgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGFyZ3ZbXSk7CisgICAgc3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBuZXdJ
bnN0YW5jZUluRG9jdW1lbnQodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+LCBpbnQsIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBhcmd2W10sIERvY3VtZW50Kik7CiAKICAgICBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGlzVmFsaWRDb25zdHJ1Y3Rvck1vZGUoY29uc3Qgdjg6OkFyZ3VtZW50cyYp
OwogfTsKIAotdjg6OkxvY2FsPHY4OjpPYmplY3Q+IFY4T2JqZWN0Q29uc3RydWN0b3I6Om5ld0lu
c3RhbmNlKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbikKLXsKLSAgICBpZiAoZnVu
Y3Rpb24uSXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpPYmplY3Q+KCk7
Ci0gICAgQ29uc3RydWN0b3JNb2RlIGNvbnN0cnVjdG9yTW9kZTsKLSAgICBWOFJlY3Vyc2lvblNj
b3BlOjpNaWNyb3Rhc2tTdXBwcmVzc2lvbiBzY29wZTsKLSAgICByZXR1cm4gZnVuY3Rpb24tPk5l
d0luc3RhbmNlKCk7Ci19Ci0KLXY4OjpMb2NhbDx2ODo6T2JqZWN0PiBWOE9iamVjdENvbnN0cnVj
dG9yOjpuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4gb2JqZWN0VGVt
cGxhdGUpCi17Ci0gICAgaWYgKG9iamVjdFRlbXBsYXRlLklzRW1wdHkoKSkKLSAgICAgICAgcmV0
dXJuIHY4OjpMb2NhbDx2ODo6T2JqZWN0PigpOwotICAgIENvbnN0cnVjdG9yTW9kZSBjb25zdHJ1
Y3Rvck1vZGU7Ci0gICAgVjhSZWN1cnNpb25TY29wZTo6TWljcm90YXNrU3VwcHJlc3Npb24gc2Nv
cGU7Ci0gICAgcmV0dXJuIG9iamVjdFRlbXBsYXRlLT5OZXdJbnN0YW5jZSgpOwotfQotCi12ODo6
TG9jYWw8djg6Ok9iamVjdD4gVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2Uodjg6Okhh
bmRsZTx2ODo6RnVuY3Rpb24+IGZ1bmN0aW9uLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IGFyZ3ZbXSkKLXsKLSAgICBpZiAoZnVuY3Rpb24uSXNFbXB0eSgpKQotICAgICAgICByZXR1
cm4gdjg6OkxvY2FsPHY4OjpPYmplY3Q+KCk7Ci0gICAgQ29uc3RydWN0b3JNb2RlIGNvbnN0cnVj
dG9yTW9kZTsKLSAgICBWOFJlY3Vyc2lvblNjb3BlOjpNaWNyb3Rhc2tTdXBwcmVzc2lvbiBzY29w
ZTsKLSAgICByZXR1cm4gZnVuY3Rpb24tPk5ld0luc3RhbmNlKGFyZ2MsIGFyZ3YpOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBWOE9iamVjdENvbnN0cnVjdG9yX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKaW5kZXggYWIyNzNhZWQwZjU3ODUx
YjFhMjMxZTk4NmQzZmMyMDU1MjAwZDgzOC4uOWQ5MTliNmZjMmRlMzQxMzY1NzM4MWRkMzIxMzRh
MzBhYTI4NmQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKQEAgLTEw
NSwxMyArMTA1LDYgQEAgdm9pZCBWOFByb3h5OjpyZXBvcnRVbnNhZmVBY2Nlc3NUbyhEb2N1bWVu
dCogdGFyZ2V0RG9jdW1lbnQpCiAgICAgc291cmNlRG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdl
KEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBzdHIs
IHN0YWNrVHJhY2UucmVsZWFzZSgpKTsKIH0KIAotc3RhdGljIHZvaWQgaGFuZGxlRmF0YWxFcnJv
ckluVjgoKQotewotICAgIC8vIEZJWE1FOiBXZSB0ZW1wb3JhcmlseSBkZWFsIHdpdGggVjggaW50
ZXJuYWwgZXJyb3Igc2l0dWF0aW9ucwotICAgIC8vIHN1Y2ggYXMgb3V0LW9mLW1lbW9yeSBieSBj
cmFzaGluZyB0aGUgcmVuZGVyZXIuCi0gICAgQ1JBU0goKTsKLX0KLQogc3RhdGljIHY4OjpMb2Nh
bDx2ODo6VmFsdWU+IGhhbmRsZU1heFJlY3Vyc2lvbkRlcHRoRXhjZWVkZWQoKQogewogICAgIHRo
cm93RXJyb3IoUmFuZ2VFcnJvciwgIk1heGltdW0gY2FsbCBzdGFjayBzaXplIGV4Y2VlZGVkLiIp
OwpAQCAtMjYyLDkgKzI1NSw3IEBAIHY4OjpMb2NhbDx2ODo6VmFsdWU+IFY4UHJveHk6OnJ1blNj
cmlwdCh2ODo6SGFuZGxlPHY4OjpTY3JpcHQ+IHNjcmlwdCkKICAgICBpZiAocmVzdWx0LklzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6VmFsdWU+KCk7CiAKLSAgICBpZiAo
djg6OlY4OjpJc0RlYWQoKSkKLSAgICAgICAgaGFuZGxlRmF0YWxFcnJvckluVjgoKTsKLQorICAg
IGNyYXNoSWZWOElzRGVhZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTMyNywzMCAr
MzE4LDcgQEAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gVjhQcm94eTo6aW5zdHJ1bWVudGVkQ2FsbEZ1
bmN0aW9uKEZyYW1lKiBmcmFtZSwgdjg6OkhhbmRsZTwKICAgICB9CiAKICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZENhbGxGdW5jdGlvbihjb29raWUpOwotCi0gICAgaWYgKHY4OjpW
ODo6SXNEZWFkKCkpCi0gICAgICAgIGhhbmRsZUZhdGFsRXJyb3JJblY4KCk7Ci0KLSAgICByZXR1
cm4gcmVzdWx0OwotfQotCi12ODo6TG9jYWw8djg6OlZhbHVlPiBWOFByb3h5OjpuZXdJbnN0YW5j
ZSh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4gY29uc3RydWN0b3IsIGludCBhcmdjLCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gYXJnc1tdKQotewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRS
QUNFX0VWRU5UMCgidjgiLCAidjgubmV3SW5zdGFuY2UiKTsKLSNlbmRpZgotCi0gICAgLy8gTm8g
YXJ0aWZpY2lhbCBsaW1pdGF0aW9ucyBvbiB0aGUgZGVwdGggb2YgcmVjdXJzaW9uLCBzZWUgY29t
bWVudCBpbgotICAgIC8vIFY4UHJveHk6OmNhbGxGdW5jdGlvbi4KLSAgICB2ODo6TG9jYWw8djg6
OlZhbHVlPiByZXN1bHQ7Ci0gICAgewotICAgICAgICBWOFJlY3Vyc2lvblNjb3BlIHJlY3Vyc2lv
blNjb3BlKGZyYW1lKCkgPyBmcmFtZSgpLT5kb2N1bWVudCgpIDogMCk7Ci0gICAgICAgIHJlc3Vs
dCA9IGNvbnN0cnVjdG9yLT5OZXdJbnN0YW5jZShhcmdjLCBhcmdzKTsKLSAgICB9Ci0KLSAgICBp
ZiAodjg6OlY4OjpJc0RlYWQoKSkKLSAgICAgICAgaGFuZGxlRmF0YWxFcnJvckluVjgoKTsKLQor
ICAgIGNyYXNoSWZWOElzRGVhZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>