<?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>16029</bug_id>
          
          <creation_ts>2007-11-17 12:08:59 -0800</creation_ts>
          <short_desc>JavaScriptCore.h is not suitable for platforms other than Mac OS X</short_desc>
          <delta_ts>2008-01-07 13:04:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>15687</blocked>
    
    <blocked>16032</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alp Toker">alp</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>61470</commentid>
    <comment_count>0</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-17 12:08:59 -0800</bug_when>
    <thetext>r21342 introduced JSStringRefCF.h to JavaScriptCore.h:

  http://trac.webkit.org/projects/webkit/changeset/21342

This breaks sources that include JavaScriptCore.h on platforms without CF.

&lt;rdar://problem/4885130&gt; mentions that the plan was to have applications include JSStringRefCF.h as needed, which sounds like the right thing to do, but r21342 goes against that.

I&apos;m investigating switching a couple of bindings from the C++ API to the new C API. This is the only issue that&apos;s come up so far.

It seems the most elegant solution would actually be to create a new top-level header, JavaScriptCoreCF.h, which includes CF-specific headers in addition to the portable JavaScriptCore.h. This does not represent an ABI break so I suspect it can be implemented right now with minimal disruption.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61486</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-11-17 15:18:53 -0800</bug_when>
    <thetext>JavaScriptCore.h is intended to be a Mac OS X only header -- the &quot;framework header&quot; that any Mac OS X framework has, which includes all its other headers. I don&apos;t suggest using it on other platforms. WebKit.h is the same way.

We can&apos;t change the contents of JavaScriptCore.h on Mac OS X now that Leopard has shipped with it as public API.

On other platforms, it might work better to include the appropriate headers individually.

If other platforms really want a catch-all header like JavaScriptCore.h we could come up with a build system that creates a different version of the header as needed for various platforms. Or they could use a different name for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61493</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-11-17 15:41:56 -0800</bug_when>
    <thetext>My thought was that we could wrap the line in JavaScriptCore.h that includes JSStringRefCF.h in a #ifdef of some type and have the build systems filter JavaScriptCore.h through unifdef to produce an appropriately cleaned version for the target platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61494</commentid>
    <comment_count>3</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-17 15:43:32 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; JavaScriptCore.h is intended to be a Mac OS X only header -- the &quot;framework
&gt; header&quot; that any Mac OS X framework has, which includes all its other headers.
&gt; I don&apos;t suggest using it on other platforms. WebKit.h is the same way.
&gt; 
&gt; We can&apos;t change the contents of JavaScriptCore.h on Mac OS X now that Leopard
&gt; has shipped with it as public API.
&gt; 
&gt; On other platforms, it might work better to include the appropriate headers
&gt; individually.

This isn&apos;t possible since some of the individual header files also include JavaScriptCore.h.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61497</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-11-17 15:50:57 -0800</bug_when>
    <thetext>The two header files (JSNodeList.h and JSNode.h) that do include JavaScriptCore.h are not part of the public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61498</commentid>
    <comment_count>5</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-17 16:18:14 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; The two header files (JSNodeList.h and JSNode.h) that do include
&gt; JavaScriptCore.h are not part of the public API.
&gt; 

Could you confirm which of these files are meant to be built as part of the JavaScriptCore library, which headers are meant to be shipped and which files are meant only to be part of the test applications?

(I tried to derive this from JavaScriptCore.xcodeproj but it is exceptionally difficult to follow. Are there freely available tools to view xcode project files? I will probably hit this issue again as I continue to audit more of WebKit&apos;s build system in preparation for release.)

APICast.h                    JSContextRef.cpp     JSStringRef.cpp
JavaScriptCore.h             JSContextRef.h       JSStringRef.h
JSBase.cpp                   JSNode.c             JSValueRef.cpp
JSBase.h                     JSNode.h             JSValueRef.h
JSCallbackConstructor.cpp    JSNodeList.c         minidom.c
JSCallbackConstructor.h      JSNodeList.h         minidom.html
JSCallbackFunction.cpp       JSObjectRef.cpp      minidom.js
JSCallbackFunction.h         JSObjectRef.h        Node.c
JSCallbackObject.cpp         JSRetainPtr.h        Node.h
JSCallbackObjectFunctions.h  JSStringRefBSTR.cpp  NodeList.c
JSCallbackObject.h           JSStringRefBSTR.h    NodeList.h
JSClassRef.cpp               JSStringRefCF.cpp    testapi.c
JSClassRef.h                 JSStringRefCF.h      testapi.js
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61552</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-11-17 21:54:40 -0800</bug_when>
    <thetext>Public headers:
JSBase.h
JSContextRef.h
JSObjectRef.h
JSStringRef.h
JSStringRefCF.h
JSStringRefBSTR.h
JSValueRef.h
JavaScriptCore.h

Files used only when compiling WebKit:
APICast.h
JSBase.cpp
JSCallbackConstructor.cpp
JSCallbackConstructor.h
JSCallbackFunction.cpp
JSCallbackFunction.h
JSCallbackObject.cpp
JSCallbackObject.h
JSCallbackObjectFunctions.h
JSClassRef.cpp
JSClassRef.h
JSContextRef.cpp
JSObjectRef.cpp
JSRetainPtr.h
JSStringRef.cpp
JSStringRefBSTR.cpp
JSStringRefBSTR.h
JSStringRefCF.cpp
JSValueRef.cpp

testapi files:
testapi.c
testapi.js

minidom files:
JSNode.c
JSNodeList.c
Node.c
NodeList.c
minidom.c
minidom.html
minidom.js
JSNode.h
JSNodeList.h
Node.h
NodeList.h

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61580</commentid>
    <comment_count>7</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-18 10:22:01 -0800</bug_when>
    <thetext>Mark,

Thanks for the clarification with those files. I&apos;ve updated javascriptcore-portable.

The trouble with shipping different versions of JavaScriptCore/JavaScriptCore.h on Mac/non-Mac platforms is that code written on non-Mac which does not use or expect to pull in CF break when you attempt to compile it on a Mac.

So if&apos;s absolutely not an option to modify JavaScriptCore/JavaScriptCore.h, we need to consider shipping a different header on all platforms, say JavaScriptCore/JavaScript.h which includes only the portable header files.

(Keep in mind that the goal is not just to provide a similar API on Windows, Mac and Linux but to make it identical, so software builds and runs out of the box on each of these platforms as long as it&apos;s careful with platform dependencies.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61582</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-11-18 10:30:03 -0800</bug_when>
    <thetext>Why would &quot;code written on non-Mac which does not use or expect to pull in CF break when you attempt to compile it on a Mac&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61590</commentid>
    <comment_count>9</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-18 13:51:05 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Why would &quot;code written on non-Mac which does not use or expect to pull in CF
&gt; break when you attempt to compile it on a Mac&quot;?
&gt; 

It seemed to me that implicitly pulling CF headers into an application using GLib or Qt may cause trouble. Perhaps it wouldn&apos;t. My understanding of best portability practices is that it&apos;s good to avoid this kind of situation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62340</commentid>
    <comment_count>10</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-25 18:18:06 -0800</bug_when>
    <thetext>Holger mentioned that C++-style comments &quot;//&quot; aren&apos;t accepted by some C compilers (he mentioned MSVC but I don&apos;t remember that being the case). There are some comments like this in the API headers.

If this turns out to be an issue, we might want to change those comments to increase portability. Does anyone have the facts on this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66464</commentid>
    <comment_count>11</comment_count>
      <attachid>18314</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-01-07 10:22:15 -0800</bug_when>
    <thetext>Created attachment 18314
Indroduce portable JavaScriptCore/JavaScript.h header

This patch seems to be the best way of addressing the needs of non-CF ports without breaking existing CF applications using the JavaScriptCore API.

JavaScriptCore/JavaScript.h is a new header that should be used in newly written portable software. It&apos;s expected to work exactly the same on all platforms, unlike JavaScriptCore/JavaScriptCore.h which will continue to require CFStringRef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66465</commentid>
    <comment_count>12</comment_count>
      <attachid>18314</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-07 10:31:08 -0800</bug_when>
    <thetext>Comment on attachment 18314
Indroduce portable JavaScriptCore/JavaScript.h header

Looks fine. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66469</commentid>
    <comment_count>13</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-01-07 11:31:28 -0800</bug_when>
    <thetext>Landed in r29234.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66481</commentid>
    <comment_count>14</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-01-07 12:21:47 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; My thought was that we could wrap the line in JavaScriptCore.h that includes
&gt; JSStringRefCF.h in a #ifdef of some type and have the build systems filter
&gt; JavaScriptCore.h through unifdef to produce an appropriately cleaned version
&gt; for the target platform.

I think this is the better approach to fixing this. The patch landed and broke the Mac build.

Why can&apos;t JavaScriptCore.h just have a #ifdef __APPLE__ around the CF include?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66482</commentid>
    <comment_count>15</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-01-07 12:22:41 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; Why can&apos;t JavaScriptCore.h just have a #ifdef __APPLE__ around the CF include?

I guess because Safari for Windows with CF....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66484</commentid>
    <comment_count>16</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-01-07 12:35:50 -0800</bug_when>
    <thetext>I&apos;d have preferred to remove JSStringRefCF.h from JavaScriptCore.h and instead require applications to include JSStringRefCF.h, JSStringRefBSTR.h or the GLib/Qt equivalents as needed.

Checking __APPLE__ isn&apos;t a great idea since it could limit developers using configurations we haven&apos;t considered yet (eg. CF on Linux). Better to keep it simple and require explicit includes, but if this isn&apos;t an option, my patch is probably the best compromise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66485</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-07 12:40:13 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; I&apos;d have preferred to remove JSStringRefCF.h from JavaScriptCore.h and instead
&gt; require applications to include JSStringRefCF.h, JSStringRefBSTR.h or the
&gt; GLib/Qt equivalents as needed.

I know you&apos;d prefer that, but it would be unacceptable for Mac OS X -- JavaScriptCore.h is a public Mac OS X 10.5 header, and we can&apos;t change it in an incompatible way.

&gt; Checking __APPLE__ isn&apos;t a great idea since it could limit developers using
&gt; configurations we haven&apos;t considered yet (eg. CF on Linux). Better to keep it
&gt; simple and require explicit includes, but if this isn&apos;t an option, my patch is
&gt; probably the best compromise.

Yes, agreed. But we need a version of your patch that doesn&apos;t break Mac OS X. Tim took care of that now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66487</commentid>
    <comment_count>18</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-01-07 13:04:39 -0800</bug_when>
    <thetext>Nice build fixing. Thanks timothy and aroben.

I wonder though if the Mac build should use ForwardingHeaders for the JSC API like the GTK+ build. This would help keep minidom buildable out-of-tree against the system-installed SDK (since it&apos;s a nice code sample for people learning the API to try building themselves).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18314</attachid>
            <date>2008-01-07 10:22:15 -0800</date>
            <delta_ts>2008-01-07 10:31:08 -0800</delta_ts>
            <desc>Indroduce portable JavaScriptCore/JavaScript.h header</desc>
            <filename>minidom.patch</filename>
            <type>text/plain</type>
            <size>9866</size>
            <attacher name="Alp Toker">alp</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI5MjI5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDgtMDEtMDcgIEFscCBUb2tl
ciAgPGFscEBhdG9rZXIuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWS4KKworICAg
ICAgICBJbnRyb2R1Y2UgYSBuZXcgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdC5oIHB1YmxpYyBB
UEkgaGVhZGVyLiBUaGlzCisgICAgICAgIHNob3VsZCBiZSB1c2VkIGJ5IGFsbCBuZXcgcG9ydGFi
bGUgY29kZSB1c2luZyB0aGUgSmF2YVNjcmlwdENvcmUgQVBJLgorCisgICAgICAgIEphdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmggd2lsbCByZW1haW4gZm9yIGNvbXBhdGliaWxpdHkgd2l0
aAorICAgICAgICBleGlzdGluZyBhcHBsaWNhdGlvbnMgdGhhdCBkZXBlbmQgb24gaXQgaW5jbHVk
aW5nIEpTU3RyaW5nUmVmQ0YuaAorICAgICAgICB3aGljaCBpc24ndCBwb3J0YWJsZS4KKworICAg
ICAgICBBbHNvIGFkZCBtaW5pZG9tIHRvIHRoZSBHVEsrL2F1dG90b29scyBidWlsZCBzaW5jZSB3
ZSBjYW4gbm93IHN1cHBvcnQKKyAgICAgICAgaXQgb24gYWxsIHBsYXRmb3Jtcy4KKworICAgICAg
ICAqIEFQSS9KU05vZGUuaDoKKyAgICAgICAgKiBBUEkvSlNOb2RlTGlzdC5oOgorICAgICAgICAq
IEFQSS9KYXZhU2NyaXB0Lmg6IEFkZGVkLgorICAgICAgICAqIEFQSS9KYXZhU2NyaXB0Q29yZS5o
OgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHQu
aDogQWRkZWQuCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAwOC0wMS0wNiAgRXJpYyBTZWlk
ZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtLgpJbmRleDog
SmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENv
cmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDI5MjI4KQorKysgSmF2YVNjcmlwdENvcmUvR05V
bWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTMsMTIgKzMsMTQgQEAgbm9kaXN0X0VYVFJB
X2xpYkphdmFTY3JpcHRDb3JlX2xhX1NPVVJDRQogCURlcml2ZWRTb3VyY2VzL2R1bW15LmN4eAog
CiBqYXZhc2NyaXB0Y29yZV9jcHBmbGFncyArPSBcCisJLUkgJChzcmNkaXIpL0phdmFTY3JpcHRD
b3JlL0ZvcndhcmRpbmdIZWFkZXJzIFwKIAktSSAkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvYmlu
ZGluZ3MgXAogCS1JICQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9jIFwKIAktSSAk
KHRvcF9idWlsZGRpcikvSmF2YVNjcmlwdENvcmUvcGNyZSBcCiAJLUkgJCh0b3BfYnVpbGRkaXIp
L0phdmFTY3JpcHRDb3JlL2tqcwogCiBqYXZhc2NyaXB0Y29yZV9oX2FwaSArPSBcCisJSmF2YVNj
cmlwdENvcmUvQVBJL0phdmFTY3JpcHQuaCBcCiAJSmF2YVNjcmlwdENvcmUvQVBJL0phdmFTY3Jp
cHRDb3JlLmggXAogCUphdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuaCBcCiAJSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ29udGV4dFJlZi5oIFwKQEAgLTEzNywxMiArMTM5LDI1IEBAIEphdmFTY3JpcHRD
b3JlL3BjcmUvY2hhcnRhYmxlcy5jOiAkKHRvcF8KIAkuL1Byb2dyYW1zL2RmdGFibGVzICRACiAK
IG5vaW5zdF9QUk9HUkFNUyArPSBcCi0JUHJvZ3JhbXMvdGVzdGtqcyBcCi0JUHJvZ3JhbXMvZGZ0
YWJsZXMKKwlQcm9ncmFtcy9kZnRhYmxlcyBcCisJUHJvZ3JhbXMvbWluaWRvbSBcCisJUHJvZ3Jh
bXMvdGVzdGtqcwogCiAjIGRmdGFibGVzCiBQcm9ncmFtc19kZnRhYmxlc19TT1VSQ0VTID0gSmF2
YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcy5jcHAKIAorIyBtaW5pZG9tCitQcm9ncmFtc19taW5p
ZG9tX1NPVVJDRVMgPSBcCisJSmF2YVNjcmlwdENvcmUvQVBJL0pTTm9kZS5jIFwKKwlKYXZhU2Ny
aXB0Q29yZS9BUEkvSlNOb2RlTGlzdC5jIFwKKwlKYXZhU2NyaXB0Q29yZS9BUEkvTm9kZS5jIFwK
KwlKYXZhU2NyaXB0Q29yZS9BUEkvTm9kZUxpc3QuYyBcCisJSmF2YVNjcmlwdENvcmUvQVBJL21p
bmlkb20uYworUHJvZ3JhbXNfbWluaWRvbV9DUFBGTEFHUyA9ICQoZ2xvYmFsX2NwcGZsYWdzKQor
UHJvZ3JhbXNfbWluaWRvbV9DWFhGTEFHUyA9ICQoSUNVX0NGTEFHUykKK1Byb2dyYW1zX21pbmlk
b21fTERBREQgPSAkKElDVV9MSUJTKSBsaWJKYXZhU2NyaXB0Q29yZS5sYQorUHJvZ3JhbXNfbWlu
aWRvbV9MREZMQUdTID0gLXJwYXRoICQoQ1VSRElSKS8ubGlicworCiAjIHRlc3RranMKIFByb2dy
YW1zX3Rlc3RranNfU09VUkNFUyA9IEphdmFTY3JpcHRDb3JlL2tqcy90ZXN0a2pzLmNwcAogUHJv
Z3JhbXNfdGVzdGtqc19DUFBGTEFHUyA9ICQoZ2xvYmFsX2NwcGZsYWdzKQpJbmRleDogSmF2YVNj
cmlwdENvcmUvQVBJL0pTTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0FQSS9K
U05vZGUuaAkocmV2aXNpb24gMjkyMjgpCisrKyBKYXZhU2NyaXB0Q29yZS9BUEkvSlNOb2RlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICNpZm5kZWYgSlNOb2RlX2gKICNkZWZp
bmUgSlNOb2RlX2gKIAotI2luY2x1ZGUgIkphdmFTY3JpcHRDb3JlLmgiCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdC5oPgogI2luY2x1ZGUgIk5vZGUuaCIKIAogZXh0ZXJuIEpT
T2JqZWN0UmVmIEpTTm9kZV9uZXcoSlNDb250ZXh0UmVmIGNvbnRleHQsIE5vZGUqIG5vZGUpOwpJ
bmRleDogSmF2YVNjcmlwdENvcmUvQVBJL0pTTm9kZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZh
U2NyaXB0Q29yZS9BUEkvSlNOb2RlTGlzdC5oCShyZXZpc2lvbiAyOTIyOCkKKysrIEphdmFTY3Jp
cHRDb3JlL0FQSS9KU05vZGVMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAK
ICNpZm5kZWYgSlNOb2RlTGlzdF9oCiAjZGVmaW5lIEpTTm9kZUxpc3RfaAogCi0jaW5jbHVkZSAi
SmF2YVNjcmlwdENvcmUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Lmg+
CiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKIAogZXh0ZXJuIEpTT2JqZWN0UmVmIEpTTm9kZUxpc3Rf
bmV3KEpTQ29udGV4dFJlZiwgTm9kZUxpc3QqKTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0FQSS9K
YXZhU2NyaXB0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvQVBJL0phdmFTY3JpcHQu
aAkocmV2aXNpb24gMCkKKysrIEphdmFTY3JpcHRDb3JlL0FQSS9KYXZhU2NyaXB0LmgJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzYgQEAKKy8vIC0qLSBtb2RlOiBjKys7IGMtYmFzaWMtb2Zmc2V0
OiA0IC0qLQorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIu
Y29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIEphdmFTY3JpcHRfaAorI2RlZmluZSBKYXZhU2NyaXB0X2gK
KworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTQ29udGV4dFJlZi5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU3RyaW5n
UmVmLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3RSZWYuaD4KKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU1ZhbHVlUmVmLmg+CisKKyNlbmRpZiAvLyBKYXZhU2NyaXB0X2gK
SW5kZXg6IEphdmFTY3JpcHRDb3JlL0FQSS9KYXZhU2NyaXB0Q29yZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL0FQSS9KYXZhU2NyaXB0Q29yZS5oCShyZXZpc2lvbiAyOTIyOCkKKysr
IEphdmFTY3JpcHRDb3JlL0FQSS9KYXZhU2NyaXB0Q29yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NywxMSArMjcsNyBAQAogI2lmbmRlZiBKYXZhU2NyaXB0Q29yZV9oCiAjZGVmaW5lIEphdmFTY3Jp
cHRDb3JlX2gKIAotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgotI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTQ29udGV4dFJlZi5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTU3RyaW5nUmVmLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdC5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU3RyaW5nUmVmQ0YuaD4KLSNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU09iamVjdFJlZi5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTVmFs
dWVSZWYuaD4KIAogI2VuZGlmIC8vIEphdmFTY3JpcHRDb3JlX2gKSW5kZXg6IEphdmFTY3JpcHRD
b3JlL0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0LmgJKHJldmlzaW9uIDApCisrKyBKYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEg
QEAKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUEkvSmF2YVNjcmlwdC5oPgpJbmRleDogSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAyOTIyOCkKKysrIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTgwLDYgKzgw
LDcgQEAKIAkJMTRCRDVBMzAwQTNFOTFGNjAwQkFGNTlDIC8qIEpTQ29udGV4dFJlZi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEJENUEyOTBBM0U5
MUY2MDBCQUY1OUMgLyogSlNDb250ZXh0UmVmLmNwcCAqLzsgfTsKIAkJMTRCRDVBMzEwQTNFOTFG
NjAwQkFGNTlDIC8qIEpTQ29udGV4dFJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTRCRDVBMkEwQTNFOTFGNjAwQkFGNTlDIC8qIEpTQ29udGV4dFJl
Zi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJMTRC
RDVBMzIwQTNFOTFGNjAwQkFGNTlDIC8qIEpTVmFsdWVSZWYuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRCRDVBMkIwQTNFOTFGNjAwQkFGNTlDIC8q
IEpTVmFsdWVSZWYuY3BwICovOyB9OworCQkxNEJENUEzNjBBM0U5MUY2MDBCQUY1OUMgLyogSmF2
YVNjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTRCRDVBMkYwQTNFOTFGNjAwQkFGNTlDIC8qIEphdmFTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTE0QkQ1QTM2MEEzRTkxRjYwMEJBRjU5
QyAvKiBKYXZhU2NyaXB0Q29yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTRCRDVBMkYwQTNFOTFGNjAwQkFGNTlDIC8qIEphdmFTY3JpcHRDb3JlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQkxNERFMEQ2
OTBEMDI0MzE0MDBBQUNDQTIgLyogSlNHbG9iYWxPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRERTBENjgwRDAyNDMxNDAwQUFDQ0EyIC8q
IEpTR2xvYmFsT2JqZWN0LmNwcCAqLzsgfTsKIAkJMTRGMjUyNTcwRDA4REQ4RDAwNEVDRkZGIC8q
IEpTVmFyaWFibGVPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE0RjI1MjU2MEQwOEREOEQwMDRFQ0ZGRiAvKiBKU1ZhcmlhYmxlT2JqZWN0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ0MSw2
ICs0NDIsNyBAQAogCQkxNEJENUEyQTBBM0U5MUY2MDBCQUY1OUMgLyogSlNDb250ZXh0UmVmLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NvbnRleHRSZWYuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRCRDVBMkIwQTNFOTFGNjAwQkFGNTlDIC8qIEpTVmFs
dWVSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVmFsdWVS
ZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEJENUEyRDBBM0U5MUY2MDBC
QUY1OUMgLyogdGVzdGFwaS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gdGVz
dGFwaS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxNEJENUEyRjBBM0U5MUY2MDBC
QUY1OUMgLyogSmF2YVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SmF2YVNjcmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEJENUEyRjBBM0U5
MUY2MDBCQUY1OUMgLyogSmF2YVNjcmlwdENvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEphdmFTY3JpcHRDb3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTE0RDg1Nzc0MEE0Njk2QzgwMDMyMTQ2QyAvKiB0ZXN0YXBpLmpzICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBwYXRoID0gdGVzdGFwaS5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMTRERTBENjgwRDAyNDMxNDAwQUFDQ0EyIC8qIEpTR2xvYmFsT2JqZWN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTR2xvYmFsT2JqZWN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc3NSw2ICs3NzcsNyBAQAogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxNDgyQjc4QTBBNDMwNUFCMDA1MTdDRkMg
LyogQVBJQ2FzdC5oICovLAorCQkJCTE0QkQ1QTJGMEEzRTkxRjYwMEJBRjU5QyAvKiBKYXZhU2Ny
aXB0LmggKi8sCiAJCQkJMTRCRDVBMkYwQTNFOTFGNjAwQkFGNTlDIC8qIEphdmFTY3JpcHRDb3Jl
LmggKi8sCiAJCQkJMTQyMTM1OUEwQTY3N0Y0RjAwQTgxOTVFIC8qIEpTQmFzZS5jcHAgKi8sCiAJ
CQkJMTQyNzExMzgwQTQ2MEJCQjAwODBFRUVBIC8qIEpTQmFzZS5oICovLApAQCAtMTE3OSw2ICsx
MTgyLDcgQEAKIAkJCQkxNDgyQjZFQjBBNDMwMEIzMDA1MTdDRkMgLyogSlNWYWx1ZVJlZi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTRGMjUyNTcwRDA4REQ4RDAwNEVDRkZGIC8qIEpTVmFyaWFibGVP
YmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1QzdBMTc0MEE4RUFBQ0IwMEZBMzdFQSAvKiBK
U1dyYXBwZXJPYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTE0QkQ1QTM2MEEzRTkxRjYwMEJB
RjU5QyAvKiBKYXZhU2NyaXB0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEJENUEzNjBBM0U5MUY2
MDBCQUY1OUMgLyogSmF2YVNjcmlwdENvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMkY1QjYx
MDgyMkExQzcwMDczNjk3NSAvKiBKYXZhU2NyaXB0Q29yZVByZWZpeC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjVBN0E1RTAwQ0QxRDUwRTAwMDYxRjhFIC8qIExhYmVsU3RhY2suaCBpbiBIZWFkZXJz
ICovLAo=
</data>
<flag name="review"
          id="7990"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>