<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.hoenzb
        {mso-style-name:hoenzb;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">We were able to confirm that this problem affects our product as well. It shows up in both Silverlight 4 and 5 builds. I didn’t see an issue ticket created
on CodePlex yet, so I created one.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Is the best “fix” going to be to catch MethodAccessException and return an empty string from GetPrefix()? I am not familiar with the importance of that call.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:14.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Keith Rome<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Senior Consultant and Architect<o:p></o:p></span></b></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#1F497D">MCPD-EAD, MCSD, MCDBA, MCTS-WPF, MCTS-TFS, MCTS-WSS<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Wintellect | 770.617.4016 |
<a href="mailto:rome@wintellect.com">krome@wintellect.com</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><a href="http://www.wintellect.com/">www.wintellect.com</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Mattias Ahlenius [mailto:mattias@goodsolutions.se]
<br>
<b>Sent:</b> Thursday, April 19, 2012 2:16 PM<br>
<b>To:</b> Slide<br>
<b>Cc:</b> Keith Rome; ironpython-users@python.org<br>
<b>Subject:</b> Re: [Ironpython-users] Problem with embedding IronPython into Silverlight Application<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">I've put together a small testproject, when I build it with target SL4 I get the same error as with the IronPython bins, but it works fine when I compile it to target SL5, I've attached a testproject as a .zip (just rename it from sip)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">/Mattias<o:p></o:p></p>
<div>
<p class="MsoNormal">2012/4/19 Mattias Ahlenius <<a href="mailto:mattias@goodsolutions.se" target="_blank">mattias@goodsolutions.se</a>><o:p></o:p></p>
<div>
<p class="MsoNormal">I think the binaries under: lib\Sl5 is compiled with SL4 as target and not with SL5, not sure but that may be the issue.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="color:#888888"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:#888888">/Mattias<o:p></o:p></span></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">2012/4/19 Slide <<a href="mailto:slide.o.mix@gmail.com" target="_blank">slide.o.mix@gmail.com</a>><o:p></o:p></p>
<p class="MsoNormal">No, that is correct, SL5 does include the FEATURE_ASSEMBLY_LOCATION property in the build, so you should be getting that code when you disassemble. Can you check if there is anything in the InnerException when you catch it?<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Thu, Apr 19, 2012 at 7:28 AM, Mattias Ahlenius <<a href="mailto:mattias@goodsolutions.se" target="_blank">mattias@goodsolutions.se</a>> wrote:<o:p></o:p></p>
<div>
<p class="MsoNormal">Do I do something fundamentally wrong here... The below is what I get do a disasm on the SL5 assembly in the latest distribution (2.7.2.1)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Greatful for any help I could get in the right direction.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Best regards,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Mattias<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
<div>
<p class="MsoNormal">2012/4/18 Mattias Ahlenius <<a href="mailto:mattias@goodsolutions.se" target="_blank">mattias@goodsolutions.se</a>><o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">I get the following when I make a disam in Reflector, the exception (System.MethodAccessException) that I'm getting is not subclassing neither SecurityException or ArgumentException which is catched and handled.<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100.0%">
<tbody>
<tr>
<td valign="top" style="padding:3.0pt 3.75pt 3.0pt 3.75pt">
<pre><b><span style="color:#1000A0">private</span> <span style="color:#1000A0">static</span> <a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:5.0.5.0:7cec85d7bea7798e/System.String" target="_blank" title="System.String
CTRL+Click to open in new tab.">string</a> <a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://IronPython:2.7.1300.40:7f709c5b713576e1/IronPython.Modules.SysModule/GetPrefix():String" target="_blank">GetPrefix</a>()<o:p></o:p></b></pre>
<pre><b>{<o:p></o:p></b></pre>
<pre><b> <span style="color:#1000A0">try</span><o:p></o:p></b></pre>
<pre><b> {<o:p></o:p></b></pre>
<pre><b> <span style="color:#1000A0">return</span> <a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:5.0.5.0:7cec85d7bea7798e/System.IO.Path" target="_blank" title="System.IO.Path
CTRL+Click to open in new tab.">Path</a>.<a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:5.0.5.0:7cec85d7bea7798e/System.IO.Path/GetDirectoryName(String):String" target="_blank" title="string System.IO.Path.GetDirectoryName(string);
CTRL+Click to open in new tab.">GetDirectoryName</a>(<a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:5.0.5.0:7cec85d7bea7798e/System.Reflection.Assembly" target="_blank" title="System.Reflection.Assembly
CTRL+Click to open in new tab.">Assembly</a>.<a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:5.0.5.0:7cec85d7bea7798e/System.Reflection.Assembly/GetExecutingAssembly():System.Reflection.Assembly" target="_blank" title="Assembly System.Reflection.Assembly.GetExecutingAssembly();
CTRL+Click to open in new tab.">GetExecutingAssembly</a>().<a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:4.0.0.0:b77a5c561934e089/System.Reflection.Assembly/property:Location:String" target="_blank" title="string System.Reflection.Assembly.Location { ... }
CTRL+Click to open in new tab.">Location</a>);<o:p></o:p></b></pre>
<pre><b> }<o:p></o:p></b></pre>
<pre><b> <span style="color:#1000A0">catch</span> (<a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:5.0.5.0:7cec85d7bea7798e/System.Security.SecurityException" target="_blank" title="System.Security.SecurityException
CTRL+Click to open in new tab.">SecurityException</a>)<o:p></o:p></b></pre>
<pre><b> {<o:p></o:p></b></pre>
<pre><b> <span style="color:#1000A0">return</span> <a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:5.0.5.0:7cec85d7bea7798e/System.String" target="_blank" title="System.String
CTRL+Click to open in new tab.">string</a>.<a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:5.0.5.0:7cec85d7bea7798e/System.String/Empty" target="_blank" title="string System.String.Empty;
CTRL+Click to open in new tab.">Empty</a>;<o:p></o:p></b></pre>
<pre><b> }<o:p></o:p></b></pre>
<pre><b> <span style="color:#1000A0">catch</span> (<a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:5.0.5.0:7cec85d7bea7798e/System.ArgumentException" target="_blank" title="System.ArgumentException
CTRL+Click to open in new tab.">ArgumentException</a>)<o:p></o:p></b></pre>
<pre><b> {<o:p></o:p></b></pre>
<pre><b> <span style="color:#1000A0">return</span> <a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:5.0.5.0:7cec85d7bea7798e/System.String" target="_blank" title="System.String
CTRL+Click to open in new tab.">string</a>.<a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:5.0.5.0:7cec85d7bea7798e/System.String/Empty" target="_blank" title="string System.String.Empty;
CTRL+Click to open in new tab.">Empty</a>;<o:p></o:p></b></pre>
<pre><b> }<o:p></o:p></b></pre>
<pre><b>}<o:p></o:p></b></pre>
<pre><b><span style="color:#888888"><o:p> </o:p></span></b></pre>
<pre><span style="color:#888888"><o:p> </o:p></span></pre>
<pre><span style="font-family:"Arial","sans-serif";color:#888888">/Mattias<br><br></span><span style="color:#888888"><o:p></o:p></span></pre>
<pre><b><span style="color:#888888"><o:p> </o:p></span></b></pre>
</td>
</tr>
</tbody>
</table>
<div>
<div>
<div>
<p class="MsoNormal">2012/4/18 Slide <<a href="mailto:slide.o.mix@gmail.com" target="_blank">slide.o.mix@gmail.com</a>><o:p></o:p></p>
<p class="MsoNormal">This really sounds like the assemblies you are referencing are not really the SL assemblies, can you open the assembly in ILSpy and decompile GetPrefix and see what you have?<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">slide<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Wed, Apr 18, 2012 at 1:44 PM, Mattias Ahlenius <<a href="mailto:mattias@goodsolutions.se" target="_blank">mattias@goodsolutions.se</a>> wrote:<o:p></o:p></p>
<p class="MsoNormal">Same exception even if I use the 2.7.2.1 bins: (I support you mean 2.7.. and not 2.5..)<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Message: Failed to load language 'IronPython 2.7.2.1': The type initializer for 'IronPython.Modules.SysModule' threw an exception.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">InnerException:<o:p></o:p></p>
</div>
</div>
<div>
<div style="border:solid #DDDDDD 1.0pt;padding:0in 0in 0in 0in;outline-style:none;outline-width:initial;outline-color:initial">
<p class="MsoNormal" style="mso-line-height-alt:4.5pt;background:#F1F1F1"><o:p></o:p></p>
</div>
</div>
<div>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">"Attempt by security transparent method 'IronPython.Modules.SysModule.GetPrefix()' to access security critical method 'System.Reflection.Assembly.get_Location()' failed."<br>
<br>
/Mattias<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal">2012/4/18 Slide <<a href="mailto:slide.o.mix@gmail.com" target="_blank">slide.o.mix@gmail.com</a>><o:p></o:p></p>
<p class="MsoNormal">Please make sure you have 2.5.2.1 and not just 2.5.2.<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal"><br>
On Wed, Apr 18, 2012 at 12:16 PM, Mattias Ahlenius<br>
<<a href="mailto:mattias@goodsolutions.se" target="_blank">mattias@goodsolutions.se</a>> wrote:<br>
> Thanks for your quick reply Keith,<br>
><br>
> Tried you code and I still get the same Exception:<br>
><br>
> "Attempt by security transparent method<br>
> 'IronPython.Modules.SysModule.GetPrefix()' to access security critical<br>
> method 'System.Reflection.Assembly.get_Location()' failed."<br>
><br>
> /Mattias<br>
><br>
><br>
><br>
> 2012/4/18 Keith Rome <<a href="mailto:rome@wintellect.com" target="_blank">rome@wintellect.com</a>><br>
>><br>
>> Does this not work for you?<br>
>><br>
>><br>
>><br>
>> using IronPython.Hosting;<br>
>><br>
>> // ...<br>
>><br>
>> _python = Python.CreateEngine();<br>
>><br>
>><br>
>><br>
>> I believe that should handle the simple/typical scenarios, unless you need<br>
>> to alter the environment (such as plugging in a custom Host/PAL).<br>
>><br>
>><br>
>><br>
>> If you need to customize the environment, then this should work:<br>
>><br>
>><br>
>><br>
>> var options = new Dictionary<string, object>();<br>
>><br>
>> ScriptRuntimeSetup setup = Python.CreateRuntimeSetup(options);<br>
>><br>
>> _runtime = new ScriptRuntime(setup);<br>
>><br>
>> _python = Python.GetEngine(_runtime);<br>
>><br>
>><br>
>><br>
>><br>
>><br>
>> This code should work exactly the same on desktop CLR and Silverlight.<br>
>><br>
>><br>
>><br>
>><br>
>><br>
>><br>
>><br>
>> Keith Rome<br>
>><br>
>> Senior Consultant and Architect<br>
>><br>
>> MCPD-EAD, MCSD, MCDBA, MCTS-WPF, MCTS-TFS, MCTS-WSS<br>
>><br>
>> Wintellect | <a href="tel:770.617.4016" target="_blank">770.617.4016</a> | <a href="mailto:krome@wintellect.com" target="_blank">
krome@wintellect.com</a><br>
>><br>
>> <a href="http://www.wintellect.com" target="_blank">www.wintellect.com</a><br>
>><br>
>><br>
>><br>
>> From: ironpython-users-bounces+rome=<a href="mailto:wintellect.com@python.org" target="_blank">wintellect.com@python.org</a><br>
>> [mailto:<a href="mailto:ironpython-users-bounces%2Brome" target="_blank">ironpython-users-bounces+rome</a>=<a href="mailto:wintellect.com@python.org" target="_blank">wintellect.com@python.org</a>] On Behalf<br>
>> Of Mattias Ahlenius<br>
>> Sent: Wednesday, April 18, 2012 2:41 PM<br>
>> To: <a href="mailto:ironpython-users@python.org" target="_blank">ironpython-users@python.org</a><br>
>> Subject: [Ironpython-users] Problem with embedding IronPython into<br>
>> Silverlight Application<br>
>><br>
>><br>
>><br>
>> Hi,<br>
>><br>
>><br>
>><br>
>> I'm new to scripting and would like to add support for IronPython to our<br>
>> Silverlight application, I have tried to find an answer on the net but could<br>
>> not find anyone else facing the same problem. The app is an out of browser<br>
>> application.<br>
>><br>
>><br>
>><br>
>> I've added the latest release (2.7.2) from nuget, checked that the<br>
>> binaries being used is from the SL5 libs-catalog: IronPython.2.7.2\lib\Sl5<br>
>><br>
>><br>
>><br>
>> The code I use to create the scripting engine is the following:<br>
>><br>
>><br>
>><br>
>> ..<br>
>><br>
>><br>
>> _runtime = new ScriptRuntime(DynamicEngine.CreateRuntimeSetup(true));<br>
>><br>
>> _python = _runtime.GetEngine("py");<br>
>><br>
>> ..<br>
>><br>
>><br>
>><br>
>> When GetEngine is executed I'll the following secutiry exception:<br>
>><br>
>> "{System.MethodAccessException: Attempt by security transparent method<br>
>> 'IronPython.Modules.SysModule.GetPrefix()' to access security critical<br>
>> method 'System.Reflection.Assembly.get_Location()' failed.<br>
>><br>
>> at IronPython.Modules.SysModule.GetPrefix()<br>
>><br>
>> at IronPython.Modules.SysModule..cctor()}"<br>
>><br>
>> When checking the code at GitHub for the method: GetPrefix()<br>
>><br>
>><br>
>><br>
>> There are code checking a compiler-constant that seems to be if you<br>
>> running in "silverlight" (don't have diskaccess to the libs), but the code<br>
>> seems to be executed anyway, which makes me wonder if I still doesn't use<br>
>> the correct libs for Silverlight.<br>
>><br>
>><br>
>><br>
>><br>
>><br>
>> Would really appreciate if someone could point me in the right direction.<br>
>><br>
>><br>
>><br>
>><br>
>><br>
>> Have a nice day!<br>
>><br>
>> --<br>
>><br>
>> Best regards,<br>
>><br>
>><br>
>><br>
>> Mattias Ahlenius<br>
>><br>
>> <a href="tel:031%20-%20788%2019%2025" target="_blank">031 - 788 19 25</a><br>
>><br>
>><br>
>><br>
>> Good Solutions AB<br>
>><br>
>> <a href="http://www.goodsolutions.se" target="_blank">http://www.goodsolutions.se</a><br>
>><br>
>><br>
><br>
><br>
><br>
><br>
> --<br>
><br>
> Med vänlig hälsning,<br>
><br>
> Mattias Ahlenius<br>
> <a href="tel:031%20-%20788%2019%2025" target="_blank">031 - 788 19 25</a><br>
><br>
> Good Solutions AB<br>
> <a href="http://www.goodsolutions.se" target="_blank">http://www.goodsolutions.se</a><br>
><br>
><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal">> _______________________________________________<br>
> Ironpython-users mailing list<br>
> <a href="mailto:Ironpython-users@python.org" target="_blank">Ironpython-users@python.org</a><br>
> <a href="http://mail.python.org/mailman/listinfo/ironpython-users" target="_blank">
http://mail.python.org/mailman/listinfo/ironpython-users</a><br>
><br>
<span style="color:#888888"><br>
<br>
<br>
--<br>
Website: <a href="http://earl-of-code.com" target="_blank">http://earl-of-code.com</a></span><o:p></o:p></p>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">-- <o:p></o:p></p>
<div>
<p class="MsoNormal">Med vänlig hälsning,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Mattias Ahlenius<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="tel:031%20-%20788%2019%2025" target="_blank">031 - 788 19 25</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Good Solutions AB<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="http://www.goodsolutions.se" target="_blank">http://www.goodsolutions.se</a><o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
<p class="MsoNormal"><span style="color:#888888">-- <br>
Website: <a href="http://earl-of-code.com" target="_blank">http://earl-of-code.com</a></span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">-- <o:p></o:p></p>
<div>
<p class="MsoNormal">Med vänlig hälsning,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Mattias Ahlenius<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="tel:031%20-%20788%2019%2025" target="_blank">031 - 788 19 25</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Good Solutions AB<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="http://www.goodsolutions.se" target="_blank">http://www.goodsolutions.se</a><o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">-- <o:p></o:p></p>
<div>
<p class="MsoNormal">Med vänlig hälsning,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Mattias Ahlenius<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="tel:031%20-%20788%2019%2025" target="_blank">031 - 788 19 25</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Good Solutions AB<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="http://www.goodsolutions.se" target="_blank">http://www.goodsolutions.se</a><o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
<p class="MsoNormal"><span style="color:#888888">-- <br>
Website: <a href="http://earl-of-code.com" target="_blank">http://earl-of-code.com</a></span><o:p></o:p></p>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">-- <o:p></o:p></p>
<div>
<p class="MsoNormal">Med vänlig hälsning,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Mattias Ahlenius<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="tel:031%20-%20788%2019%2025" target="_blank">031 - 788 19 25</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Good Solutions AB<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="http://www.goodsolutions.se" target="_blank">http://www.goodsolutions.se</a><o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">-- <o:p></o:p></p>
<div>
<p class="MsoNormal">Med vänlig hälsning,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Mattias Ahlenius<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">031 - 788 19 25<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Good Solutions AB<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="http://www.goodsolutions.se" target="_blank">http://www.goodsolutions.se</a><o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</body>
</html>