<div dir="ltr"><div dir="ltr">Hi Shephard/Swogat,<div>I tried changing the setting as suggested and it looks like it has failed at step 4 with error:</div><div><br></div><div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><font size="1">:31:32.169420 | 525400ae-089b-fb79-67ac-0000000072ce |     TIMING | tripleo_keystone_resources : Create identity public endpoint | undercloud | 0:24:47.736198 | 2.21s<br>2022-07-12 21:31:32.185594 | 525400ae-089b-fb79-67ac-0000000072cf |       TASK | Create identity internal endpoint<br>2022-07-12 21:31:34.468996 | 525400ae-089b-fb79-67ac-0000000072cf |      FATAL | Create identity internal endpoint | undercloud | error={"changed": false, "extra_data": {"data": null, "details": "The request you have made requires authentication.", "response": "{\"error\":{\"code\":401,\"message\":\"The request you have made requires authentication.\",\"title\":\"Unauthorized\"}}\n"}, "msg": "Failed to list services: Client Error for url: https://[fd00:fd00:fd00:9900::81]:13000/v3/services, The request you have made requires authentication."}<br>2022-07-12 21:31:34.470415 | 525400ae-089b-fb79-67ac-000000</font></div></blockquote><font size="1"><br></font></div><div>Checking further the endpoint list:</div><div>I see only one endpoint for keystone is gettin created. </div><div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>  DeprecationWarning<br><font size="1">+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+<br>| ID                               | Region    | Service Name | Service Type | Enabled | Interface | URL                                     |<br>+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+<br>| 4378dc0a4d8847ee87771699fc7b995e | regionOne | keystone     | identity     | True    | admin     | <a href="http://30.30.30.173:35357">http://30.30.30.173:35357</a>               |<br>| 67c829e126944431a06ed0c2b97a295f | regionOne | keystone     | identity     | True    | internal  | http://[fd00:fd00:fd00:2000::326]:5000  |<br>| 8a9a3de4993c4ff7903caf95b8ae40fa | regionOne | keystone     | identity     | True    | public    | https://[fd00:fd00:fd00:9900::81]:13000 |<br>+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+</font><br></div></blockquote><br></div><div>it looks like something related to the SSL, we have also verified that the GUI login screen shows that Certificates are applied.</div><div>exploring more in logs, meanwhile any suggestions or know observation would be of great help. </div><div>thanks again for the support. </div><div><br></div><div>Best Regards,</div><div>Lokendra</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Jul 9, 2022 at 11:24 AM Swogat Pradhan <<a href="mailto:swogatpradhan22@gmail.com">swogatpradhan22@gmail.com</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="ltr"><div dir="auto"><div>I had faced a similar kind of issue, for ip based setup you need to specify the domain name as the ip that you are going to use, this error is showing up because the ssl is ip based but the fqdns seems to be <a href="http://undercloud.com" target="_blank">undercloud.com</a> or <a href="http://overcloud.example.com" target="_blank">overcloud.example.com</a>.</div><div>I think for undercloud you can change the undercloud.conf.</div><div><br></div><div>And will it work if we specify clouddomain parameter to the IP address for overcloud? because it seems he has not specified the clouddomain parameter and <a href="http://overcloud.example.com" target="_blank">overcloud.example.com</a> is the default domain for <a href="http://overcloud.example.com" target="_blank">overcloud.example.com</a>.</div><div><br></div><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 8 Jul 2022, 6:01 pm Swogat Pradhan, <<a href="mailto:swogatpradhan22@gmail.com" target="_blank">swogatpradhan22@gmail.com</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">What is the domain name you have specified in the undercloud.conf file?<div dir="auto">And what is the fqdn name used for the generation of the SSL cert?</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 8 Jul 2022, 5:38 pm Lokendra Rathour, <<a href="mailto:lokendrarathour@gmail.com" rel="noreferrer" target="_blank">lokendrarathour@gmail.com</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="ltr">Hi Team,<div>We were trying to install overcloud with SSL enabled for which the UC is installed, but OC install is getting failed at step 4:</div><div><br></div><div>ERROR</div><div>:<font size="1">nectionPool(host='fd00:fd00:fd00:9900::2ef', port=13000): Max retries exceeded with url: / (Caused by SSLError(CertificateError(\"hostname 'fd00:fd00:fd00:9900::2ef' doesn't match '<a href="http://undercloud.com" rel="noreferrer noreferrer" target="_blank">undercloud.com</a>'\",),))\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}</font></div><font size="1">2022-07-08 17:03:23.606739 | 5254009a-6a3c-adb1-f96f-0000000072ac |      FATAL | Clean up legacy Cinder keystone catalog entries | undercloud | item={'service_name': 'cinderv3', 'service_type': 'volume'} | error={"ansible_index_var": "cinder_api_service", "ansible_loop_var": "item", "changed": false, "cinder_api_service": 1, "item": {"service_name": "cinderv3", "service_type": "volume"}, "module_stderr": "Failed to discover available identity versions when contacting https://[fd00:fd00:fd00:9900::2ef]:13000. Attempting to parse version from URL.\nTraceback (most recent call last):\n  File \"/usr/lib/python3.6/site-packages/urllib3/connectionpool.py\", line 600, in urlopen\n    chunked=chunked)\n  File \"/usr/lib/python3.6/site-packages/urllib3/connectionpool.py\", line 343, in _make_request\n    self._validate_conn(conn)\n  File \"/usr/lib/python3.6/site-packages/urllib3/connectionpool.py\", line 839, in _validate_conn\n    conn.connect()\n  File \"/usr/lib/python3.6/site-packages/urllib3/connection.py\", line 378, in connect\n    _match_hostname(cert, self.assert_hostname or server_hostname)\n  File \"/usr/lib/python3.6/site-packages/urllib3/connection.py\", line 388, in _match_hostname\n    match_hostname(cert, asserted_hostname)\n  File \"/usr/lib64/python3.6/ssl.py\", line 291, in match_hostname\n    % (hostname, dnsnames[0]))\nssl.CertificateError: hostname 'fd00:fd00:fd00:9900::2ef' doesn't match '<a href="http://undercloud.com" rel="noreferrer noreferrer" target="_blank">undercloud.com</a>'\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/usr/lib/python3.6/site-packages/requests/adapters.py\", line 449, in send\n    timeout=timeout\n  File \"/usr/lib/python3.6/site-packages/urllib3/connectionpool.py\", line 638, in urlopen\n    _stacktrace=sys.exc_info()[2])\n  File \"/usr/lib/python3.6/site-packages/urllib3/util/retry.py\", line 399, in increment\n    raise MaxRetryError(_pool, url, error or ResponseError(cause))\nurllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='fd00:fd00:fd00:9900::2ef', port=13000): Max retries exceeded with url: / (Caused by SSLError(CertificateError(\"hostname 'fd00:fd00:fd00:9900::2ef' doesn't match '<a href="http://undercloud.com" rel="noreferrer noreferrer" target="_blank">undercloud.com</a>'\",),))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/session.py\", line 1022, in _send_request\n    resp = self.session.request(method, url, **kwargs)\n  File \"/usr/lib/python3.6/site-packages/requests/sessions.py\", line 533, in request\n    resp = self.send(prep, **send_kwargs)\n  File \"/usr/lib/python3.6/site-packages/requests/sessions.py\", line 646, in send\n    r = adapter.send(request, **kwargs)\n  File \"/usr/lib/python3.6/site-packages/requests/adapters.py\", line 514, in send\n    raise SSLError(e, request=request)\nrequests.exceptions.SSLError: HTTPSConnectionPool(host='fd00:fd00:fd00:9900::2ef', port=13000): Max retries exceeded with url: / (Caused by SSLError(CertificateError(\"hostname 'fd00:fd00:fd00:9900::2ef' doesn't match '<a href="http://undercloud.com" rel="noreferrer noreferrer" target="_blank">undercloud.com</a>'\",),))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/identity/generic/base.py\", line 138, in _do_create_plugin\n    authenticated=False)\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/identity/base.py\", line 610, in get_discovery\n    authenticated=authenticated)\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/discover.py\", line 1452, in get_discovery\n    disc = Discover(session, url, authenticated=authenticated)\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/discover.py\", line 536, in __init__\n    authenticated=authenticated)\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/discover.py\", line 102, in get_version_data\n    resp = session.get(url, headers=headers, authenticated=authenticated)\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/session.py\", line 1141, in get\n    return self.request(url, 'GET', **kwargs)\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/session.py\", line 931, in request\n    resp = send(**kwargs)\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/session.py\", line 1026, in _send_request\n    raise exceptions.SSLError(msg)\nkeystoneauth1.exceptions.connection.SSLError: SSL exception connecting to https://[fd00:fd00:fd00:9900::2ef]:13000: HTTPSConnectionPool(host='fd00:fd00:fd00:9900::2ef', port=13000): Max retries exceeded with url: / (Caused by SSLError(CertificateError(\"hostname 'fd00:fd00:fd00:9900::2ef' doesn't match '<a href="http://undercloud.com" rel="noreferrer noreferrer" target="_blank">undercloud.com</a>'\",),))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"<stdin>\", line 102, in <module>\n  File \"<stdin>\", line 94, in _ansiballz_main\n  File \"<stdin>\", line 40, in invoke_module\n  File \"/usr/lib64/python3.6/runpy.py\", line 205, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/lib64/python3.6/runpy.py\", line 96, in _run_module_code\n    mod_name, mod_spec, pkg_name, script_name)\n  File \"/usr/lib64/python3.6/runpy.py\", line 85, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_openstack.cloud.catalog_service_payload_7ikyjf7t/ansible_openstack.cloud.catalog_service_payload.zip/ansible_collections/openstack/cloud/plugins/modules/catalog_service.py\", line 185, in <module>\n  File \"/tmp/ansible_openstack.cloud.catalog_service_payload_7ikyjf7t/ansible_openstack.cloud.catalog_service_payload.zip/ansible_collections/openstack/cloud/plugins/modules/catalog_service.py\", line 181, in main\n  File \"/tmp/ansible_openstack.cloud.catalog_service_payload_7ikyjf7t/ansible_openstack.cloud.catalog_service_payload.zip/ansible_collections/openstack/cloud/plugins/module_utils/openstack.py\", line 407, in __call__\n  File \"/tmp/ansible_openstack.cloud.catalog_service_payload_7ikyjf7t/ansible_openstack.cloud.catalog_service_payload.zip/ansible_collections/openstack/cloud/plugins/modules/catalog_service.py\", line 141, in run\n  File \"/usr/lib/python3.6/site-packages/openstack/cloud/_identity.py\", line 517, in search_services\n    services = self.list_services()\n  File \"/usr/lib/python3.6/site-packages/openstack/cloud/_identity.py\", line 492, in list_services\n    if self._is_client_version('identity', 2):\n  File \"/usr/lib/python3.6/site-packages/openstack/cloud/openstackcloud.py\", line 460, in _is_client_version\n    client = getattr(self, client_name)\n  File \"/usr/lib/python3.6/site-packages/openstack/cloud/_identity.py\", line 32, in _identity_client\n    'identity', min_version=2, max_version='3.latest')\n  File \"/usr/lib/python3.6/site-packages/openstack/cloud/openstackcloud.py\", line 407, in _get_versioned_client\n    if adapter.get_endpoint():\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/adapter.py\", line 291, in get_endpoint\n    return self.session.get_endpoint(auth or self.auth, **kwargs)\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/session.py\", line 1243, in get_endpoint\n    return auth.get_endpoint(self, **kwargs)\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/identity/base.py\", line 380, in get_endpoint\n    allow_version_hack=allow_version_hack, **kwargs)\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/identity/base.py\", line 271, in get_endpoint_data\n    service_catalog = self.get_access(session).service_catalog\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/identity/base.py\", line 134, in get_access\n    self.auth_ref = self.get_auth_ref(session)\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/identity/generic/base.py\", line 206, in get_auth_ref\n    self._plugin = self._do_create_plugin(session)\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/identity/generic/base.py\", line 161, i<span style="background-color:rgb(255,255,0)">n _do_create_plugin\n    'auth_url is correct. %s' % e)\nkeystoneauth1.exceptions.discovery.DiscoveryFailure: Could not find versioned identity endpoints when attempting to authenticate. Please check that your auth_url is correct. SSL exception connecting to https://[fd00:fd00:fd00:9900::2ef]:13000: HTTPSConnectionPool(host='fd00:fd00:fd00:9900::2ef', port=13000): Max retries exceeded with url: / (Caused by SSLError(CertificateError(\"hostname 'fd00:fd00:fd00:9900::2ef' doesn't match '<a href="http://overcloud.example.com" rel="noreferrer noreferrer" target="_blank">overcloud.example.com</a>'\",),)</span>)\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}<br>2022-07-08 17:03:23.609354 | 5254009a-6a3c-adb1-f96f-0000000072ac |     TIMING | Clean up legacy Cinder keystone catalog entries | undercloud | 0:11:01.271914 | 2.47s<br>2022-07-08 17:03:23.611094 | 5254009a-6a3c-adb1-f96f-0000000072ac |     TIMING | Clean up legacy Cinder keystone catalog entries | undercloud | 0:11:01.273659 | 2.47s<br><br>PLAY RECAP *********************************************************************<br>localhost                  : ok=0    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0<br>overcloud-controller-0     : ok=437  changed=104  unreachable=0    failed=0    skipped=214  rescued=0    ignored=0<br>overcloud-controller-1     : ok=436  changed=101  unreachable=0    failed=0    skipped=214  rescued=0    ignored=0<br>overcloud-controller-2     : ok=431  changed=101  unreachable=0    failed=0    skipped=214  rescued=0    ignored=0<br>overcloud-novacompute-0    : ok=345  changed=83   unreachable=0    failed=0    skipped=198  rescued=0    ignored=0<br><span style="background-color:rgb(255,255,0)">undercloud                 : ok=28   changed=7    unreachable=0    failed=1    skipped=3    rescued=0    ignored=0</span><br>2022-07-08 17:03:23.647270 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Summary Information ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>2022-07-08 17:03:23.647907 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Total Tasks: 1373       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</font><div><div><br></div><div><br></div><div>in the deploy.sh:</div><div><br></div><div>openstack overcloud deploy --templates \<br>    -r /home/stack/templates/roles_data.yaml \<br>    --networks-file /home/stack/templates/custom_network_data.yaml \<br>    --vip-file  /home/stack/templates/custom_vip_data.yaml \<br>    --baremetal-deployment  /home/stack/templates/overcloud-baremetal-deploy.yaml \<br>    --network-config \<br>    -e /home/stack/templates/environment.yaml \<br>    -e /usr/share/openstack-tripleo-heat-templates/environments/services/ironic-conductor.yaml \<br>    -e /usr/share/openstack-tripleo-heat-templates/environments/services/ironic-inspector.yaml \<br>    -e /usr/share/openstack-tripleo-heat-templates/environments/services/ironic-overcloud.yaml \<br>    -e /home/stack/templates/ironic-config.yaml \<br>    -e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml \<br>    -e /usr/share/openstack-tripleo-heat-templates/environments/services/ptp.yaml \<br><span style="background-color:rgb(255,255,0)">    -e /usr/share/openstack-tripleo-heat-templates/environments/ssl/enable-tls.yaml \<br>    -e /usr/share/openstack-tripleo-heat-templates/environments/ssl/tls-endpoints-public-ip.yaml \<br>    -e /usr/share/openstack-tripleo-heat-templates/environments/ssl/inject-trust-anchor.yaml \</span><br>    -e /usr/share/openstack-tripleo-heat-templates/environments/docker-ha.yaml \<br>    -e /usr/share/openstack-tripleo-heat-templates/environments/podman.yaml \<br>    -e /home/stack/containers-prepare-parameter.yaml<br></div><div><br></div><div>Addition lines as highlighted in yellow were passed with modifications:</div><div><span style="background-color:rgb(255,255,0)">tls-endpoints-public-ip.yaml:</span><br></div><div><span style="background-color:rgb(255,255,0)">Passed as is in the defaults.</span></div><div><span style="background-color:rgb(255,255,0)">enable-tls.yaml:</span><br></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div># *******************************************************************<br># This file was created automatically by the sample environment<br># generator. Developers should use `tox -e genconfig` to update it.<br># Users are recommended to make changes to a copy of the file instead<br># of the original, if any customizations are needed.<br># *******************************************************************<br># title: Enable SSL on OpenStack Public Endpoints<br># description: |<br>#   Use this environment to pass in certificates for SSL deployments.<br>#   For these values to take effect, one of the tls-endpoints-*.yaml<br>#   environments must also be used.<br>parameter_defaults:<br>  # Set CSRF_COOKIE_SECURE / SESSION_COOKIE_SECURE in Horizon<br>  # Type: boolean<br>  HorizonSecureCookies: True<br><br>  # Specifies the default CA cert to use if TLS is used for services in the public network.<br>  # Type: string<br>  PublicTLSCAFile: '/etc/pki/ca-trust/source/anchors/overcloud-cacert.pem'<br><br>  # The content of the SSL certificate (without Key) in PEM format.<br>  # Type: string<br>  SSLRootCertificate: |<br>    -----BEGIN CERTIFICATE-----<br>    ----*** CERTICATELINES TRIMMED **<br>    -----END CERTIFICATE-----<br><br>  SSLCertificate: |<br>    -----BEGIN CERTIFICATE-----<br>    

----*** CERTICATELINES TRIMMED **<br>    -----END CERTIFICATE-----<br>  # The content of an SSL intermediate CA certificate in PEM format.<br>  # Type: string<br>  SSLIntermediateCertificate: ''<br><br>  # The content of the SSL Key in PEM format.<br>  # Type: string<br>  SSLKey: |<br>    -----BEGIN PRIVATE KEY-----<br>    

----*** CERTICATELINES TRIMMED **<br>    -----END PRIVATE KEY-----<br><br>  # ******************************************************<br>  # Static parameters - these are values that must be<br>  # included in the environment but should not be changed.<br>  # ******************************************************<br>  # The filepath of the certificate as it will be stored in the controller.<br>  # Type: string<br>  DeployedSSLCertificatePath: /etc/pki/tls/private/overcloud_endpoint.pem<br><br>  # *********************<br>  # End static parameters<br>  # *********************<br></div></div></blockquote><div><div><span style="background-color:rgb(255,255,0)">inject-trust-anchor.yaml</span><span style="background-color:rgb(255,255,0)"><br></span></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div># *******************************************************************<br># This file was created automatically by the sample environment<br># generator. Developers should use `tox -e genconfig` to update it.<br># Users are recommended to make changes to a copy of the file instead<br># of the original, if any customizations are needed.<br># *******************************************************************<br># title: Inject SSL Trust Anchor on Overcloud Nodes<br># description: |<br>#   When using an SSL certificate signed by a CA that is not in the default<br>#   list of CAs, this environment allows adding a custom CA certificate to<br>#   the overcloud nodes.<br>parameter_defaults:<br>  # The content of a CA's SSL certificate file in PEM format. This is evaluated on the client side.<br>  # Mandatory. This parameter must be set by the user.<br>  # Type: string<br>  SSLRootCertificate: |<br>    -----BEGIN CERTIFICATE-----<br>  

----*** CERTICATELINES TRIMMED **<br>    -----END CERTIFICATE-----<br><br>resource_registry:<br>  OS::TripleO::NodeTLSCAData: ../../puppet/extraconfig/tls/ca-inject.yaml<br></div></div></blockquote><div><div><br></div><div><br></div><div><br></div><div>The procedure to create such files was followed using: </div><div><a href="https://docs.openstack.org/project-deploy-guide/tripleo-docs/latest/features/ssl.html" rel="noreferrer noreferrer" target="_blank">Deploying with SSL — TripleO 3.0.0 documentation (openstack.org)</a><br></div><div><br></div><div>Idea is to deploy overcloud with SSL enabled i.e<b> <span style="color:rgb(51,51,51);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px">Self-signed IP-based certificate, without DNS. </span></b></div><div><span style="color:rgb(51,51,51);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px"><br></span></div><div><span style="color:rgb(51,51,51);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px">Any idea around this error would be of great help.</span></div><div><br></div>--<br><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div>skype: lokendrarathour</div><div dir="ltr"><img src="https://ci3.googleusercontent.com/mail-sig/AIorK4zyd6LpJOGqagxmzUlY59eMQx0-FN0t8HtjdtGE7VLZSKIxBUz3bI7z-MBqbgDVg1-XbtvHgN_ATJ10N6bonyO-JSGTtl5s_mNSbDoXBg" width="200" height="41"><br></div><div dir="ltr"><br></div></div></div></div></div></div></div>
</blockquote></div>
</blockquote></div></div></div>
</div>
</blockquote></div><br clear="all"><div><br></div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><br></div></div></div></div></div></div>