如何设置带 www 的域名?

我在设置指南和其他问题中看到,我需要为 Mailgun 使用相同的子域名。因此,如果我想在 www.example.com 安装 Discourse,我是否需要在 Mailgun 中添加 www.example.com?还是 example.com 也可以?

example.com 已足够。如果您的 Discourse 安装在子域名上,则需要 forum.example.com 或其他子域名。

好的,谢谢。但我仍然需要在 app.yml 中将 DISCOURSE_HOSTNAME 设置为 www.example.com,对吗?

否。仅域名部分 - example.comforum.example.com - 具体取决于您的设置。

嗯,我以为 www. 在技术上与 forum. 是相同的子域名?

我希望 Discourse 部署在 www.example.com(并且 example.com 重定向到 www)。

您将在 DNS 区域文件中完成该设置。

创建一个 CNAME 记录,将 www.example.com 设置为 example.com 的别名。

不。它们……是不同的。

我建议你将 Mailgun 配置为从 www.x.com 发送邮件,这样如果你将来决定对邮件和 x.com 进行某些操作,就不会因为其与 Discourse 共享域名而变得复杂。

参见 https://www.forcewww.com/

大概不会,这个域名仅用于论坛。另外在这种情况下,我将来可能也可以直接使用另一个子域名,比如 mail.x.com

我想我从未见过有人从 foo@www... 发送邮件。我尝试在 Gmail 中搜索 from:www,没有结果。

我的意思是,据我理解,www 只是一个子域名,也许在某些情况下因为常用而有一些特殊处理。

我最终采取的步骤如下:

  • 在 Mailgun 上验证 example.com
  • www.example.com 安装 Discourse
  • 邮件已收到,但发件人显示为不寻常的 noreply@www.example.com,而不是 noreply@example.com。因此,我通过执行 docker exec -it app rails r 'puts SiteSetting.notification_email = "noreply@example.com"' 来设置发件邮箱(在这种情况下,可能更简单的方法是完成管理员注册后,在 /admin 界面中设置邮箱)。”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”
    }”