<?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>27954</bug_id>
          
          <creation_ts>2009-08-03 14:44:26 -0700</creation_ts>
          <short_desc>[Chromium] Make it possible for FileSystem routines to work when outside the sandbox.</short_desc>
          <delta_ts>2009-08-03 18:09:08 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dumi</cc>
    
    <cc>fishd</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>136786</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-08-03 14:44:26 -0700</bug_when>
    <thetext>We can no longer assume that WebKit is always run within a sandbox.  Code running in the browser process should not use the VFS.  File system operations should be implementable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136790</commentid>
    <comment_count>1</comment_count>
      <attachid>34005</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-08-03 14:50:24 -0700</bug_when>
    <thetext>Created attachment 34005
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136861</commentid>
    <comment_count>2</comment_count>
      <attachid>34029</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-08-03 17:23:09 -0700</bug_when>
    <thetext>Created attachment 34029
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136865</commentid>
    <comment_count>3</comment_count>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2009-08-03 17:34:08 -0700</bug_when>
    <thetext>LGTM.

Minor: add NOTREACHED()s to SQLiteFileSystemChromium{Mac,Linux}.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136866</commentid>
    <comment_count>4</comment_count>
      <attachid>34030</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-08-03 17:36:31 -0700</bug_when>
    <thetext>Created attachment 34030
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136874</commentid>
    <comment_count>5</comment_count>
      <attachid>34030</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-08-03 17:44:58 -0700</bug_when>
    <thetext>Comment on attachment 34030
Patch v1

&gt; Index: WebCore/platform/chromium/ChromiumBridge.h
...
&gt;          // File ---------------------------------------------------------------
&gt; -        static bool getFileSize(const String&amp; path, long long&amp; result);
&gt; +        static bool sandboxEnabled();

I think sandboxEnabled is not specific to file system stuff.  How about putting
this in a separate section?


&gt; Index: WebCore/platform/sql/chromium/SQLiteFileSystemChromiumLinux.cpp
...
&gt;      // stub for registering Chromium&apos;s SQLite VFS for Linux
&gt; +    ASSERT_NOT_REACHED();

Isn&apos;t notImplemented() more correct?


&gt; Index: WebCore/platform/sql/chromium/SQLiteFileSystemChromiumMac.cpp
...
&gt;      // stub for registering Chromium&apos;s SQLite VFS for Mac
&gt; +    ASSERT_NOT_REACHED();

ditto


&gt; Index: WebCore/platform/sql/chromium/SQLiteFileSystemChromiumWin.cpp
...
&gt; +    // FIXME: Make sure there aren&apos;t any unintended consequences when VFS code is called in the browser process.
&gt; +    if (!ChromiumBridge::sandboxEnabled()) {
&gt; +        ASSERT_NOT_REACHED();
&gt; +        return;
&gt; +    }

notImplemented?


These issues aren&apos;t major, so R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136875</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-08-03 17:51:54 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 34030 [details])
&gt; &gt; Index: WebCore/platform/chromium/ChromiumBridge.h
&gt; ...
&gt; &gt;          // File ---------------------------------------------------------------
&gt; &gt; -        static bool getFileSize(const String&amp; path, long long&amp; result);
&gt; &gt; +        static bool sandboxEnabled();
&gt; 
&gt; I think sandboxEnabled is not specific to file system stuff.  How about putting
&gt; this in a separate section?

I&apos;ll make this change.

&gt; &gt; Index: WebCore/platform/sql/chromium/SQLiteFileSystemChromiumLinux.cpp
&gt; ...
&gt; &gt;      // stub for registering Chromium&apos;s SQLite VFS for Linux
&gt; &gt; +    ASSERT_NOT_REACHED();
&gt; 
&gt; Isn&apos;t notImplemented() more correct?

Not really.  notImplemented is not very noisy.  In this case, if we&apos;re hitting that code, something is very wrong.

Either way, the code should be going away as Dumi completes the implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136880</commentid>
    <comment_count>7</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-08-03 18:09:08 -0700</bug_when>
    <thetext>Sending        WebCore/ChangeLog
Sending        WebCore/platform/chromium/ChromiumBridge.h
Sending        WebCore/platform/chromium/FileSystemChromium.cpp
Sending        WebCore/platform/sql/chromium/SQLiteFileSystemChromium.cpp
Sending        WebCore/platform/sql/chromium/SQLiteFileSystemChromiumLinux.cpp
Sending        WebCore/platform/sql/chromium/SQLiteFileSystemChromiumMac.cpp
Sending        WebCore/platform/sql/chromium/SQLiteFileSystemChromiumWin.cpp
Transmitting file data .......
Committed revision 46741.
http://trac.webkit.org/changeset/46741</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34005</attachid>
            <date>2009-08-03 14:50:24 -0700</date>
            <delta_ts>2009-08-03 17:22:42 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-27954-20090803145024.patch</filename>
            <type>text/plain</type>
            <size>11320</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjczMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMDktMDgtMDMgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q2hyb21pdW0gY29kZSBzb21ldGltZXMgaXNuJ3Qgc2FuZGJveGVkIGFuZCBuZWVkcyB0byBhY2Nl
c3MgdGhlIEZTLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjc5NTQKKworICAgICAgICBUaGVzZSBjaGFuZ2VzIGFyZSB0aGUgV2ViS2l0IHNpZGUgb2Yg
aHR0cDovL2NvZGVyZXZpZXcuY2hyb21pdW0ub3JnLzE1OTc3OCB3aGljaAorICAgICAgICBhaW1z
IHRvIG1ha2UgTG9jYWxTdG9yYWdlIHBlcnNpc3RlbnQuCisKKyAgICAgICAgVGhpcyBjaGFuZ2Ug
cnVucyBhbGwgRmlsZVN5c3RlbSByb3V0aW5lcyB0aHJvdWdoIHRoZSBDaHJvbWl1bUJyaWRnZSBz
byB0aGF0CisgICAgICAgIFdlYktpdENsaWVudHMgY2FuIGhhbmRsZSB0aGVtIGlmIHRoZXkgY2hv
b3NlIHRvLiAgRm9yIG5vdywgdGhlIG9ubHkgc3VjaCBjbGllbnQKKyAgICAgICAgd2lsbCBiZSB0
aGUgb25lIHJ1bm5pbmcgaW4gdGhlIGJyb3dzZXIgcHJvY2Vzcy4KKworICAgICAgICBJdCBhbHNv
IGFkZHMgYSBtZXRob2QgY2FsbGVkIHZmc0VuYWJsZWQgdGhhdCB0ZWxscyB0aGUgU1FMaXRlIGZp
bGUgc3lzdGVtIGNvZGUKKyAgICAgICAgd2hldGhlciBvciBub3QgdG8gdXNlIHRoZSBWRlMuICBJ
ZiBub3QsIGl0IGNhbGxzIHRoZSBvcmlnbmFsIGNvZGUuICBUaGUgd2F5IGl0CisgICAgICAgIGRv
ZXMgdGhpcyBpcyBhIGJpdCBoYWNreSBhbmQgZnJhZ2lsZSwgYnV0IGF0IGxlYXN0IGl0J2xsIGJl
IGxlc3MgbGlrZWx5IHRvIGJyZWFrCisgICAgICAgIGluIHN1YnRsZSB3YXlzIHRoYW4gaWYgd2Ug
Y29waWVkIHRoZSBvcmlnaW5hbCBjb2RlLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
Q2hyb21pdW1CcmlkZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9GaWxlU3lzdGVt
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlRmlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpkZWxldGVFbXB0eURpcmVjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpnZXRGaWxl
TW9kaWZpY2F0aW9uVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpkaXJlY3RvcnlOYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCk6CisgICAgICAgIChXZWJD
b3JlOjptYWtlQWxsRGlyZWN0b3JpZXMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUV4aXN0cyk6
CisgICAgICAgICogcGxhdGZvcm0vc3FsL2Nocm9taXVtL1NRTGl0ZUZpbGVTeXN0ZW1DaHJvbWl1
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVGaWxlU3lzdGVtOjpvcGVuRGF0YWJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRmlsZVN5c3RlbTo6Z2V0RmlsZU5hbWVGb3JOZXdE
YXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVGaWxlU3lzdGVtOjphcHBlbmREYXRh
YmFzZUZpbGVOYW1lVG9QYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZUZpbGVTeXN0ZW06
OmVuc3VyZURhdGFiYXNlRGlyZWN0b3J5RXhpc3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0
ZUZpbGVTeXN0ZW06OmVuc3VyZURhdGFiYXNlRmlsZUV4aXN0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpTUUxpdGVGaWxlU3lzdGVtOjpkZWxldGVFbXB0eURhdGFiYXNlRGlyZWN0b3J5KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNRTGl0ZUZpbGVTeXN0ZW06OmRlbGV0ZURhdGFiYXNlRmlsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTUUxpdGVGaWxlU3lzdGVtOjpnZXREYXRhYmFzZUZpbGVTaXplKToKKwog
MjAwOS0wOC0wMyAgSm9zZXBoIFBlY29yYXJvICA8am9lcGVjazAyQGdtYWlsLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCShyZXZpc2lvbiA0NjY0NSkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtODQs
NyArODQsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgdm9pZCBwcmVm
ZXRjaEROUyhjb25zdCBTdHJpbmcmIGhvc3RuYW1lKTsKIAogICAgICAgICAvLyBGaWxlIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotICAgICAgICBzdGF0aWMgYm9vbCBnZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcmIHBhdGgsIGxv
bmcgbG9uZyYgcmVzdWx0KTsKKyAgICAgICAgc3RhdGljIGJvb2wgZmlsZUV4aXN0cyhjb25zdCBT
dHJpbmcmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlRmlsZShjb25zdCBTdHJpbmcmKTsK
KyAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlRW1wdHlEaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7
CisgICAgICAgIHN0YXRpYyBib29sIGdldEZpbGVTaXplKGNvbnN0IFN0cmluZyYsIGxvbmcgbG9u
ZyYgcmVzdWx0KTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0RmlsZU1vZGlmaWNhdGlvblRpbWUo
Y29uc3QgU3RyaW5nJiwgdGltZV90JiByZXN1bHQpOworICAgICAgICBzdGF0aWMgU3RyaW5nIGRp
cmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJiBwYXRoKTsKKyAgICAgICAgc3RhdGljIFN0cmluZyBw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcm
IGNvbXBvbmVudCk7CisgICAgICAgIHN0YXRpYyBib29sIG1ha2VBbGxEaXJlY3Rvcmllcyhjb25z
dCBTdHJpbmcmIHBhdGgpOwogCiAgICAgICAgIC8vIEZvbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjaWYgUExBVEZPUk0o
V0lOX09TKQpAQCAtOTYsNiArMTAzLDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAg
ICAvLyBGb3JtcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogICAgICAgICBzdGF0aWMgdm9pZCBub3RpZnlGb3JtU3RhdGVDaGFu
Z2VkKGNvbnN0IERvY3VtZW50Kik7CisgICAgICAgIAorICAgICAgICAvLyBIVE1MNSBEQiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
I2lmIEVOQUJMRShEQVRBQkFTRSkKKyAgICAgICAgc3RhdGljIGJvb2wgdmZzRW5hYmxlZCgpOwor
ICAgICAgICBzdGF0aWMgUGxhdGZvcm1GaWxlSGFuZGxlIGRhdGFiYXNlT3BlbkZpbGUoY29uc3Qg
U3RyaW5nJiBmaWxlTmFtZSwgaW50IGRlc2lyZWRGbGFncyk7CisgICAgICAgIHN0YXRpYyBib29s
IGRhdGFiYXNlRGVsZXRlRmlsZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKKyAgICAgICAgc3Rh
dGljIGxvbmcgZGF0YWJhc2VHZXRGaWxlQXR0cmlidXRlcyhjb25zdCBTdHJpbmcmIGZpbGVOYW1l
KTsKKyAgICAgICAgc3RhdGljIGxvbmcgbG9uZyBkYXRhYmFzZUdldEZpbGVTaXplKGNvbnN0IFN0
cmluZyYgZmlsZU5hbWUpOworI2VuZGlmCiAKICAgICAgICAgLy8gSmF2YVNjcmlwdCAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAg
ICAgc3RhdGljIHZvaWQgbm90aWZ5SlNPdXRPZk1lbW9yeShGcmFtZSopOwpAQCAtMTc4LDI1ICsx
OTQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIFdpZGdldCAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAg
ICAgIHN0YXRpYyB2b2lkIHdpZGdldFNldEN1cnNvcihXaWRnZXQqLCBjb25zdCBDdXJzb3ImKTsK
ICAgICAgICAgc3RhdGljIHZvaWQgd2lkZ2V0U2V0Rm9jdXMoV2lkZ2V0Kik7Ci0KLSAgICAgICAg
Ly8gSFRNTDUgREIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLQotI2lmIEVOQUJMRShEQVRBQkFTRSkKLSAgICAgICAgLy8gT3BlbnMg
YSBkYXRhYmFzZSBmaWxlCi0gICAgICAgIC8vICdkZXNpcmVkRmxhZ3MnIGlzIGEgY29sbGVjdGlv
biBvZiBPUidkIFNRTGl0ZSBjb25zdGFudHMgdGhhdAotICAgICAgICAvLyBkZXRlcm1pbmUgaG93
IHRoZSBmaWxlIHNob3VsZCBiZSBvcGVuZWQKLSAgICAgICAgc3RhdGljIFBsYXRmb3JtRmlsZUhh
bmRsZSBkYXRhYmFzZU9wZW5GaWxlKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGludCBkZXNpcmVk
RmxhZ3MpOwotCi0gICAgICAgIC8vIERlbGV0ZXMgYSBkYXRhYmFzZSBmaWxlCi0gICAgICAgIC8v
IFJldHVybnMgJ3RydWUnIGlmIHRoZSBmaWxlIHdhcyBkZWxldGVkOyAnZmFsc2UnIG90aGVyd2lz
ZQotICAgICAgICBzdGF0aWMgYm9vbCBkYXRhYmFzZURlbGV0ZUZpbGUoY29uc3QgU3RyaW5nJiBm
aWxlTmFtZSk7Ci0KLSAgICAgICAgLy8gUmV0dXJucyB0aGUgZmlsZSBhdHRyaWJ1dGVzIG9mIHRo
ZSBnaXZlbiBkYXRhYmFzZSBmaWxlCi0gICAgICAgIHN0YXRpYyBsb25nIGRhdGFiYXNlR2V0Rmls
ZUF0dHJpYnV0ZXMoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7Ci0KLSAgICAgICAgLy8gUmV0dXJu
cyBzaXplIG9mIHRoZSBnaXZlbiBmaWxlCi0gICAgICAgIHN0YXRpYyBsb25nIGxvbmcgZGF0YWJh
c2VHZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKLSNlbmRpZgogICAgIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
RmlsZVN5c3RlbUNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAJKHJldmlzaW9uIDQ2NjQ1KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9GaWxlU3lzdGVtQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNywxNiArMzcsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29sIGRlbGV0
ZUZpbGUoY29uc3QgU3RyaW5nJikKK2Jvb2wgZGVsZXRlRmlsZShjb25zdCBTdHJpbmcmIHBhdGgp
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IENocm9taXVtQnJpZGdlOjpkZWxldGVGaWxlKHBhdGgpOwogfQogCi1ib29sIGRlbGV0ZUVtcHR5
RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYpCitib29sIGRlbGV0ZUVtcHR5RGlyZWN0b3J5KGNvbnN0
IFN0cmluZyYgcGF0aCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6OmRlbGV0ZUVtcHR5RGlyZWN0b3J5KHBhdGgp
OwogfQogCiBib29sIGdldEZpbGVTaXplKGNvbnN0IFN0cmluZyYgcGF0aCwgbG9uZyBsb25nJiBy
ZXN1bHQpCkBAIC01NCwzNCArNTIsMjkgQEAgYm9vbCBnZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcm
IHBhdGgsIGxvbgogICAgIHJldHVybiBDaHJvbWl1bUJyaWRnZTo6Z2V0RmlsZVNpemUocGF0aCwg
cmVzdWx0KTsKIH0KIAotYm9vbCBnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShjb25zdCBTdHJpbmcm
LCB0aW1lX3QmIHJlc3VsdCkKK2Jvb2wgZ2V0RmlsZU1vZGlmaWNhdGlvblRpbWUoY29uc3QgU3Ry
aW5nJiBwYXRoLCB0aW1lX3QmIHJlc3VsdCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6OmdldEZpbGVNb2RpZmlj
YXRpb25UaW1lKHBhdGgsIHJlc3VsdCk7CiB9CiAKLVN0cmluZyBkaXJlY3RvcnlOYW1lKGNvbnN0
IFN0cmluZyYpCitTdHJpbmcgZGlyZWN0b3J5TmFtZShjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIENo
cm9taXVtQnJpZGdlOjpkaXJlY3RvcnlOYW1lKHBhdGgpOwogfQogCiBTdHJpbmcgcGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjb21wb25l
bnQpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7CisgICAg
cmV0dXJuIENocm9taXVtQnJpZGdlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgY29t
cG9uZW50KTsKIH0KIAogYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBwYXRo
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBDaHJvbWl1bUJyaWRnZTo6bWFrZUFsbERpcmVjdG9yaWVzKHBhdGgpOwogfQogCi1ib29sIGZp
bGVFeGlzdHMoY29uc3QgU3RyaW5nJikKK2Jvb2wgZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmIHBh
dGgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIENocm9taXVtQnJpZGdlOjpmaWxlRXhpc3RzKHBhdGgpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3NxbC9jaHJvbWl1bS9TUUxpdGVGaWxl
U3lzdGVtQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vc3FsL2No
cm9taXVtL1NRTGl0ZUZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAJKHJldmlzaW9uIDQ2NjQ1KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsMTMgQEAKICNpbmNsdWRlICJTUUxpdGVEYXRh
YmFzZS5oIgogI2luY2x1ZGUgPHNxbGl0ZTMuaD4KIAorLy8gSGFjayBzbyB3ZSBjYW4gaW5jbHVk
ZSB0aGUgb3JpZ2luYWwgU1FMaXRlRmlsZVN5c3RlbSBjb2RlIHRoYXQgaXMgdXNlZCB3aGVuIHdl
J3JlIG5vdCBydW5uaW5nIGluIGEgc2FuZGJveC4KKyNkZWZpbmUgU1FMaXRlRmlsZVN5c3RlbSBP
cmlnaW5hbFNRTGl0ZUZpbGVTeXN0ZW0KKyN1bmRlZiBTUUxpdGVGaWxlU3lzdGVtX2gKKyNpbmNs
dWRlICJTUUxpdGVGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiU1FMaXRlRmlsZVN5c3RlbS5jcHAi
CisjdW5kZWYgU1FMaXRlRmlsZVN5c3RlbQorCiAjaWZuZGVmIFNRTElURV9PUEVOX0ZVTExNVVRF
WAogI2RlZmluZSBTUUxJVEVfT1BFTl9GVUxMTVVURVggMHgwMDAxMDAwMAogI2VuZGlmCkBAIC01
MCw0MyArNTcsNjAgQEAgU1FMaXRlRmlsZVN5c3RlbTo6U1FMaXRlRmlsZVN5c3RlbSgpCiAKIGlu
dCBTUUxpdGVGaWxlU3lzdGVtOjpvcGVuRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwg
c3FsaXRlMyoqIGRhdGFiYXNlKQogeworICAgIGlmICghQ2hyb21pdW1CcmlkZ2U6OnZmc0VuYWJs
ZWQoKSkKKyAgICAgICAgcmV0dXJuIE9yaWdpbmFsU1FMaXRlRmlsZVN5c3RlbTo6b3BlbkRhdGFi
YXNlKGZpbGVOYW1lLCBkYXRhYmFzZSk7CisKICAgICAvLyBvcGVuIGRhdGFiYXNlcyB1c2luZyBD
aHJvbWl1bSdzIFZGUwogICAgIHJldHVybiBzcWxpdGUzX29wZW5fdjIoZmlsZU5hbWUudXRmOCgp
LmRhdGEoKSwgZGF0YWJhc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUUxJVEVfT1BF
Tl9SRUFEV1JJVEUgfCBTUUxJVEVfT1BFTl9DUkVBVEUgfCBTUUxJVEVfT1BFTl9GVUxMTVVURVgs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2hyb21pdW1fdmZzIik7CiB9CiAKLVN0cmlu
ZyBTUUxpdGVGaWxlU3lzdGVtOjpnZXRGaWxlTmFtZUZvck5ld0RhdGFiYXNlKAotICBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIGRiTmFtZSwgY29uc3QgU3RyaW5nICZvcmlnaW5JZGVudGlm
aWVyLCBTUUxpdGVEYXRhYmFzZSopCitTdHJpbmcgU1FMaXRlRmlsZVN5c3RlbTo6Z2V0RmlsZU5h
bWVGb3JOZXdEYXRhYmFzZShjb25zdCBTdHJpbmcmIGRiRGlyLCBjb25zdCBTdHJpbmcmIGRiTmFt
ZSwgY29uc3QgU3RyaW5nICZvcmlnaW5JZGVudGlmaWVyLCBTUUxpdGVEYXRhYmFzZSogZGF0YWJh
c2UpCiB7CisgICAgaWYgKCFDaHJvbWl1bUJyaWRnZTo6dmZzRW5hYmxlZCgpKQorICAgICAgICBy
ZXR1cm4gT3JpZ2luYWxTUUxpdGVGaWxlU3lzdGVtOjpnZXRGaWxlTmFtZUZvck5ld0RhdGFiYXNl
KGRiRGlyLCBkYk5hbWUsIG9yaWdpbklkZW50aWZpZXIsIGRhdGFiYXNlKTsKKwogICAgIC8vIENo
cm9taXVtIG5hbWVzIERCIGZpbGVzIGJhc2VkIG9uIG9yaWdpbiBhbmQgREIgbmFtZSBvbmx5CiAg
ICAgcmV0dXJuIG9yaWdpbklkZW50aWZpZXIgKyAiXyIgKyBkYk5hbWUgKyAiLmRiIjsKIH0KIAot
U3RyaW5nIFNRTGl0ZUZpbGVTeXN0ZW06OmFwcGVuZERhdGFiYXNlRmlsZU5hbWVUb1BhdGgoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSkKK1N0cmluZyBTUUxpdGVGaWxlU3lz
dGVtOjphcHBlbmREYXRhYmFzZUZpbGVOYW1lVG9QYXRoKGNvbnN0IFN0cmluZyYgcGF0aCwgY29u
c3QgU3RyaW5nJiBmaWxlTmFtZSkKIHsKKyAgICBpZiAoIUNocm9taXVtQnJpZGdlOjp2ZnNFbmFi
bGVkKCkpCisgICAgICAgIHJldHVybiBPcmlnaW5hbFNRTGl0ZUZpbGVTeXN0ZW06OmFwcGVuZERh
dGFiYXNlRmlsZU5hbWVUb1BhdGgocGF0aCwgZmlsZU5hbWUpOworCiAgICAgLy8gQ2hyb21pdW0g
c2F2ZXMgYWxsIERCIGZpbGVzIGluIHRoZSBzYW1lIGRpcmVjdG9yeSAoa25vd24gYnkKICAgICAv
LyB0aGUgYnJvd3NlciBwcm9jZXNzIG9ubHkpOyBhcyBmYXIgYXMgdGhlIHJlbmRlcmVyIHByb2Nl
c3NlcwogICAgIC8vIGFyZSBjb25jZXJuZWQsIGFsbCBEQiBmaWxlcyBhcmUgc2F2ZWQgaW4gdGhl
ICJjdXJyZW50IiBkaXJlY3RvcnkKICAgICByZXR1cm4gZmlsZU5hbWU7CiB9CiAKLWJvb2wgU1FM
aXRlRmlsZVN5c3RlbTo6ZW5zdXJlRGF0YWJhc2VEaXJlY3RvcnlFeGlzdHMoY29uc3QgU3RyaW5n
JikKK2Jvb2wgU1FMaXRlRmlsZVN5c3RlbTo6ZW5zdXJlRGF0YWJhc2VEaXJlY3RvcnlFeGlzdHMo
Y29uc3QgU3RyaW5nJiBwYXRoKQogeworICAgIGlmICghQ2hyb21pdW1CcmlkZ2U6OnZmc0VuYWJs
ZWQoKSkKKyAgICAgICAgcmV0dXJuIE9yaWdpbmFsU1FMaXRlRmlsZVN5c3RlbTo6ZW5zdXJlRGF0
YWJhc2VEaXJlY3RvcnlFeGlzdHMocGF0aCk7CisKICAgICAvLyBpZiB0aGUgZGlyZWN0b3J5IHdo
ZXJlIENocm9taXVtIHN0b3JlcyB0aGUgZGF0YWJhc2VzIGRvZXMgbm90IGV4aXN0LAogICAgIC8v
IGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBjcmVhdGVkIGJ5IHRoZSBicm93c2VyIHByb2Nlc3M7
CiAgICAgLy8gc28gYXMgZmFyIGFzIHRoZSBXZWJLaXQgY29kZSBpcyBjb25jZXJuZWQsIHRoaXMg
ZGlyZWN0b3J5IGFsd2F5cyBleGlzdHMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBTUUxp
dGVGaWxlU3lzdGVtOjplbnN1cmVEYXRhYmFzZUZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJiwgYm9v
bCkKK2Jvb2wgU1FMaXRlRmlsZVN5c3RlbTo6ZW5zdXJlRGF0YWJhc2VGaWxlRXhpc3RzKGNvbnN0
IFN0cmluZyYgZmlsZU5hbWUsIGJvb2wgY2hlY2tQYXRoT25seSkKIHsKKyAgICBpZiAoIUNocm9t
aXVtQnJpZGdlOjp2ZnNFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBPcmlnaW5hbFNRTGl0ZUZp
bGVTeXN0ZW06OmVuc3VyZURhdGFiYXNlRmlsZUV4aXN0cyhmaWxlTmFtZSwgY2hlY2tQYXRoT25s
eSk7CisKICAgICAvLyBhbGwgZGF0YWJhc2UgZGlyZWN0b3JpZXMgd2lsbCBiZSBjcmVhdGVkIGFz
IG5lZWRlZCBieSB0aGUgYnJvd3NlciBwcm9jZXNzCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgU1FMaXRlRmlsZVN5c3RlbTo6ZGVsZXRlRW1wdHlEYXRhYmFzZURpcmVjdG9yeShjb25zdCBT
dHJpbmcmKQorYm9vbCBTUUxpdGVGaWxlU3lzdGVtOjpkZWxldGVFbXB0eURhdGFiYXNlRGlyZWN0
b3J5KGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKKyAgICBpZiAoIUNocm9taXVtQnJpZGdlOjp2ZnNF
bmFibGVkKCkpCisgICAgICAgIHJldHVybiBPcmlnaW5hbFNRTGl0ZUZpbGVTeXN0ZW06OmRlbGV0
ZUVtcHR5RGF0YWJhc2VEaXJlY3RvcnkocGF0aCk7CisKICAgICAvLyBDaHJvbWl1bSBkb2VzIG5v
dCB1c2UgYSBzZXBhcmF0ZSBkaXJlY3RvcnkgZm9yIGVhY2ggZGF0YWJhc2UsCiAgICAgLy8gc28g
dGhlcmUncyBub3RoaW5nIHRvIGRvIGhlcmUKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTk0LDYgKzEx
OCw5IEBAIGJvb2wgU1FMaXRlRmlsZVN5c3RlbTo6ZGVsZXRlRW1wdHlEYXRhYmEKIAogYm9vbCBT
UUxpdGVGaWxlU3lzdGVtOjpkZWxldGVEYXRhYmFzZUZpbGUoY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSkKIHsKKyAgICBpZiAoIUNocm9taXVtQnJpZGdlOjp2ZnNFbmFibGVkKCkpCisgICAgICAgIHJl
dHVybiBPcmlnaW5hbFNRTGl0ZUZpbGVTeXN0ZW06OmRlbGV0ZURhdGFiYXNlRmlsZShmaWxlTmFt
ZSk7CisKICAgICAvLyByZXR1cm4gdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgZXJyb3IgY29kZSBy
ZXR1cm5lZCBieQogICAgIC8vIENocm9taXVtQnJpZGdlOjpkZWxldGVEYXRhYmFzZSgpIGlzIDAK
ICAgICByZXR1cm4gKCFDaHJvbWl1bUJyaWRnZTo6ZGF0YWJhc2VEZWxldGVGaWxlKGZpbGVOYW1l
KSk7CkBAIC0xMDEsNiArMTI4LDkgQEAgYm9vbCBTUUxpdGVGaWxlU3lzdGVtOjpkZWxldGVEYXRh
YmFzZUZpbAogCiBsb25nIGxvbmcgU1FMaXRlRmlsZVN5c3RlbTo6Z2V0RGF0YWJhc2VGaWxlU2l6
ZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lKQogeworICAgIGlmICghQ2hyb21pdW1CcmlkZ2U6OnZm
c0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIE9yaWdpbmFsU1FMaXRlRmlsZVN5c3RlbTo6Z2V0
RGF0YWJhc2VGaWxlU2l6ZShmaWxlTmFtZSk7CisKICAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6
OmRhdGFiYXNlR2V0RmlsZVNpemUoZmlsZU5hbWUpOwogfQ==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34029</attachid>
            <date>2009-08-03 17:23:09 -0700</date>
            <delta_ts>2009-08-03 17:36:07 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-27954-20090803172309.patch</filename>
            <type>text/plain</type>
            <size>7975</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjczOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMDktMDgtMDMgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q2hyb21pdW0gY29kZSBzb21ldGltZXMgaXNuJ3Qgc2FuZGJveGVkIGFuZCBuZWVkcyB0byBhY2Nl
c3MgdGhlIEZTLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjc5NTQKKworICAgICAgICBUaGVzZSBjaGFuZ2VzIGFyZSB0aGUgV2ViS2l0IHNpZGUgb2Yg
aHR0cDovL2NvZGVyZXZpZXcuY2hyb21pdW0ub3JnLzE1OTc3OCB3aGljaAorICAgICAgICBhaW1z
IHRvIG1ha2UgTG9jYWxTdG9yYWdlIHBlcnNpc3RlbnQuCisKKyAgICAgICAgVGhpcyBjaGFuZ2Ug
cnVucyBhbGwgRmlsZVN5c3RlbSByb3V0aW5lcyB0aHJvdWdoIHRoZSBDaHJvbWl1bUJyaWRnZSBz
byB0aGF0CisgICAgICAgIFdlYktpdENsaWVudHMgY2FuIGhhbmRsZSB0aGVtIGlmIHRoZXkgY2hv
b3NlIHRvLiAgRm9yIG5vdywgdGhlIG9ubHkgc3VjaCBjbGllbnQKKyAgICAgICAgd2lsbCBiZSB0
aGUgb25lIHJ1bm5pbmcgaW4gdGhlIGJyb3dzZXIgcHJvY2Vzcy4KKworICAgICAgICBJdCBhbHNv
IGFkZHMgYSBtZXRob2QgY2FsbGVkIHNhbmRib3hFbmFibGVkIHRvIHRoZSBDaHJvbWl1bSBicmlk
Z2Ugc28gdGhhdCB0aGUKKyAgICAgICAgU1FMaXRlIGZpbGUgc3lzdGVtIGNvZGUgY2FuIHNoaWZ0
IGl0cyBiZWhhdmlvciBkZXBlbmRpbmcgb24gd2hldGhlciB3ZSdyZQorICAgICAgICBpbnNpZGUg
YSBzYW5kYm94IG9yIG5vdC4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVt
QnJpZGdlLmg6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRmlsZVN5c3RlbUNocm9taXVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRlbGV0ZUZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6
ZGVsZXRlRW1wdHlEaXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RmlsZU1vZGlmaWNh
dGlvblRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6ZGlyZWN0b3J5TmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQpOgorICAgICAgICAoV2ViQ29yZTo6bWFr
ZUFsbERpcmVjdG9yaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVFeGlzdHMpOgorICAgICAg
ICAqIHBsYXRmb3JtL3NxbC9jaHJvbWl1bS9TUUxpdGVGaWxlU3lzdGVtQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRmlsZVN5c3RlbTo6b3BlbkRhdGFiYXNlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtV2luLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZUZpbGVTeXN0ZW06OnJlZ2lzdGVyU1FMaXRlVkZT
KToKKwogMjAwOS0wNy0yNyAgUGV0ZXIgS2FzdGluZyAgPHBrYXN0aW5nQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCShyZXZpc2lvbiA0NjY0NSkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtODQs
NyArODQsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgdm9pZCBwcmVm
ZXRjaEROUyhjb25zdCBTdHJpbmcmIGhvc3RuYW1lKTsKIAogICAgICAgICAvLyBGaWxlIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotICAgICAgICBzdGF0aWMgYm9vbCBnZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcmIHBhdGgsIGxv
bmcgbG9uZyYgcmVzdWx0KTsKKyAgICAgICAgc3RhdGljIGJvb2wgc2FuZGJveEVuYWJsZWQoKTsK
KyAgICAgICAgc3RhdGljIGJvb2wgZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmKTsKKyAgICAgICAg
c3RhdGljIGJvb2wgZGVsZXRlRmlsZShjb25zdCBTdHJpbmcmKTsKKyAgICAgICAgc3RhdGljIGJv
b2wgZGVsZXRlRW1wdHlEaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7CisgICAgICAgIHN0YXRpYyBi
b29sIGdldEZpbGVTaXplKGNvbnN0IFN0cmluZyYsIGxvbmcgbG9uZyYgcmVzdWx0KTsKKyAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0RmlsZU1vZGlmaWNhdGlvblRpbWUoY29uc3QgU3RyaW5nJiwgdGlt
ZV90JiByZXN1bHQpOworICAgICAgICBzdGF0aWMgU3RyaW5nIGRpcmVjdG9yeU5hbWUoY29uc3Qg
U3RyaW5nJiBwYXRoKTsKKyAgICAgICAgc3RhdGljIFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGNvbXBvbmVudCk7CisgICAg
ICAgIHN0YXRpYyBib29sIG1ha2VBbGxEaXJlY3Rvcmllcyhjb25zdCBTdHJpbmcmIHBhdGgpOwog
CiAgICAgICAgIC8vIEZvbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjaWYgUExBVEZPUk0oV0lOX09TKQpAQCAtOTYsNiAr
MTA0LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAvLyBGb3JtcyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
ICAgICAgICBzdGF0aWMgdm9pZCBub3RpZnlGb3JtU3RhdGVDaGFuZ2VkKGNvbnN0IERvY3VtZW50
Kik7CisgICAgICAgIAorICAgICAgICAvLyBIVE1MNSBEQiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI2lmIEVOQUJMRShEQVRBQkFT
RSkKKyAgICAgICAgc3RhdGljIFBsYXRmb3JtRmlsZUhhbmRsZSBkYXRhYmFzZU9wZW5GaWxlKGNv
bnN0IFN0cmluZyYgZmlsZU5hbWUsIGludCBkZXNpcmVkRmxhZ3MpOworICAgICAgICBzdGF0aWMg
Ym9vbCBkYXRhYmFzZURlbGV0ZUZpbGUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7CisgICAgICAg
IHN0YXRpYyBsb25nIGRhdGFiYXNlR2V0RmlsZUF0dHJpYnV0ZXMoY29uc3QgU3RyaW5nJiBmaWxl
TmFtZSk7CisgICAgICAgIHN0YXRpYyBsb25nIGxvbmcgZGF0YWJhc2VHZXRGaWxlU2l6ZShjb25z
dCBTdHJpbmcmIGZpbGVOYW1lKTsKKyNlbmRpZgogCiAgICAgICAgIC8vIEphdmFTY3JpcHQgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg
ICAgICAgIHN0YXRpYyB2b2lkIG5vdGlmeUpTT3V0T2ZNZW1vcnkoRnJhbWUqKTsKQEAgLTE3OCwy
NSArMTk0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBXaWRnZXQgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
ICAgICAgICBzdGF0aWMgdm9pZCB3aWRnZXRTZXRDdXJzb3IoV2lkZ2V0KiwgY29uc3QgQ3Vyc29y
Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHdpZGdldFNldEZvY3VzKFdpZGdldCopOwotCi0gICAg
ICAgIC8vIEhUTUw1IERCIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0KLSNpZiBFTkFCTEUoREFUQUJBU0UpCi0gICAgICAgIC8vIE9w
ZW5zIGEgZGF0YWJhc2UgZmlsZQotICAgICAgICAvLyAnZGVzaXJlZEZsYWdzJyBpcyBhIGNvbGxl
Y3Rpb24gb2YgT1InZCBTUUxpdGUgY29uc3RhbnRzIHRoYXQKLSAgICAgICAgLy8gZGV0ZXJtaW5l
IGhvdyB0aGUgZmlsZSBzaG91bGQgYmUgb3BlbmVkCi0gICAgICAgIHN0YXRpYyBQbGF0Zm9ybUZp
bGVIYW5kbGUgZGF0YWJhc2VPcGVuRmlsZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBpbnQgZGVz
aXJlZEZsYWdzKTsKLQotICAgICAgICAvLyBEZWxldGVzIGEgZGF0YWJhc2UgZmlsZQotICAgICAg
ICAvLyBSZXR1cm5zICd0cnVlJyBpZiB0aGUgZmlsZSB3YXMgZGVsZXRlZDsgJ2ZhbHNlJyBvdGhl
cndpc2UKLSAgICAgICAgc3RhdGljIGJvb2wgZGF0YWJhc2VEZWxldGVGaWxlKGNvbnN0IFN0cmlu
ZyYgZmlsZU5hbWUpOwotCi0gICAgICAgIC8vIFJldHVybnMgdGhlIGZpbGUgYXR0cmlidXRlcyBv
ZiB0aGUgZ2l2ZW4gZGF0YWJhc2UgZmlsZQotICAgICAgICBzdGF0aWMgbG9uZyBkYXRhYmFzZUdl
dEZpbGVBdHRyaWJ1dGVzKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpOwotCi0gICAgICAgIC8vIFJl
dHVybnMgc2l6ZSBvZiB0aGUgZ2l2ZW4gZmlsZQotICAgICAgICBzdGF0aWMgbG9uZyBsb25nIGRh
dGFiYXNlR2V0RmlsZVNpemUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7Ci0jZW5kaWYKICAgICB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9GaWxlU3lzdGVtQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA0NjY0NSkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRmlsZVN5c3RlbUNocm9taXVtLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzcsMTYgKzM3LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBk
ZWxldGVGaWxlKGNvbnN0IFN0cmluZyYpCitib29sIGRlbGV0ZUZpbGUoY29uc3QgU3RyaW5nJiBw
YXRoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiBDaHJvbWl1bUJyaWRnZTo6ZGVsZXRlRmlsZShwYXRoKTsKIH0KIAotYm9vbCBkZWxldGVF
bXB0eURpcmVjdG9yeShjb25zdCBTdHJpbmcmKQorYm9vbCBkZWxldGVFbXB0eURpcmVjdG9yeShj
b25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
ZmFsc2U7CisgICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjpkZWxldGVFbXB0eURpcmVjdG9yeShw
YXRoKTsKIH0KIAogYm9vbCBnZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcmIHBhdGgsIGxvbmcgbG9u
ZyYgcmVzdWx0KQpAQCAtNTQsMzQgKzUyLDI5IEBAIGJvb2wgZ2V0RmlsZVNpemUoY29uc3QgU3Ry
aW5nJiBwYXRoLCBsb24KICAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6OmdldEZpbGVTaXplKHBh
dGgsIHJlc3VsdCk7CiB9CiAKLWJvb2wgZ2V0RmlsZU1vZGlmaWNhdGlvblRpbWUoY29uc3QgU3Ry
aW5nJiwgdGltZV90JiByZXN1bHQpCitib29sIGdldEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0
IFN0cmluZyYgcGF0aCwgdGltZV90JiByZXN1bHQpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjpnZXRGaWxlTW9k
aWZpY2F0aW9uVGltZShwYXRoLCByZXN1bHQpOwogfQogCi1TdHJpbmcgZGlyZWN0b3J5TmFtZShj
b25zdCBTdHJpbmcmKQorU3RyaW5nIGRpcmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJiBwYXRoKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVy
biBDaHJvbWl1bUJyaWRnZTo6ZGlyZWN0b3J5TmFtZShwYXRoKTsKIH0KIAogU3RyaW5nIHBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29t
cG9uZW50KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwor
ICAgIHJldHVybiBDaHJvbWl1bUJyaWRnZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHBhdGgs
IGNvbXBvbmVudCk7CiB9CiAKIGJvb2wgbWFrZUFsbERpcmVjdG9yaWVzKGNvbnN0IFN0cmluZyYg
cGF0aCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gQ2hyb21pdW1CcmlkZ2U6Om1ha2VBbGxEaXJlY3RvcmllcyhwYXRoKTsKIH0KIAotYm9v
bCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYpCitib29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5n
JiBwYXRoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBDaHJvbWl1bUJyaWRnZTo6ZmlsZUV4aXN0cyhwYXRoKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRl
RmlsZVN5c3RlbUNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3Nx
bC9jaHJvbWl1bS9TUUxpdGVGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA0NjY0NSkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vc3FsL2Nocm9taXVtL1NRTGl0ZUZpbGVTeXN0ZW1DaHJvbWl1
bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDExIEBAIFNRTGl0ZUZpbGVTeXN0ZW06
OlNRTGl0ZUZpbGVTeXN0ZW0oKQogCiBpbnQgU1FMaXRlRmlsZVN5c3RlbTo6b3BlbkRhdGFiYXNl
KGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHNxbGl0ZTMqKiBkYXRhYmFzZSkKIHsKKyAgICBpZiAo
IUNocm9taXVtQnJpZGdlOjpzYW5kYm94RW5hYmxlZCgpKSB7CisgICAgICAgIFN0cmluZyBwYXRo
ID0gZmlsZU5hbWU7CisgICAgICAgIHJldHVybiBzcWxpdGUzX29wZW4xNihwYXRoLmNoYXJhY3Rl
cnNXaXRoTnVsbFRlcm1pbmF0aW9uKCksIGRhdGFiYXNlKTsKKyAgICB9CisKICAgICAvLyBvcGVu
IGRhdGFiYXNlcyB1c2luZyBDaHJvbWl1bSdzIFZGUwogICAgIHJldHVybiBzcWxpdGUzX29wZW5f
djIoZmlsZU5hbWUudXRmOCgpLmRhdGEoKSwgZGF0YWJhc2UsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTUUxJVEVfT1BFTl9SRUFEV1JJVEUgfCBTUUxJVEVfT1BFTl9DUkVBVEUgfCBTUUxJ
VEVfT1BFTl9GVUxMTVVURVgsCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3NxbC9jaHJvbWl1bS9T
UUxpdGVGaWxlU3lzdGVtQ2hyb21pdW1XaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vc3FsL2Nocm9taXVtL1NRTGl0ZUZpbGVTeXN0ZW1DaHJvbWl1bVdpbi5jcHAJKHJldmlz
aW9uIDQ2NjQ1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5
c3RlbUNocm9taXVtV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQzLDYgKzE0MywxMiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgU1FMaXRlRmlsZVN5c3RlbTo6cmVnaXN0ZXJTUUxp
dGVWRlMoKQogeworICAgIC8vIEZJWE1FOiBNYWtlIHN1cmUgdGhlcmUgYXJlbid0IGFueSB1bmlu
dGVuZGVkIGNvbnNlcXVlbmNlcyB3aGVuIFZGUyBjb2RlIGlzIGNhbGxlZCBpbiB0aGUgYnJvd3Nl
ciBwcm9jZXNzLgorICAgIGlmICghQ2hyb21pdW1CcmlkZ2U6OnNhbmRib3hFbmFibGVkKCkpIHsK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
ICAgICBzcWxpdGUzX3Zmcyogd2luMzJfdmZzID0gc3FsaXRlM192ZnNfZmluZCgid2luMzIiKTsK
ICAgICBzdGF0aWMgc3FsaXRlM192ZnMgY2hyb21pdW1fdmZzID0gewogICAgICAgICAxLA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34030</attachid>
            <date>2009-08-03 17:36:31 -0700</date>
            <delta_ts>2009-08-03 17:44:58 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-27954-20090803173630.patch</filename>
            <type>text/plain</type>
            <size>8985</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjczOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMDktMDgtMDMgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q2hyb21pdW0gY29kZSBzb21ldGltZXMgaXNuJ3Qgc2FuZGJveGVkIGFuZCBuZWVkcyB0byBhY2Nl
c3MgdGhlIEZTLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjc5NTQKKworICAgICAgICBUaGVzZSBjaGFuZ2VzIGFyZSB0aGUgV2ViS2l0IHNpZGUgb2Yg
aHR0cDovL2NvZGVyZXZpZXcuY2hyb21pdW0ub3JnLzE1OTc3OCB3aGljaAorICAgICAgICBhaW1z
IHRvIG1ha2UgTG9jYWxTdG9yYWdlIHBlcnNpc3RlbnQuCisKKyAgICAgICAgVGhpcyBjaGFuZ2Ug
cnVucyBhbGwgRmlsZVN5c3RlbSByb3V0aW5lcyB0aHJvdWdoIHRoZSBDaHJvbWl1bUJyaWRnZSBz
byB0aGF0CisgICAgICAgIFdlYktpdENsaWVudHMgY2FuIGhhbmRsZSB0aGVtIGlmIHRoZXkgY2hv
b3NlIHRvLiAgRm9yIG5vdywgdGhlIG9ubHkgc3VjaCBjbGllbnQKKyAgICAgICAgd2lsbCBiZSB0
aGUgb25lIHJ1bm5pbmcgaW4gdGhlIGJyb3dzZXIgcHJvY2Vzcy4KKworICAgICAgICBJdCBhbHNv
IGFkZHMgYSBtZXRob2QgY2FsbGVkIHNhbmRib3hFbmFibGVkIHRvIHRoZSBDaHJvbWl1bSBicmlk
Z2Ugc28gdGhhdCB0aGUKKyAgICAgICAgU1FMaXRlIGZpbGUgc3lzdGVtIGNvZGUgY2FuIHNoaWZ0
IGl0cyBiZWhhdmlvciBkZXBlbmRpbmcgb24gd2hldGhlciB3ZSdyZQorICAgICAgICBpbnNpZGUg
YSBzYW5kYm94IG9yIG5vdC4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVt
QnJpZGdlLmg6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRmlsZVN5c3RlbUNocm9taXVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRlbGV0ZUZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6
ZGVsZXRlRW1wdHlEaXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RmlsZU1vZGlmaWNh
dGlvblRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6ZGlyZWN0b3J5TmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQpOgorICAgICAgICAoV2ViQ29yZTo6bWFr
ZUFsbERpcmVjdG9yaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVFeGlzdHMpOgorICAgICAg
ICAqIHBsYXRmb3JtL3NxbC9jaHJvbWl1bS9TUUxpdGVGaWxlU3lzdGVtQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRmlsZVN5c3RlbTo6b3BlbkRhdGFiYXNlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtV2luLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZUZpbGVTeXN0ZW06OnJlZ2lzdGVyU1FMaXRlVkZT
KToKKwogMjAwOS0wNy0yNyAgUGV0ZXIgS2FzdGluZyAgPHBrYXN0aW5nQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCShyZXZpc2lvbiA0NjY0NSkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtODQs
NyArODQsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgdm9pZCBwcmVm
ZXRjaEROUyhjb25zdCBTdHJpbmcmIGhvc3RuYW1lKTsKIAogICAgICAgICAvLyBGaWxlIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotICAgICAgICBzdGF0aWMgYm9vbCBnZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcmIHBhdGgsIGxv
bmcgbG9uZyYgcmVzdWx0KTsKKyAgICAgICAgc3RhdGljIGJvb2wgc2FuZGJveEVuYWJsZWQoKTsK
KyAgICAgICAgc3RhdGljIGJvb2wgZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmKTsKKyAgICAgICAg
c3RhdGljIGJvb2wgZGVsZXRlRmlsZShjb25zdCBTdHJpbmcmKTsKKyAgICAgICAgc3RhdGljIGJv
b2wgZGVsZXRlRW1wdHlEaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7CisgICAgICAgIHN0YXRpYyBi
b29sIGdldEZpbGVTaXplKGNvbnN0IFN0cmluZyYsIGxvbmcgbG9uZyYgcmVzdWx0KTsKKyAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0RmlsZU1vZGlmaWNhdGlvblRpbWUoY29uc3QgU3RyaW5nJiwgdGlt
ZV90JiByZXN1bHQpOworICAgICAgICBzdGF0aWMgU3RyaW5nIGRpcmVjdG9yeU5hbWUoY29uc3Qg
U3RyaW5nJiBwYXRoKTsKKyAgICAgICAgc3RhdGljIFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGNvbXBvbmVudCk7CisgICAg
ICAgIHN0YXRpYyBib29sIG1ha2VBbGxEaXJlY3Rvcmllcyhjb25zdCBTdHJpbmcmIHBhdGgpOwog
CiAgICAgICAgIC8vIEZvbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjaWYgUExBVEZPUk0oV0lOX09TKQpAQCAtOTYsNiAr
MTA0LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAvLyBGb3JtcyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
ICAgICAgICBzdGF0aWMgdm9pZCBub3RpZnlGb3JtU3RhdGVDaGFuZ2VkKGNvbnN0IERvY3VtZW50
Kik7CisgICAgICAgIAorICAgICAgICAvLyBIVE1MNSBEQiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI2lmIEVOQUJMRShEQVRBQkFT
RSkKKyAgICAgICAgc3RhdGljIFBsYXRmb3JtRmlsZUhhbmRsZSBkYXRhYmFzZU9wZW5GaWxlKGNv
bnN0IFN0cmluZyYgZmlsZU5hbWUsIGludCBkZXNpcmVkRmxhZ3MpOworICAgICAgICBzdGF0aWMg
Ym9vbCBkYXRhYmFzZURlbGV0ZUZpbGUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7CisgICAgICAg
IHN0YXRpYyBsb25nIGRhdGFiYXNlR2V0RmlsZUF0dHJpYnV0ZXMoY29uc3QgU3RyaW5nJiBmaWxl
TmFtZSk7CisgICAgICAgIHN0YXRpYyBsb25nIGxvbmcgZGF0YWJhc2VHZXRGaWxlU2l6ZShjb25z
dCBTdHJpbmcmIGZpbGVOYW1lKTsKKyNlbmRpZgogCiAgICAgICAgIC8vIEphdmFTY3JpcHQgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg
ICAgICAgIHN0YXRpYyB2b2lkIG5vdGlmeUpTT3V0T2ZNZW1vcnkoRnJhbWUqKTsKQEAgLTE3OCwy
NSArMTk0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBXaWRnZXQgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
ICAgICAgICBzdGF0aWMgdm9pZCB3aWRnZXRTZXRDdXJzb3IoV2lkZ2V0KiwgY29uc3QgQ3Vyc29y
Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHdpZGdldFNldEZvY3VzKFdpZGdldCopOwotCi0gICAg
ICAgIC8vIEhUTUw1IERCIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0KLSNpZiBFTkFCTEUoREFUQUJBU0UpCi0gICAgICAgIC8vIE9w
ZW5zIGEgZGF0YWJhc2UgZmlsZQotICAgICAgICAvLyAnZGVzaXJlZEZsYWdzJyBpcyBhIGNvbGxl
Y3Rpb24gb2YgT1InZCBTUUxpdGUgY29uc3RhbnRzIHRoYXQKLSAgICAgICAgLy8gZGV0ZXJtaW5l
IGhvdyB0aGUgZmlsZSBzaG91bGQgYmUgb3BlbmVkCi0gICAgICAgIHN0YXRpYyBQbGF0Zm9ybUZp
bGVIYW5kbGUgZGF0YWJhc2VPcGVuRmlsZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBpbnQgZGVz
aXJlZEZsYWdzKTsKLQotICAgICAgICAvLyBEZWxldGVzIGEgZGF0YWJhc2UgZmlsZQotICAgICAg
ICAvLyBSZXR1cm5zICd0cnVlJyBpZiB0aGUgZmlsZSB3YXMgZGVsZXRlZDsgJ2ZhbHNlJyBvdGhl
cndpc2UKLSAgICAgICAgc3RhdGljIGJvb2wgZGF0YWJhc2VEZWxldGVGaWxlKGNvbnN0IFN0cmlu
ZyYgZmlsZU5hbWUpOwotCi0gICAgICAgIC8vIFJldHVybnMgdGhlIGZpbGUgYXR0cmlidXRlcyBv
ZiB0aGUgZ2l2ZW4gZGF0YWJhc2UgZmlsZQotICAgICAgICBzdGF0aWMgbG9uZyBkYXRhYmFzZUdl
dEZpbGVBdHRyaWJ1dGVzKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpOwotCi0gICAgICAgIC8vIFJl
dHVybnMgc2l6ZSBvZiB0aGUgZ2l2ZW4gZmlsZQotICAgICAgICBzdGF0aWMgbG9uZyBsb25nIGRh
dGFiYXNlR2V0RmlsZVNpemUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7Ci0jZW5kaWYKICAgICB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9GaWxlU3lzdGVtQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA0NjY0NSkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRmlsZVN5c3RlbUNocm9taXVtLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzcsMTYgKzM3LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBk
ZWxldGVGaWxlKGNvbnN0IFN0cmluZyYpCitib29sIGRlbGV0ZUZpbGUoY29uc3QgU3RyaW5nJiBw
YXRoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiBDaHJvbWl1bUJyaWRnZTo6ZGVsZXRlRmlsZShwYXRoKTsKIH0KIAotYm9vbCBkZWxldGVF
bXB0eURpcmVjdG9yeShjb25zdCBTdHJpbmcmKQorYm9vbCBkZWxldGVFbXB0eURpcmVjdG9yeShj
b25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
ZmFsc2U7CisgICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjpkZWxldGVFbXB0eURpcmVjdG9yeShw
YXRoKTsKIH0KIAogYm9vbCBnZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcmIHBhdGgsIGxvbmcgbG9u
ZyYgcmVzdWx0KQpAQCAtNTQsMzQgKzUyLDI5IEBAIGJvb2wgZ2V0RmlsZVNpemUoY29uc3QgU3Ry
aW5nJiBwYXRoLCBsb24KICAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6OmdldEZpbGVTaXplKHBh
dGgsIHJlc3VsdCk7CiB9CiAKLWJvb2wgZ2V0RmlsZU1vZGlmaWNhdGlvblRpbWUoY29uc3QgU3Ry
aW5nJiwgdGltZV90JiByZXN1bHQpCitib29sIGdldEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0
IFN0cmluZyYgcGF0aCwgdGltZV90JiByZXN1bHQpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjpnZXRGaWxlTW9k
aWZpY2F0aW9uVGltZShwYXRoLCByZXN1bHQpOwogfQogCi1TdHJpbmcgZGlyZWN0b3J5TmFtZShj
b25zdCBTdHJpbmcmKQorU3RyaW5nIGRpcmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJiBwYXRoKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVy
biBDaHJvbWl1bUJyaWRnZTo6ZGlyZWN0b3J5TmFtZShwYXRoKTsKIH0KIAogU3RyaW5nIHBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29t
cG9uZW50KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwor
ICAgIHJldHVybiBDaHJvbWl1bUJyaWRnZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHBhdGgs
IGNvbXBvbmVudCk7CiB9CiAKIGJvb2wgbWFrZUFsbERpcmVjdG9yaWVzKGNvbnN0IFN0cmluZyYg
cGF0aCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gQ2hyb21pdW1CcmlkZ2U6Om1ha2VBbGxEaXJlY3RvcmllcyhwYXRoKTsKIH0KIAotYm9v
bCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYpCitib29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5n
JiBwYXRoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBDaHJvbWl1bUJyaWRnZTo6ZmlsZUV4aXN0cyhwYXRoKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRl
RmlsZVN5c3RlbUNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3Nx
bC9jaHJvbWl1bS9TUUxpdGVGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA0NjY0NSkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vc3FsL2Nocm9taXVtL1NRTGl0ZUZpbGVTeXN0ZW1DaHJvbWl1
bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDExIEBAIFNRTGl0ZUZpbGVTeXN0ZW06
OlNRTGl0ZUZpbGVTeXN0ZW0oKQogCiBpbnQgU1FMaXRlRmlsZVN5c3RlbTo6b3BlbkRhdGFiYXNl
KGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHNxbGl0ZTMqKiBkYXRhYmFzZSkKIHsKKyAgICBpZiAo
IUNocm9taXVtQnJpZGdlOjpzYW5kYm94RW5hYmxlZCgpKSB7CisgICAgICAgIFN0cmluZyBwYXRo
ID0gZmlsZU5hbWU7CisgICAgICAgIHJldHVybiBzcWxpdGUzX29wZW4xNihwYXRoLmNoYXJhY3Rl
cnNXaXRoTnVsbFRlcm1pbmF0aW9uKCksIGRhdGFiYXNlKTsKKyAgICB9CisKICAgICAvLyBvcGVu
IGRhdGFiYXNlcyB1c2luZyBDaHJvbWl1bSdzIFZGUwogICAgIHJldHVybiBzcWxpdGUzX29wZW5f
djIoZmlsZU5hbWUudXRmOCgpLmRhdGEoKSwgZGF0YWJhc2UsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTUUxJVEVfT1BFTl9SRUFEV1JJVEUgfCBTUUxJVEVfT1BFTl9DUkVBVEUgfCBTUUxJ
VEVfT1BFTl9GVUxMTVVURVgsCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3NxbC9jaHJvbWl1bS9T
UUxpdGVGaWxlU3lzdGVtQ2hyb21pdW1MaW51eC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtTGludXguY3BwCShy
ZXZpc2lvbiA0NjY0NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vc3FsL2Nocm9taXVtL1NRTGl0ZUZp
bGVTeXN0ZW1DaHJvbWl1bUxpbnV4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB2b2lkIFNRTGl0ZUZpbGVTeXN0ZW06OnJlZ2lzdGVyU1FM
aXRlVkZTKCkKIHsKICAgICAvLyBzdHViIGZvciByZWdpc3RlcmluZyBDaHJvbWl1bSdzIFNRTGl0
ZSBWRlMgZm9yIExpbnV4CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vc3FsL2Nocm9taXVtL1NRTGl0
ZUZpbGVTeXN0ZW1DaHJvbWl1bU1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtTWFjLmNwcAkocmV2aXNpb24g
NDY2NDUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3NxbC9jaHJvbWl1bS9TUUxpdGVGaWxlU3lzdGVt
Q2hyb21pdW1NYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIHZvaWQgU1FMaXRlRmlsZVN5c3RlbTo6cmVnaXN0ZXJTUUxpdGVWRlMoKQog
ewogICAgIC8vIHN0dWIgZm9yIHJlZ2lzdGVyaW5nIENocm9taXVtJ3MgU1FMaXRlIFZGUyBmb3Ig
TWFjCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vc3FsL2Nocm9taXVtL1NRTGl0ZUZpbGVTeXN0ZW1D
aHJvbWl1bVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hyb21p
dW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtV2luLmNwcAkocmV2aXNpb24gNDY2NDUpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL3NxbC9jaHJvbWl1bS9TUUxpdGVGaWxlU3lzdGVtQ2hyb21pdW1XaW4u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsNiArMTQzLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogdm9pZCBTUUxpdGVGaWxlU3lzdGVtOjpyZWdpc3RlclNRTGl0ZVZGUygpCiB7CisgICAg
Ly8gRklYTUU6IE1ha2Ugc3VyZSB0aGVyZSBhcmVuJ3QgYW55IHVuaW50ZW5kZWQgY29uc2VxdWVu
Y2VzIHdoZW4gVkZTIGNvZGUgaXMgY2FsbGVkIGluIHRoZSBicm93c2VyIHByb2Nlc3MuCisgICAg
aWYgKCFDaHJvbWl1bUJyaWRnZTo6c2FuZGJveEVuYWJsZWQoKSkgeworICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIHNxbGl0ZTNfdmZz
KiB3aW4zMl92ZnMgPSBzcWxpdGUzX3Zmc19maW5kKCJ3aW4zMiIpOwogICAgIHN0YXRpYyBzcWxp
dGUzX3ZmcyBjaHJvbWl1bV92ZnMgPSB7CiAgICAgICAgIDEs
</data>
<flag name="review"
          id="18192"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>