<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 15 (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]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Segoe UI";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
@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:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
code
        {mso-style-priority:99;
        font-family:"Courier New";}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
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="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hello everybody, thank you for the great project.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am currently having an issue, and would like to propose a change, if I may….<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt;background:white">
<span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">I have a data provider which needs some customization on the network stream (it requires to be decompressed).<o:p></o:p></span></p>
<p class="MsoNormal" style="background:white"><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">Currently, the class </span><span style="font-size:9.0pt;font-family:Consolas;color:#24292E">SocketInitiatorThread</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E"> has
 a method </span><span style="font-size:9.0pt;font-family:Consolas;color:#24292E">protected virtual SetupStream()</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E"> with the comment:<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">/// <summary><o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">/// Setup/Connect to the other party.<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">/// Override this in order to setup other types of streams with other settings<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">/// </summary><o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">/// <returns>Stream representing the (network)connection to the other party</returns><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;background:white"><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">So this is clearly the place I should override and add the customization.<o:p></o:p></span></p>
<p class="MsoNormal" style="background:white"><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">My problem is that this class is created on </span><span style="font-size:9.0pt;font-family:Consolas;color:#24292E">SocketInitiator.DoConnect</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">,
 with this implementation:<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">protected override void DoConnect(SessionID sessionID, Dictionary settings)<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">{<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">    Session session = null;<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">    try<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">    {<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">        session = Session.LookupSession(sessionID);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">        if (!session.IsSessionTime)<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">            return;<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">        IPEndPoint socketEndPoint = GetNextSocketEndPoint(sessionID, settings);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">        SetPending(sessionID);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">        session.Log.OnEvent("Connecting to " + socketEndPoint.Address + " on port " + socketEndPoint.Port);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">        //Setup socket settings based on current section<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">        var socketSettings = socketSettings_.Clone();<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">        socketSettings.Configure(settings);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">        // Create a Ssl-SocketInitiatorThread if a certificate is given<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">        SocketInitiatorThread t = new SocketInitiatorThread(this, session, socketEndPoint, socketSettings);               
<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">        t.Start();<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">        AddThread(t);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">    }<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">    catch (System.Exception e)<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">    {<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">        if (null != session)<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">            session.Log.OnEvent(e.Message);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">    }<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">}<o:p></o:p></span></p>
<p class="MsoNormal" style="background:white"><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">So, in order to inherit from </span><span style="font-size:9.0pt;font-family:Consolas;color:#24292E">SocketInitiatorThread</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">,
 and override </span><span style="font-size:9.0pt;font-family:Consolas;color:#24292E">SetupStream</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">, I have to also inherit from </span><span style="font-size:9.0pt;font-family:Consolas;color:#24292E">SocketInitiator</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E"> and
 override </span><span style="font-size:9.0pt;font-family:Consolas;color:#24292E">DoConnect</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">.<o:p></o:p></span></p>
<p class="MsoNormal" style="background:white"><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">Unfortunatly, many methods used inside </span><span style="font-size:9.0pt;font-family:Consolas;color:#24292E">DoConnect</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E"> are
 private (like </span><span style="font-size:9.0pt;font-family:Consolas;color:#24292E">GetNextSocketEndPoint</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">, </span><span style="font-size:9.0pt;font-family:Consolas;color:#24292E">AddThread</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">,
 etc.). And I´ll end up having to duplicate the whole class.<o:p></o:p></span></p>
<p class="MsoNormal" style="background:white"><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:white"><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">I propose either:<br>
<b>(1)</b> Extract the line which creates the </span><span style="font-size:9.0pt;font-family:Consolas;color:#24292E">SocketInitiatorThread</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E"> to a virtual method<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">   public virtual CreateSocketInitiatorThread(Session session, IPEndPoint socketEndPoint, SocketSettings
 socketSettings)<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">{
<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">     return new SocketInitiatorThread(this, session, socketEndPoint, socketSettings);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">}
<o:p></o:p></span></p>
<p class="MsoNormal" style="background:white"><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:white"><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">or<br>
<b>(2)</b> Inject a factory (</span><span style="font-size:9.0pt;font-family:Consolas;color:#24292E">ISocketInitiatorThreadFactory</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">) into </span><span style="font-size:9.0pt;font-family:Consolas;color:#24292E">SocketInitiator</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">,
 such that:<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">public interface ISocketInitiatorThreadFactory<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">    {<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">        SocketInitiatorThread Create(Transport.SocketInitiator initiator, Session session, IPEndPoint socketEndPoint,
 SocketSettings socketSettings);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">    }<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">    class DefaultSocketInitiatorThreadFactory : ISocketInitiatorThreadFactory<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">    {<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">        public SocketInitiatorThread Create(SocketInitiator initiator, Session session, IPEndPoint socketEndPoint,
 SocketSettings socketSettings)<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">            => new SocketInitiatorThread(initiator, session, socketEndPoint, socketSettings);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F6F8FA"><span style="font-size:9.0pt;font-family:Consolas;color:#24292E;border:none windowtext 1.0pt;padding:0cm">    }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;background:white"><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">And then create a new constructor receiving the factory. (the other constructors will use the default factory).<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-bottom-alt:auto;background:white"><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">I much rather the second approach since the 1st one can lead to violating LSP<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Is there any issue I am not seeing, or can I create a pull request for it ?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">BTW, I have wrongly created an issue for this, should I close it until we decide what to do ?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thank you very much<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="0" style="width:390.0pt">
<tbody>
<tr style="height:48.75pt">
<td width="162" valign="bottom" style="width:117.0pt;padding:0cm 0cm 0cm 0cm;height:48.75pt">
<p class="MsoNormal" align="right" style="text-align:right"><a href="https://modal.com.br/html/index.php"><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:blue;text-decoration:none"><img border="0" width="156" height="57" style="width:1.625in;height:.5937in" id="_x0000_i1025" src="http://www.modal.com.br/emailmkt/marca-assinatura.jpg" alt="http://www.modal.com.br/emailmkt/marca-assinatura.jpg"></span></a><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#1F497D;mso-fareast-language:PT-BR"><o:p></o:p></span></p>
</td>
<td width="12" style="width:9.0pt;padding:0cm 0cm 0cm 0cm;height:48.75pt">
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#1F497D;mso-fareast-language:PT-BR"> 
<o:p></o:p></span></p>
</td>
<td width="345" rowspan="2" valign="bottom" style="width:249.0pt;padding:0cm 0cm 0cm 0cm;height:48.75pt">
<p class="MsoNormal"><b><span style="font-size:10.0pt;color:#394036;mso-fareast-language:PT-BR">FABIO CATUNDA MARRECO</span></b><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#1F497D;mso-fareast-language:PT-BR">
<o:p></o:p></span></p>
</td>
</tr>
<tr style="height:11.25pt">
<td colspan="2" valign="bottom" style="padding:0cm 0cm 0cm 0cm;height:11.25pt"></td>
</tr>
<tr>
<td colspan="2" style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#797752;mso-fareast-language:PT-BR"> </span><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#797752;mso-fareast-language:PT-BR"><o:p></o:p></span></p>
</td>
<td style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><span style="font-size:7.5pt;color:#797752;mso-fareast-language:PT-BR"><a href="mailto:fabio.marreco@modal.com.br%20"><span style="color:#797752">fabio.marreco@modal.com.br</span><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#797752">
</span></a></span><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#797752;mso-fareast-language:PT-BR"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:9.0pt">
<td colspan="2" style="padding:0cm 0cm 0cm 0cm;height:9.0pt"></td>
<td style="padding:0cm 0cm 0cm 0cm;height:9.0pt"></td>
</tr>
<tr>
<td colspan="2" valign="bottom" style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#1F497D;mso-fareast-language:PT-BR"> </span><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#1F497D;mso-fareast-language:PT-BR"><o:p></o:p></span></p>
</td>
<td style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;color:#394036;mso-fareast-language:PT-BR">Tels. 55 21 3223 7801 | 7700
<br>
Fax   55 21 3223 7738 </span><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#1F497D;mso-fareast-language:PT-BR"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#1F497D;mso-fareast-language:PT-BR"><a href="http://www.modal.com.br"><span style="font-size:7.5pt;font-family:"Calibri",sans-serif;color:#777952">www.modal.com.br</span><span style="color:blue">
</span></a><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<META content="MSHTML 6.00.6002.19567" name=GENERATOR></HEAD>
<BODY>
<TABLE cellSpacing=0 cellPadding=0 width=474 border=0>
  <TBODY>
  <TR>
    <TD width=47><IMG src="http://www.modal.com.br/images/rec.png"></TD>
    <TD width=427><FONT face="Arial, Helvetica, sans-serif" size=1>A impressão 
      consciente gera economia e responsabilidade com o meio ambiente 
  </FONT></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=3 cellPadding=0 width=456>
  <TBODY>
  <TR>
    <TD width=468>
      <DIV align=justify><FONT face="Arial, Helvetica, sans-serif" color=#004c41 
      size=1>Atenção:</FONT><FONT face="Arial, Helvetica, sans-serif" 
      color=#727272 size=1> Esta comunicação deve ser lida apenas pelo seu 
      destinatário e não pode ser retransmitida sem autorização formal. Se esta 
      mensagem tiver sido recebida indevidamente, por favor destrua-a e retire-a 
      de seu computador.<BR>Qualquer reprodução, disseminação, alteração, 
      distribuição e/ou publicação deste e-mail é estritamente proibida. 
      </FONT></DIV></TD></TR>
  <TR>
    <TD> </TD></TR>
  <TR>
    <TD>
      <DIV align=justify><FONT face="Arial, Helvetica, sans-serif" color=#004c41 
      size=1>Notice of Confidentiality:</FONT><FONT 
      face="Arial, Helvetica, sans-serif" color=#727272 size=1> This document 
      should only be read by those persons to whom it is addressed and is not 
      intended to be relied upon by any person without subsequent written 
      confirmation of its contents. If you have received this e-mail message in 
      error, please destroy it and delete it from your computer.<BR>Any form of 
      reproduction, dissemination, copying, disclosure, modification, 
      distribution and/or publication of this e-mail message is strictly 
      prohibited.</FONT></DIV></TD></TR></TBODY></TABLE><!-- End ImageReady Slices --></BODY></HTML>
</body>
</html>