[Mono-list] Porting Cookbook

Max Metral max@artsalliancelabs.com
Tue, 24 Aug 2004 09:14:37 -0400


This is a multi-part message in MIME format.

------=_NextPart_000_0021_01C489BA.F6407BC0
Content-Type: multipart/related;
	boundary="----=_NextPart_001_0022_01C489BA.F6407BC0"


------=_NextPart_001_0022_01C489BA.F6407BC0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_002_0023_01C489BA.F6407BC0"


------=_NextPart_002_0023_01C489BA.F6407BC0
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

So I have a decent sized project (not large, not small) built in C# and
Visual Studio for Win32 obviously.  I'm embarking on refactoring and hoping
to get Mono into the mix.  Is there a cookbook for taking VS projects into a
Mono world?  If not, I'd like to start one, any pointers from those who have
tried it that should be noted?

 

We're going with a solution based dev environment, but with Nant doing the
"real" builds by referencing the proj files.  We'll be using NUnit and
log4net for their respective purposes, and heavily separating all Win
service, GUI, and command line type interfaces away from the core
frameworks.  So I'm sure there will be cases where certain projects simply
don't work on Mono, but hopefully Nant will help us out in making that easy
to setup.

 

Thanks.

--Max

 



Max Metral

One Appleton Street, 3rd Floor

Boston, MA 02116

617-848-9030 

 


------=_NextPart_002_0023_01C489BA.F6407BC0
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:st1=3D"urn:schemas-microsoft-com:office:smarttags" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
 namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags" =
name=3D"State"/>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"Street"/>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"PostalCode"/>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"City"/>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"address"/>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"place"/>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:Arial;
	color:windowtext;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>So I have a decent sized project (not large, not =
small)
built in C# and Visual Studio for Win32 obviously.&nbsp; I&#8217;m =
embarking on refactoring
and hoping to get Mono into the mix.&nbsp; Is there a cookbook for =
taking VS
projects into a Mono world?&nbsp; If not, I&#8217;d like to start one, =
any pointers
from those who have tried it that should be =
noted?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>We&#8217;re going with a solution based dev =
environment, but
with Nant doing the &#8220;real&#8221; builds by referencing the proj =
files.&nbsp;
We&#8217;ll be using NUnit and log4net for their respective purposes, =
and
heavily separating all Win service, GUI, and command line type =
interfaces away
from the core frameworks.&nbsp; So I&#8217;m sure there will be cases =
where certain
projects simply don&#8217;t work on Mono, but hopefully Nant will help =
us out
in making that easy to setup.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Thanks.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>--Max<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><img width=3D227 height=3D52 id=3D"_x0000_i1025"
src=3D"cid:image001.gif@01C489BA.F63494E0"><o:p></o:p></span></font></p>

<p class=3DMsoNormal><st1:PersonName w:st=3D"on"><font size=3D1 =
face=3DArial><span
 style=3D'font-size:8.0pt;font-family:Arial'>Max =
Metral</span></font></st1:PersonName><font
size=3D1 face=3DArial><span =
style=3D'font-size:8.0pt;font-family:Arial'><o:p></o:p></span></font></p>=


<p class=3DMsoNormal><st1:Street w:st=3D"on"><st1:address tabIndex=3D"0"
 style=3D"BACKGROUND-POSITION: left bottom; BACKGROUND-IMAGE: =
url(res://ietag.dll/#34/#1001); BACKGROUND-REPEAT: repeat-x"
 w:st=3D"on"><font size=3D1 face=3DArial><span =
style=3D'font-size:8.0pt;font-family:
  Arial'>One Appleton =
Street</span></font></st1:address></st1:Street><font
size=3D1 face=3DArial><span =
style=3D'font-size:8.0pt;font-family:Arial'>,&nbsp;3rd&nbsp;Floor<o:p></o=
:p></span></font></p>

<p class=3DMsoNormal><st1:place tabIndex=3D"0"
style=3D"BACKGROUND-POSITION: left bottom; BACKGROUND-IMAGE: =
url(res://ietag.dll/#34/#1001); BACKGROUND-REPEAT: repeat-x"
w:st=3D"on"><st1:City w:st=3D"on"><font size=3D1 face=3DArial><span =
style=3D'font-size:
  8.0pt;font-family:Arial'>Boston</span></font></st1:City><font size=3D1
 face=3DArial><span style=3D'font-size:8.0pt;font-family:Arial'>, =
<st1:State w:st=3D"on">MA</st1:State>
 <st1:PostalCode =
w:st=3D"on">02116</st1:PostalCode></span></font></st1:place><o:p></o:p></=
p>

<p class=3DMsoNormal><font size=3D1 face=3DArial><span =
style=3D'font-size:8.0pt;
font-family:Arial'>617-848-9030</span></font><font face=3DArial><span
style=3D'font-family:Arial'>&nbsp;</span></font><font face=3DArial><span
style=3D'font-family:Arial'><o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>

------=_NextPart_002_0023_01C489BA.F6407BC0--

------=_NextPart_001_0022_01C489BA.F6407BC0
Content-Type: image/gif;
	name="image001.gif"
Content-Transfer-Encoding: base64
Content-ID: <image001.gif@01C489BA.F63494E0>

R0lGODlh4wA0APfpAK7h7RpZaNfw9obR4yeGnMPo8ev4+g0sNOH0+JrZ6AMLDX7O4jGnwyuRqV3C
2i6ctqXd6iR7j83s9AYWGhNDTiFvgkBAQGjG3R1kddbw9hA3QYvT5AkhJ/X7/aLc6tLu9RdOW3LK
32XF3IbS5K7g7ZbY53jM4ODg4Ov3+jAwMOn3+lO+2O/v7xAQEE9PTyw5O5+fn/D5/HHK34XR46be
61S/2PDw8Mzs81K+12BgYMDAwHbL4Nvx919fX9DQ0L7m8Mzr9FBQUKCgoJ7b6I/U5rvl75ewttrx
96+5u/r9/o+Pj7+/v53a6c/t9D8/P0q71mqfqwsODw8PD06819fw9fj8/WfG3G7I3t/f35DV5pCQ
kICAgPP7/N7z+Nnx9sLo8YHQ4mbF3B8fH6nf65/b6XHJ36fe62HD20u71pnZ6B8zODxIS7rl72h2
ejU8PaK+xVW/2Nvo66+vr57b6eDz+CAgII63wHiao+Hz+JjY50JpcXV8fX3E1VnA2Zza6IKoskS4
1BYcHm2MlM7t9GN/hW9vb6u4uy8vL9jw9qnf7FdxdnZ8fWKYpWFqbChAR6bd67Hh7aHc6o3U5XW3
xxQvNozU5U+BjStBR2+hrV6aqTNibo7U5ZTN2qbd6oa9ypXX58/PzxAZHOT1+X6msC9NVLfk7z5n
cE14grDh7Hekr+34+/f8/ef2+srNztzx97PY4bDh7cjg5mfF3KXd6zeWrKm3usfq8pbX50m61WPE
297y93ySl3BwcHKEiZjY6Kzg7LCwsIuYm7bk7js+P4rT5CppeHWPlpKutZnEz2LD2+n2+XSjrrjk
7yE0OYGTmdDt9ExiZ63f7MDn8cHU2HbC1Hq5yE12gIjS5DZGShonK6Td6pHW5p2zuJ+zuHrN4eDp
7EJUWbvIy4C7yqfAxub2+ZPW5jWz0f///wAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAOkALAAAAADjADQA
AAj/ANMJHEiwoMGDCBMqXMiwocOHECNKhHiuosWJGDNq3Mixo8ePDi1eBEmypMmTKFMOFHkOTwGV
MGPKnKmSJRUANHPq3NlxgAMBHm3i5Em0qNEPBZLGGOgTaEehRqNKlWnAxJUBAxAUxOpRgrmvIYYq
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

------=_NextPart_001_0022_01C489BA.F6407BC0--

------=_NextPart_000_0021_01C489BA.F6407BC0
Content-Type: application/x-pkcs7-signature;
	name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="smime.p7s"

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIKHTCCAj0w
ggGmAhEAzbp/VvDf5LxU/iKss3KqVTANBgkqhkiG9w0BAQIFADBfMQswCQYDVQQGEwJVUzEXMBUG
A1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsTLkNsYXNzIDEgUHVibGljIFByaW1hcnkgQ2Vy
dGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNOTYwMTI5MDAwMDAwWhcNMjgwODAxMjM1OTU5WjBfMQsw
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsTLkNsYXNzIDEgUHVi
bGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwgZ8wDQYJKoZIhvcNAQEBBQADgY0A
MIGJAoGBAOUZv22jVmEtmUhx9mfeuY3rt56GgAqRDvo4Ja9GiILlc6igmyRdDR/MZW4MsNBWhBiH
mgabEKFz37RYOWtuwfYV1aioP6oSBo0xrH+wNNePNGeICc0UEeJORVZpH3gCgNrcR5EpuzbJY1zF
4Ncth3uhtzKwezC6Ki8xqu6jZ9rbAgMBAAEwDQYJKoZIhvcNAQECBQADgYEATD+4i8Zo3+5DMw5d
6abLB4RNejP/khv0Nq3YlSI2aBFsfELM85wuxAc/FLAPT/+Qknb54rxK6Y/NoIAK98Up8YIiXbix
3YEjo3slFUYweRb46gVLlH8dwhzI47f0EEA8E8NfH1PoSOSGtHuhNbB7Jbq4046rPzidADQAmPPR
cZQwggNiMIICy6ADAgECAhAL2gsXwT+JjqsJdHq0zi4zMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNV
BAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMg
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05ODA1MTIwMDAwMDBaFw0wODA1MTIy
MzU5NTlaMIHMMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1
c3QgTmV0d29yazFGMEQGA1UECxM9d3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L1JQQSBJbmNv
cnAuIEJ5IFJlZi4sTElBQi5MVEQoYyk5ODFIMEYGA1UEAxM/VmVyaVNpZ24gQ2xhc3MgMSBDQSBJ
bmRpdmlkdWFsIFN1YnNjcmliZXItUGVyc29uYSBOb3QgVmFsaWRhdGVkMIGfMA0GCSqGSIb3DQEB
AQUAA4GNADCBiQKBgQC7WkSKBBa7Vf0DeootlE8VeDa4DUqyb5xUv7zodyqdufBou5XZMUFweoFL
uUgTVi3HCOGEQqvAopKrRFyqQvCCDgLpL/vCO7u+yScKXbawNkIztW5UiE+HSr8Z2vkV6A+Hthzj
zMaajn9qJJLj/OBluqexfu/J2zdqyErICQbkmQIDAQABo4GwMIGtMA8GA1UdEwQIMAYBAf8CAQAw
RwYDVR0gBEAwPjA8BgtghkgBhvhFAQcBATAtMCsGCCsGAQUFBwIBFh93d3cudmVyaXNpZ24uY29t
L3JlcG9zaXRvcnkvUlBBMDEGA1UdHwQqMCgwJqAkoCKGIGh0dHA6Ly9jcmwudmVyaXNpZ24uY29t
L3BjYTEuY3JsMAsGA1UdDwQEAwIBBjARBglghkgBhvhCAQEEBAMCAQYwDQYJKoZIhvcNAQECBQAD
gYEAAn2eb0VLOKC43ulTZCG85Ewrjx7+kkCs2Ao5aqEyISwHm6tZ/tJiGn1VOLA3c9z0B2ZjYr3h
U3BSh+eo2FLpWy2q4d7PrDFU1IsZyNgjqO8EKzJ9LBgcyHyJqC538kTRZQpNdLXu0xuSc3QuiTs1
E3LnQDGa07LEq+dWvovj+xUwggRyMIID26ADAgECAhAjlO1/IhPM4R9JY4/Gc6uaMA0GCSqGSIb3
DQEBBAUAMIHMMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1
c3QgTmV0d29yazFGMEQGA1UECxM9d3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L1JQQSBJbmNv
cnAuIEJ5IFJlZi4sTElBQi5MVEQoYyk5ODFIMEYGA1UEAxM/VmVyaVNpZ24gQ2xhc3MgMSBDQSBJ
bmRpdmlkdWFsIFN1YnNjcmliZXItUGVyc29uYSBOb3QgVmFsaWRhdGVkMB4XDTA0MDIxMzAwMDAw
MFoXDTA1MDIxMjIzNTk1OVowggEWMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMW
VmVyaVNpZ24gVHJ1c3QgTmV0d29yazFGMEQGA1UECxM9d3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0
b3J5L1JQQSBJbmNvcnAuIGJ5IFJlZi4sTElBQi5MVEQoYyk5ODEeMBwGA1UECxMVUGVyc29uYSBO
b3QgVmFsaWRhdGVkMTQwMgYDVQQLEytEaWdpdGFsIElEIENsYXNzIDEgLSBNaWNyb3NvZnQgRnVs
bCBTZXJ2aWNlMRMwEQYDVQQDFApNYXggTWV0cmFsMScwJQYJKoZIhvcNAQkBFhhtYXhAYXJ0c2Fs
bGlhbmNlbGFicy5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKYXs9GPlevOS/r+P+Mf
pBRrPQandWAWNVmghw7C09BXeX3iCNpJ73LnuMwRPUKnpkx68yeYW3xMhCG5JVL3QalEhxsxB/RY
uffm6PgqvBxewwVY3kMme6MDMdkmtRq2zkKZJPShy4Y8gafONL2fiCLeOLOoLFNCcZAoh+kiSyf5
AgMBAAGjggEGMIIBAjAJBgNVHRMEAjAAMIGsBgNVHSAEgaQwgaEwgZ4GC2CGSAGG+EUBBwEBMIGO
MCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vQ1BTMGIGCCsGAQUFBwICMFYw
FRYOVmVyaVNpZ24sIEluYy4wAwIBARo9VmVyaVNpZ24ncyBDUFMgaW5jb3JwLiBieSByZWZlcmVu
Y2UgbGlhYi4gbHRkLiAoYyk5NyBWZXJpU2lnbjARBglghkgBhvhCAQEEBAMCB4AwMwYDVR0fBCww
KjAooCagJIYiaHR0cDovL2NybC52ZXJpc2lnbi5jb20vY2xhc3MxLmNybDANBgkqhkiG9w0BAQQF
AAOBgQAY5llC+R4Tjpduw8IN1vOg7HJG2eefbq6LPXdfPuFYazkwqkAL45covoK3S+E8Ce749pq7
h2FORyqcRxcFlP4cZh4oBgpItnbyTNGmUP3PGwAqg6YYMiNtiNLbPC+WsGDfspnNNFYPr9XMNf4V
BiOuZqrbu837NTPta3z7bp8lDDGCBD4wggQ6AgEBMIHhMIHMMRcwFQYDVQQKEw5WZXJpU2lnbiwg
SW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazFGMEQGA1UECxM9d3d3LnZlcmlz
aWduLmNvbS9yZXBvc2l0b3J5L1JQQSBJbmNvcnAuIEJ5IFJlZi4sTElBQi5MVEQoYyk5ODFIMEYG
A1UEAxM/VmVyaVNpZ24gQ2xhc3MgMSBDQSBJbmRpdmlkdWFsIFN1YnNjcmliZXItUGVyc29uYSBO
b3QgVmFsaWRhdGVkAhAjlO1/IhPM4R9JY4/Gc6uaMAkGBSsOAwIaBQCgggKyMBgGCSqGSIb3DQEJ
AzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTA0MDgyNDEzMTU1NlowIwYJKoZIhvcNAQkE
MRYEFFge0U3SxypuPeJ2ekmwDn2bC8I/MGcGCSqGSIb3DQEJDzFaMFgwCgYIKoZIhvcNAwcwDgYI
KoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMAcGBSsO
AwIaMAoGCCqGSIb3DQIFMIHyBgkrBgEEAYI3EAQxgeQwgeEwgcwxFzAVBgNVBAoTDlZlcmlTaWdu
LCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMUYwRAYDVQQLEz13d3cudmVy
aXNpZ24uY29tL3JlcG9zaXRvcnkvUlBBIEluY29ycC4gQnkgUmVmLixMSUFCLkxURChjKTk4MUgw
RgYDVQQDEz9WZXJpU2lnbiBDbGFzcyAxIENBIEluZGl2aWR1YWwgU3Vic2NyaWJlci1QZXJzb25h
IE5vdCBWYWxpZGF0ZWQCECOU7X8iE8zhH0ljj8Zzq5owgfQGCyqGSIb3DQEJEAILMYHkoIHhMIHM
MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y
azFGMEQGA1UECxM9d3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L1JQQSBJbmNvcnAuIEJ5IFJl
Zi4sTElBQi5MVEQoYyk5ODFIMEYGA1UEAxM/VmVyaVNpZ24gQ2xhc3MgMSBDQSBJbmRpdmlkdWFs
IFN1YnNjcmliZXItUGVyc29uYSBOb3QgVmFsaWRhdGVkAhAjlO1/IhPM4R9JY4/Gc6uaMA0GCSqG
SIb3DQEBAQUABIGAfpY7ac7vZYIZcNedcp7wcEd5tot3jx0j3hF5qyvOeSJcBK2A0Z1VL8n8wKPv
pcClAqxVHiO/jBmbgi88uCn8iiqVMg+uouxQY6h3/juLjBQUpXD3CvtwJkBVYwjNbcCeIOxlMx/F
phIq2sdrGRKiQrlDbYoxQ8Az0E9WON4HCzcAAAAAAAA=

------=_NextPart_000_0021_01C489BA.F6407BC0--