<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Hi Bekir,</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Thanks again for your interest in trove contribution. For SQL Server support, please just submit PoC code (including CI configuration) to verify your ideas and get familiar with the the upstream contribution process and the CI pipeline mechanism.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">For the particular issue of auto-upgrade, I agree with the fix. Do you mind creating a story here <a href="https://storyboard.openstack.org/#!/project/openstack/trove">https://storyboard.openstack.org/#!/project/openstack/trove</a> and submitting a patch for that?</div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><span style="color:rgb(102,102,102);font-family:monospace,monospace"><br></span></div><div><span style="color:rgb(102,102,102);font-family:monospace,monospace">---</span><br></div><div><font color="#666666" face="monospace, monospace">Lingxian Kong</font></div><div><font color="#666666" face="monospace, monospace">Senior Cloud Engineer (Catalyst Cloud)</font></div><div><font color="#666666" face="monospace, monospace">Trove PTL (OpenStack)</font></div><div><font color="#666666" face="monospace, monospace">OpenStack Cloud Provider Co-Lead (Kubernetes)</font><br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Feb 19, 2021 at 4:04 AM Bekir Fajkovic <<a href="mailto:bekir.fajkovic@citynetwork.eu">bekir.fajkovic@citynetwork.eu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto" style="font-size:13px"><div>OK.</div><div><br></div><div>I guess the current contributors inside the Trove community are quite busy with their own ongoing projects, and if that is the situation then i may suggest that i try to allocate </div><div>some of our internal resources with considerable python skills to contribute at least with mssql part inside Trove. Also, please tell me if You have other suggestions then so, regarding </div><div>the approach of mssql contribution inside the project, and i will take that into consideration. Our desire is that we try to add that particular type of database inside the project as soon as </div><div>possible, provided it all becomes approved. I assume it is important for us to go through the instructions describing the contribution mechanisms and maybe also establish conventional routines</div><div>for testing. I am quite experienced in work with mssql as a senior dba in that area and i know the concepts of the product, how the product woks and what should be tested primarily.</div><div>To begin with, perhaps a review should be made in order to figure out how the database engine should be adapted into the current Trove DBaaS concept, given it's specific way of applying </div><div>the configuration parameters and such, then also input parameter to docker container that are crucial to provide during instance creation (collation, edition) etc. I would be more than happy</div><div>if we could manage to start with all this in the near future.</div><div><br></div><div>When it comes to one of the other questions that i raised in our previous conversation - to intentionally disable all kinds of automatic OS upgrades in the host VM in order to avoid the risks of </div><div>unexpected disruptions in service delivery, my idea is to add a post install script inside 'ubuntu-guest' element that would disable the automatic updates.</div><div><br></div><div>For example, to add a suitable executable bash script under:</div><div><br></div><p><strong>/trove/integration/scripts/files/elements/ubuntu-guest/post-install.d</strong></p><div>containing, for example similar code:</div><div><br>--------------------------------------------------------------------------------------------<br>#!/bin/bash<br>set -e<br>set -o xtrace<br>sed -i 's/"1"/"0"/g' /etc/apt/apt.conf.d/20auto-upgrades<br>--------------------------------------------------------------------------------------------</div><div><br></div><div>that could be applied during instantiation of the VM from the guest image.</div><div><p></p><div>That might possibly do the magic, or what is Your opinion? Then, applying the unattended updates could be carried out in more controllable fashion, instead letting the OS decide.</div><div>This is particularly important in transaction intensive systems and similar..</div><div><br></div><div>Best Regards</div><div><br></div><img style="width: 1.7708in; height: 0.3229in;" src="https://www.citynetwork.eu/wp-content/uploads/2015/06/CityNetwork-Logo-Regular-2015-RGB.png" width="170" height="31" id="gmail-m_1623097760315448148webClient__x0000_i1025" border="0"><p></p><p><strong>Bekir Fajkovic</strong><br>Senior DBA<br>Mobile: +46 70 019 48 47<br><br><a rel="noreferrer noopener" href="http://www.citynetwork.eu/" target="_blank">www.citynetwork.eu</a> | <a rel="noreferrer noopener" href="http://www.citycloud.com/" target="_blank">www.citycloud.com</a><br><br>INNOVATION THROUGH OPEN IT INFRASTRUCTURE<br>ISO 9001, 14001, 27001, 27015 & 27018 CERTIFIED</p></div><div><br></div><div style="font-size:13px;font-family:Roboto,Tahoma,Helvetica,sans-serif;line-height:normal" dir="LTR"><div style="margin:0px;font-family:Roboto,Tahoma,Helvetica,sans-serif;font-size:13px;font-weight:300;line-height:150%;letter-spacing:normal;color:rgb(51,51,51)"><div style="display:none;margin:0px;font-family:Roboto,Tahoma,Helvetica,sans-serif;font-size:13px;font-weight:300;line-height:150%;letter-spacing:normal;color:rgb(51,51,51)">----- Original Message -----</div><hr style="width:100%;padding:0px;margin:10px 0px;color:rgb(136,136,136);background-color:rgb(136,136,136);border-color:rgb(221,221,221)" width="100%" size="1">From: Lingxian Kong (<a style="font-family:Helvetica,sans-serif;font-size:12px;font-weight:300;line-height:150%;color:rgb(0,136,204);text-decoration:none" href="mailto:anlin.kong@gmail.com" target="_blank">anlin.kong@gmail.com</a>)<br>Date: 02/17/21 03:19<br><span style="font-family:Roboto,Tahoma,Helvetica,sans-serif;font-size:12px;line-height:150%;color:rgb(51,51,51);text-decoration:none;font-weight:normal">To: Bekir Fajkovic (<a style="font-family:Helvetica,sans-serif;font-size:12px;font-weight:300;line-height:150%;color:rgb(0,136,204);text-decoration:none" href="mailto:bekir.fajkovic@citynetwork.eu" target="_blank">bekir.fajkovic@citynetwork.eu</a>)<br>Cc: openstack-discuss (<a style="font-family:Helvetica,sans-serif;font-size:12px;font-weight:300;line-height:150%;color:rgb(0,136,204);text-decoration:none" href="mailto:openstack-discuss@lists.openstack.org" target="_blank">openstack-discuss@lists.openstack.org</a>)<br>Subject: <span style="font-family:Helvetica,sans-serif;font-size:12px;line-height:150%;color:rgb(51,51,51);text-decoration:none;font-weight:bold">Re: Re[6]: Some questions regarding OpenStack Trove Victoria release</span></span></div><br><div><div dir="ltr"><div style="font-family:verdana,sans-serif" class="gmail_default">Yeah, if there is a way to test SQL Server integration for Trove in upstream CI, either using Developer Edition or 3rd party CI facility, I don't see there is any reason to block the contribution</div><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><span style="color:rgb(102,102,102);font-family:monospace,monospace"><br></span></div><div><span style="color:rgb(102,102,102);font-family:monospace,monospace">---</span></div><div>Lingxian Kong</div><div>Senior Cloud Engineer (Catalyst Cloud)</div><div>Trove PTL (OpenStack)</div><div>OpenStack Cloud Provider Co-Lead (Kubernetes)</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Feb 17, 2021 at 12:08 AM Bekir Fajkovic <<a href="mailto:bekir.fajkovic@citynetwork.eu" target="_blank">bekir.fajkovic@citynetwork.eu</a>> wrote:</div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"><div style="font-size:13px" dir="auto"><div>Hello!</div><div><br></div><div>Yes, i am aware of the fact that MSSQL was previously provisioned only through a certain forks derived from the Trove project, prior to Victoria release, that's true.</div><div><br></div><div>I assume You are aiming at licensing and cost issues in regards of testing and usage in general of the mssql as an enterprise platform?</div><div><br></div><div>My vision is like this - there are already docker images ready for deployment of mssql 2017 and 2019 versions (all editions, Developer - Express - Standard - Enterprise - EnterpriseCore)</div><div>and these are available for docker deployment through environment variables (MSSQL_PID in particular) where the product id is the edition chosen. If choosing a commercial edition, </div><div>Microsoft assumes the SPLA or other license agreement already exists for the customer, so the pricing for the commercial  instances should easily be figured out by the cloud hosting</div><div>platform and existing license agreements with Microsoft. It is at least so if You try to deploy mssql on, say, Ubuntu today. After installation, user must execute a script that configures</div><div>certain things and also deploys the suitable Edition chosen (and the license model as well). No need fot any license key registration is needed in this kind of scenario.</div><div><br></div><div>When it comes to testing, Developer Edition of the product would be quite suitable since it is free of charge. Express Edition is free of charge as well but Developer Edition provides full functionality.</div><div>Pure functionality testing can be carried out by, say, at least City Network, each time new things are deployed and improved for that particular datastore type.</div><div><br></div><div>Honestly, although not open source and although it is highly commercial product, a huge army of the customers are expecting mostly that particular database type to be provided.</div><div><br></div><div>:)</div><div><p><img style="width: 1.7708in; height: 0.3229in;" src="https://www.citynetwork.eu/wp-content/uploads/2015/06/CityNetwork-Logo-Regular-2015-RGB.png" width="170" height="31" id="gmail-m_1623097760315448148gmail-m_-2347128197572181775webClient__x0000_i1025" border="0"></p><p><strong>Bekir Fajkovic</strong><br>Senior DBA<br>Mobile: +46 70 019 48 47<br><br><a rel="noreferrer noopener" href="http://www.citynetwork.eu/" target="_blank">www.citynetwork.eu</a> | <a rel="noreferrer noopener" href="http://www.citycloud.com/" target="_blank">www.citycloud.com</a><br><br>INNOVATION THROUGH OPEN IT INFRASTRUCTURE<br>ISO 9001, 14001, 27001, 27015 & 27018 CERTIFIED</p></div><div><br></div><div style="font-size:13px;font-family:Roboto,Tahoma,Helvetica,sans-serif;line-height:normal" dir="LTR"><div style="margin:0px;font-family:Roboto,Tahoma,Helvetica,sans-serif;font-size:13px;font-weight:300;line-height:150%;letter-spacing:normal;color:rgb(51,51,51)"><div style="display:none;margin:0px;font-family:Roboto,Tahoma,Helvetica,sans-serif;font-size:13px;font-weight:300;line-height:150%;letter-spacing:normal;color:rgb(51,51,51)">----- Original Message -----</div><hr style="width:100%;padding:0px;margin:10px 0px;color:rgb(136,136,136);background-color:rgb(136,136,136);border-color:rgb(221,221,221)" width="100%" size="1">From: Lingxian Kong (<a style="font-family:Helvetica,sans-serif;font-size:12px;font-weight:300;line-height:150%;color:rgb(0,136,204);text-decoration:none" href="mailto:anlin.kong@gmail.com" target="_blank">anlin.kong@gmail.com</a>)<br>Date: 02/16/21 11:33<br><span style="font-family:Roboto,Tahoma,Helvetica,sans-serif;font-size:12px;line-height:150%;color:rgb(51,51,51);text-decoration:none;font-weight:normal">To: Bekir Fajkovic (<a style="font-family:Helvetica,sans-serif;font-size:12px;font-weight:300;line-height:150%;color:rgb(0,136,204);text-decoration:none" href="mailto:bekir.fajkovic@citynetwork.eu" target="_blank">bekir.fajkovic@citynetwork.eu</a>)<br>Cc: openstack-discuss (<a style="font-family:Helvetica,sans-serif;font-size:12px;font-weight:300;line-height:150%;color:rgb(0,136,204);text-decoration:none" href="mailto:openstack-discuss@lists.openstack.org" target="_blank">openstack-discuss@lists.openstack.org</a>)<br>Subject: <span style="font-family:Helvetica,sans-serif;font-size:12px;line-height:150%;color:rgb(51,51,51);text-decoration:none;font-weight:bold">Re: Re[4]: Some questions regarding OpenStack Trove Victoria release</span></span></div><br><div><div dir="ltr"><div style="font-family:verdana,sans-serif" class="gmail_default">Hello again, Bekir.</div><div style="font-family:verdana,sans-serif" class="gmail_default"><br></div><div style="font-family:verdana,sans-serif" class="gmail_default">There is no one currently working (or ever worked) on SQL Server support in Trove, but I don't think it is difficult to add. My only concern is, given the SQL Server is an enterprise database platform, how is it going to be tested in the upstream CI?</div><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><span style="color:rgb(102,102,102);font-family:monospace,monospace"><br></span></div><div><span style="color:rgb(102,102,102);font-family:monospace,monospace">---</span></div><div>Lingxian Kong</div><div>Senior Cloud Engineer (Catalyst Cloud)</div><div>Trove PTL (OpenStack)</div><div>OpenStack Cloud Provider Co-Lead (Kubernetes)</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Feb 16, 2021 at 10:27 PM Bekir Fajkovic <<a href="mailto:bekir.fajkovic@citynetwork.eu" target="_blank">bekir.fajkovic@citynetwork.eu</a>> wrote:</div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"><div style="font-size:13px" dir="auto"><div>Hello again!</div><div><br></div><div>One additional question here:</div><div><br></div><div>Regarding the status of MSSQL provisioning inside the Trove project, is this abandoned or is it going to be provided in the future?</div><div>Do You have any developers involved in development of this particular datastore type right now and how easy it would be to add</div><div>it to the Trove Victoria concept?</div><div><br></div><div>I guess most of the work should be done on modifying the Guest Agent to adapt to MSSQL, probably this part of the project:</div><div><br></div><div><a href="https://github.com/openstack/trove/tree/master/trove/guestagent" target="_blank">https://github.com/openstack/trove/tree/master/trove/guestagent</a></div><div><br></div><div>If there is no ongoing development work towards integration of MSSQL into Trove right now, maybe we at City Network could</div><div>contribute with that particular work by allocating suitable developer resources? </div><div><br></div><div>Best Regards</div><div><p><img style="width: 1.7708in; height: 0.3229in;" src="https://www.citynetwork.eu/wp-content/uploads/2015/06/CityNetwork-Logo-Regular-2015-RGB.png" width="170" height="31" id="gmail-m_1623097760315448148gmail-m_-2347128197572181775gmail-m_-126314258774715328webClient__x0000_i1025" border="0"></p><p><strong>Bekir Fajkovic</strong><br>Senior DBA<br>Mobile: +46 70 019 48 47<br><br><a rel="noreferrer noopener" href="http://www.citynetwork.eu/" target="_blank">www.citynetwork.eu</a> | <a rel="noreferrer noopener" href="http://www.citycloud.com/" target="_blank">www.citycloud.com</a><br><br>INNOVATION THROUGH OPEN IT INFRASTRUCTURE<br>ISO 9001, 14001, 27001, 27015 & 27018 CERTIFIED</p></div><div><br></div><div style="font-size:13px;font-family:Roboto,Tahoma,Helvetica,sans-serif;line-height:normal" dir="LTR"><div style="margin:0px;font-family:Roboto,Tahoma,Helvetica,sans-serif;font-size:13px;font-weight:300;line-height:150%;letter-spacing:normal;color:rgb(51,51,51)"><div style="display:none;margin:0px;font-family:Roboto,Tahoma,Helvetica,sans-serif;font-size:13px;font-weight:300;line-height:150%;letter-spacing:normal;color:rgb(51,51,51)">----- Original Message -----</div><hr style="width:100%;padding:0px;margin:10px 0px;color:rgb(136,136,136);background-color:rgb(136,136,136);border-color:rgb(221,221,221)" width="100%" size="1">From: Lingxian Kong (<a style="font-family:Helvetica,sans-serif;font-size:12px;font-weight:300;line-height:150%;color:rgb(0,136,204);text-decoration:none" href="mailto:anlin.kong@gmail.com" target="_blank">anlin.kong@gmail.com</a>)<br>Date: 01/26/21 10:51<br><span style="font-family:Roboto,Tahoma,Helvetica,sans-serif;font-size:12px;line-height:150%;color:rgb(51,51,51);text-decoration:none;font-weight:normal">To: Bekir Fajkovic (<a style="font-family:Helvetica,sans-serif;font-size:12px;font-weight:300;line-height:150%;color:rgb(0,136,204);text-decoration:none" href="mailto:bekir.fajkovic@citynetwork.eu" target="_blank">bekir.fajkovic@citynetwork.eu</a>)<br>Cc: openstack-discuss (<a style="font-family:Helvetica,sans-serif;font-size:12px;font-weight:300;line-height:150%;color:rgb(0,136,204);text-decoration:none" href="mailto:openstack-discuss@lists.openstack.org" target="_blank">openstack-discuss@lists.openstack.org</a>)<br>Subject: <span style="font-family:Helvetica,sans-serif;font-size:12px;line-height:150%;color:rgb(51,51,51);text-decoration:none;font-weight:bold">Re: Re[2]: Some questions regarding OpenStack Trove Victoria release</span></span></div><br><div><div dir="ltr"><div dir="ltr"><div style="font-family:verdana,sans-serif" class="gmail_default"><span style="font-family:Arial,Helvetica,sans-serif">On Tue, Jan 26, 2021 at 8:43 PM Bekir Fajkovic <<a href="mailto:bekir.fajkovic@citynetwork.eu" target="_blank">bekir.fajkovic@citynetwork.eu</a>> wrote:</span></div></div><div class="gmail_quote"><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"><div style="font-size:13px" dir="auto"><div>Hi!</div><div><br></div><div>Thanks a lot for the kind answers and explanations, now the picture of the concept and the current development situation overall is much clearer to me.</div><div><br></div><div>Regarding the question about different types of Guest Agents acquired, depending on the database type, that i asked, it is mainly based on the information i read</div><div>about in the latest edition of the book "<strong><em>Openstack Trove Essentials</em></strong>" by Alok Shrivastwa and Sunil Sarat that i purchased recently.</div><div><br></div><div>For example, as mentioned in the book:</div><div><br><em><strong>- Let's also look at the different types of guest agents that are required depending
on the database engine that needs to be supported. The different guest agents<br>  (for example, the MySQL and PostgreSQL guest agents) may even have different capabilities depending on what is supported on the particular database.</strong></em> (page 6)<br><strong><em>- The Guest Agent code is different for every datastore that needs to be supported and the Guest Agent for that particular datastore is installed on the corresponding image of the datastore version. </em></strong>(page 10)<br><strong><em>- As we have already seen in the previous chapters, the guest agent is different for different database engines, and hence the correct version of the guest agent needs to be installed on the system. </em></strong>(page 58)</div></div></blockquote><div><br></div><div style="font-family:verdana,sans-serif" class="gmail_default">Some of those have been changed and not the case any more. After database containerization, there is no database related stuff installed in the guest image. However, it's correct that different datastores are implemented as different drivers, so you can say "The Guest Agent code is different".</div><div style="font-family:verdana,sans-serif" class="gmail_default"><br></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"><div style="font-size:13px" dir="auto"><div title="Page 27"><br></div><div title="Page 31"><div><div>When it comes to guest image creation, i found now the places in the code that are used, as well as the acquired elements. A call to the function <strong>build_guest_image() </strong>is performed, involving those needed elements<br>as minimal requirements:</div><div><br></div><div>- <strong><em>ubuntu-minimal </em></strong>(which also invokes <em><strong>ubuntu-common</strong></em> i think)</div><div>- <strong><em>cloud-init-datasources</em></strong></div><div>- <strong><em>pip-and-virtualenv</em></strong></div><div>- <strong><em>pip-cache</em></strong></div><div>- <strong><em>guest-agent</em></strong></div><div>- <span>${guest_os}</span>-<strong><em>docker</em></strong></div><div>- <strong><em>root-passwd</em></strong></div><div><br></div><div>ref:</div><div><a href="https://github.com/openstack/trove/blob/master/integration/scripts/functions_qemu" target="_blank">https://github.com/openstack/trove/blob/master/integration/scripts/functions_qemu</a></div><div><br></div><div>So, when it comes to my question regarding the disabling of the automatic updates, it should be doable in a couple of ways. Either by executing a script placed in UserData during guest VM creation and initialisation</div><div>or by manipulating elements (for example, such as we have a script placed in <strong>ubuntu-common</strong> element that disables privacy extensions for IPv6 (RFC4941):<br><br>/usr/local/lib/python3.6/dist-packages/diskimage_builder/elements/ubuntu-common/install.d/80-disable-rfc3041</div></div></div></div></blockquote><div><br></div><div style="font-family:verdana,sans-serif" class="gmail_default">You are right, but the recommended way is either those changes could be contributed back to the upstream if they are common feature requests and could benefit the others, or they are implemented in a separate element so there is little chance that conflict may happen when upgrading trove.</div><div style="font-family:verdana,sans-serif" class="gmail_default"><br></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"><div style="font-size:13px" dir="auto"><div title="Page 31"><div><div><br></div>I am really looking forward to our soon deployment of the Trove project, i see huge potential there!</div></div></div></blockquote><div><br></div><div style="font-family:verdana,sans-serif" class="gmail_default">Good luck and please let me know if you have any other questions.</div><div style="font-family:verdana,sans-serif" class="gmail_default"><br></div><div class="gmail_default"><div style="font-family:verdana,sans-serif"><span style="color:rgb(102,102,102);font-family:monospace,monospace">---</span></div><div><div style="font-family:verdana,sans-serif">Lingxian Kong</div><div>Senior Cloud Engineer (Catalyst Cloud)</div><div>Trove PTL (OpenStack) </div><div>OpenStack Cloud Provider Co-Lead (Kubernetes)</div><div style="font-family:verdana,sans-serif"><a href="http://www.catalystcloud.nz" target="_blank"></a></div></div></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"><br></blockquote></div></div></div></div></div></blockquote></div></div></div></div></blockquote></div></div></div></div>

</blockquote></div>