<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=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 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:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@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-IN" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">Hi all,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"> <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I am trying to clone a lvm2 image following thing haapens when I clone a image with
<b>virt-clone </b>command<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US">virt-clone --prompt --force --original lvm_thin_1 --name lvm_thin_2 --file /dev/volgrp/lvm_thin2<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US">Now when I clone this, It clone successfully but the cloned image is fully expanded , I mean it takes all 100% space<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US">#lvs<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US"><o:p> </o:p></span></b></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="margin-left:-1.15pt;border-collapse:collapse">
<tbody>
<tr style="height:14.25pt">
<td width="79" valign="top" style="width:59.25pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:14.25pt">
<p class="MsoNormal" style="margin-left:.75pt"><b>LV<o:p></o:p></b></p>
</td>
<td width="54" valign="top" style="width:40.8pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt;height:14.25pt">
<p class="MsoNormal"><b>VG<o:p></o:p></b></p>
</td>
<td width="72" valign="top" style="width:53.7pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt;height:14.25pt">
<p class="MsoNormal"><b>Attr<o:p></o:p></b></p>
</td>
<td width="72" valign="top" style="width:54.0pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt;height:14.25pt">
<p class="MsoNormal"><b>LSize<o:p></o:p></b></p>
</td>
<td width="84" valign="top" style="width:63.0pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt;height:14.25pt">
<p class="MsoNormal"><b>Pool Origin<o:p></o:p></b></p>
</td>
<td width="60" valign="top" style="width:45.0pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt;height:14.25pt">
<p class="MsoNormal"><b>Data%<o:p></o:p></b></p>
</td>
</tr>
<tr style="height:12.75pt">
<td width="79" valign="top" style="width:59.25pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt;height:12.75pt">
<p class="MsoNormal" style="margin-left:.75pt">lvm_thin_1<b><o:p></o:p></b></p>
</td>
<td width="54" valign="top" style="width:40.8pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:12.75pt">
<p class="MsoNormal">Volgrp<b><o:p></o:p></b></p>
</td>
<td width="72" valign="top" style="width:53.7pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:12.75pt">
<p class="MsoNormal">Vwi-aotz<b><o:p></o:p></b></p>
</td>
<td width="72" valign="top" style="width:54.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:12.75pt">
<p class="MsoNormal">8.00g<b><o:p></o:p></b></p>
</td>
<td width="84" valign="top" style="width:63.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:12.75pt">
<p class="MsoNormal">pool<b><o:p></o:p></b></p>
</td>
<td width="60" valign="top" style="width:45.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:12.75pt">
<p class="MsoNormal"><b>10.18<o:p></o:p></b></p>
</td>
</tr>
<tr style="height:13.5pt">
<td width="79" valign="top" style="width:59.25pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt">
<p class="MsoNormal" style="margin-left:.75pt">lvm_thin_2<o:p></o:p></p>
</td>
<td width="54" valign="top" style="width:40.8pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt">
<p class="MsoNormal">volgrp<o:p></o:p></p>
</td>
<td width="72" valign="top" style="width:53.7pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt">
<p class="MsoNormal">Vwi-a-tz<o:p></o:p></p>
</td>
<td width="72" valign="top" style="width:54.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt">
<p class="MsoNormal">8.00g<o:p></o:p></p>
</td>
<td width="84" valign="top" style="width:63.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt">
<p class="MsoNormal">pool<o:p></o:p></p>
</td>
<td width="60" valign="top" style="width:45.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt">
<p class="MsoNormal"><b>100.00<o:p></o:p></b></p>
</td>
</tr>
<tr style="height:16.6pt">
<td width="79" valign="top" style="width:59.25pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt;height:16.6pt">
<p class="MsoNormal" style="margin-left:.75pt">pool<o:p></o:p></p>
</td>
<td width="54" valign="top" style="width:40.8pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:16.6pt">
<p class="MsoNormal">volgrp<o:p></o:p></p>
</td>
<td width="72" valign="top" style="width:53.7pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:16.6pt">
<p class="MsoNormal">twi-a-tz<o:p></o:p></p>
</td>
<td width="72" valign="top" style="width:54.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:16.6pt">
<p class="MsoNormal">100.00g<o:p></o:p></p>
</td>
<td width="84" valign="top" style="width:63.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:16.6pt">
<p class="MsoNormal"><o:p> </o:p></p>
</td>
<td width="60" valign="top" style="width:45.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:16.6pt">
<p class="MsoNormal">8.97<b><o:p></o:p></b></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US">
<o:p></o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US">Now as you can see The 2<sup>nd</sup> lvm thin disk is fully expanded to 100%<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><span lang="EN-US">I then downloaded the<b> virtinst </b>source code from the<b>
<a href="http://virt-manager.org/">http://virt-manager.org/</a> site<o:p></o:p></b></span></p>
<p class="MsoNormal"><b><span lang="EN-US">Package:- virtinst-0.600.3.tar.gz<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US">The I dig into to the code<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US">Now here is what I notice <o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US">In file VirtualDisk.py<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US">Function:- def _clone_local(self, meter, size_bytes)<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US">I changed some code <o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US">Here is the diff<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><span lang="EN-US">[root@localhost work]# diff changedcode/virtinst-0.600.3/virtinst/VirtualDisk.py virtinst-0.600.3/virtinst/VirtualDisk.py<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">1383a1384<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">> clone_block_size = 4096<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">1391a1393<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">1399c1401<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">< if sparse and zeros == l:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">---<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">> if zeros == l:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">1411a1414<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US">Here I removed the sparse from the condition, and also change the cloned_block_size(varying this value change the cloned image size to some extent)<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US">Initially the sparse is false That’s why the condition is not checked , I skipped that part<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US">Now<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US">#lvs<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US"><o:p> </o:p></span></b></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="margin-left:-1.15pt;border-collapse:collapse">
<tbody>
<tr style="height:14.25pt">
<td width="79" valign="top" style="width:59.25pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:14.25pt">
<p class="MsoNormal" style="margin-left:.75pt"><b>LV<o:p></o:p></b></p>
</td>
<td width="54" valign="top" style="width:40.8pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt;height:14.25pt">
<p class="MsoNormal"><b>VG<o:p></o:p></b></p>
</td>
<td width="72" valign="top" style="width:53.7pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt;height:14.25pt">
<p class="MsoNormal"><b>Attr<o:p></o:p></b></p>
</td>
<td width="72" valign="top" style="width:54.0pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt;height:14.25pt">
<p class="MsoNormal"><b>LSize<o:p></o:p></b></p>
</td>
<td width="84" valign="top" style="width:63.0pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt;height:14.25pt">
<p class="MsoNormal"><b>Pool Origin<o:p></o:p></b></p>
</td>
<td width="60" valign="top" style="width:45.0pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt;height:14.25pt">
<p class="MsoNormal"><b>Data%<o:p></o:p></b></p>
</td>
</tr>
<tr style="height:12.75pt">
<td width="79" valign="top" style="width:59.25pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt;height:12.75pt">
<p class="MsoNormal" style="margin-left:.75pt">lvm_thin_1<b><o:p></o:p></b></p>
</td>
<td width="54" valign="top" style="width:40.8pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:12.75pt">
<p class="MsoNormal">Volgrp<b><o:p></o:p></b></p>
</td>
<td width="72" valign="top" style="width:53.7pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:12.75pt">
<p class="MsoNormal">Vwi-aotz<b><o:p></o:p></b></p>
</td>
<td width="72" valign="top" style="width:54.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:12.75pt">
<p class="MsoNormal">8.00g<b><o:p></o:p></b></p>
</td>
<td width="84" valign="top" style="width:63.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:12.75pt">
<p class="MsoNormal">pool<b><o:p></o:p></b></p>
</td>
<td width="60" valign="top" style="width:45.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:12.75pt">
<p class="MsoNormal"><b>10.18<o:p></o:p></b></p>
</td>
</tr>
<tr style="height:13.5pt">
<td width="79" valign="top" style="width:59.25pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt">
<p class="MsoNormal" style="margin-left:.75pt">lvm_thin_2<o:p></o:p></p>
</td>
<td width="54" valign="top" style="width:40.8pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt">
<p class="MsoNormal">volgrp<o:p></o:p></p>
</td>
<td width="72" valign="top" style="width:53.7pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt">
<p class="MsoNormal">Vwi-a-tz<o:p></o:p></p>
</td>
<td width="72" valign="top" style="width:54.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt">
<p class="MsoNormal">8.00g<o:p></o:p></p>
</td>
<td width="84" valign="top" style="width:63.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt">
<p class="MsoNormal">pool<o:p></o:p></p>
</td>
<td width="60" valign="top" style="width:45.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:13.5pt">
<p class="MsoNormal"><b>8.51<o:p></o:p></b></p>
</td>
</tr>
<tr style="height:16.6pt">
<td width="79" valign="top" style="width:59.25pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt;height:16.6pt">
<p class="MsoNormal" style="margin-left:.75pt">pool<o:p></o:p></p>
</td>
<td width="54" valign="top" style="width:40.8pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:16.6pt">
<p class="MsoNormal">volgrp<o:p></o:p></p>
</td>
<td width="72" valign="top" style="width:53.7pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:16.6pt">
<p class="MsoNormal">twi-a-tz<o:p></o:p></p>
</td>
<td width="72" valign="top" style="width:54.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:16.6pt">
<p class="MsoNormal">100.00g<o:p></o:p></p>
</td>
<td width="84" valign="top" style="width:63.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:16.6pt">
<p class="MsoNormal"><o:p> </o:p></p>
</td>
<td width="60" valign="top" style="width:45.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:16.6pt">
<p class="MsoNormal">8.97<b><o:p></o:p></b></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US">
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">As you can see clone disk is even more compressed, as all the unnecessary zeros are removed from the source file.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">The cloned VM is working file , I double checked it.<o:p></o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><span lang="EN-US">Now I am not sure whether this is a correct solution for cloning,
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US">What I actually want to know is what actually sparse is representing here, why it was initially set to false?<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span lang="EN-US">And it what case the sparse condition is actually met?<o:p></o:p></span></b></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Regards<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Pankaj Rawat<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</body>
</html>
<pre>
DISCLAIMER:
-----------------------------------------------------------------------------------------------------------------------
The contents of this e-mail and any attachment(s) are confidential and
intended
for the named recipient(s) only.
It shall not attach any liability on the originator or NECHCL or its
affiliates. Any views or opinions presented in
this email are solely those of the author and may not necessarily reflect the
opinions of NECHCL or its affiliates.
Any form of reproduction, dissemination, copying, disclosure, modification,
distribution and / or publication of
this message without the prior written consent of the author of this e-mail is
strictly prohibited. If you have
received this email in error please delete it and notify the sender
immediately. .
-----------------------------------------------------------------------------------------------------------------------</pre>