-<?php #
+<?php # $Id:$
##########################################################################
# serendipity - another blogger... #
@define('PLUGIN_EVENT_BBCODE_TRANSFORM', 'Sintaxe <a href="http://www.phpbb.com/phpBB/faq.php?mode=bbcode">BBCode</a> autorizada');
/* vim: set sts=4 ts=4 expandtab : */
-?>
\ No newline at end of file
+?>
-<?php #
+<?php # $Id:$
##########################################################################
# serendipity - another blogger... #
@define('PLUGIN_EVENT_BBCODE_TRANSFORM', 'Sintaxe <a href="http://www.phpbb.com/phpBB/faq.php?mode=bbcode">BBCode</a> autorizada');
/* vim: set sts=4 ts=4 expandtab : */
-?>
\ No newline at end of file
+?>
-<?php #
+<?php # $Id:$
##########################################################################
# serendipity - another blogger... #
@define('PLUGIN_EVENT_BROWSERCOMPATIBILITY_DESC', 'Utiliza diferentes métodos de CSS para assegurar compatibilidade com o maior número de navegadores possível.');
/* vim: set sts=4 ts=4 expandtab : */
-?>
\ No newline at end of file
+?>
+
-<?php #
+<?php # $Id:$
##########################################################################
# serendipity - another blogger... #
@define('PLUGIN_EVENT_BROWSERCOMPATIBILITY_DESC', 'Utiliza diferentes métodos de CSS para assegurar compatibilidade com o maior número de navegadores possível.');
/* vim: set sts=4 ts=4 expandtab : */
-?>
\ No newline at end of file
+?>
+
-<?php
+<?php # $Id:$
##########################################################################
# serendipity - another blogger... #
@define('PLUGIN_EVENT_CONTENTREWRITE_REWRITECHARDESC', 'Se utiliza um caracter especial para forçar a reescrita, introduza-lo aqui. Exemplo: se deseja somente substituir \'palavra*\' com o texto que definiu, mas não quer que o \'*\' seja mostrados, introduza o caracter aqui.');
/* vim: set sts=4 ts=4 expandtab : */
-?>
\ No newline at end of file
+?>
-<?php
+<?php # $Id:$
##########################################################################
# serendipity - another blogger... #
@define('PLUGIN_EVENT_CONTENTREWRITE_REWRITECHARDESC', 'Se utiliza um caracter especial para forçar a reescrita, introduza-lo aqui. Exemplo: se deseja somente substituir \'palavra*\' com o texto que definiu, mas não quer que o \'*\' seja mostrados, introduza o caracter aqui.');
/* vim: set sts=4 ts=4 expandtab : */
-?>
\ No newline at end of file
+?>
-<?php #
+<?php # $Id:$
# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
# All rights reserved. See LICENSE file for licensing details
# Translation (c) by Joao P Matos <jmatos@math.ist.utl.pt>
@define('PLUGIN_CREATIVECOMMONS_ND_DESC', 'O licenciador autoriza outros a copiar, distribuir, expor e utilizar só cópias não alteradas do seu trabalho -- não podem criar-se trabalhos baseados nele.');
@define('PLUGIN_CREATIVECOMMONS_SA_DESC', 'Sim, sempre que outros partilhem da mesma forma');
-?>
\ No newline at end of file
+?>
-<?php #
+<?php # $Id:$
# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
# All rights reserved. See LICENSE file for licensing details
# Translation (c) by Joao P Matos <jmatos@math.ist.utl.pt>
@define('PLUGIN_CREATIVECOMMONS_ND_DESC', 'O licenciador autoriza outros a copiar, distribuir, expor e utilizar só cópias não alteradas do seu trabalho -- não podem criar-se trabalhos baseados nele.');
@define('PLUGIN_CREATIVECOMMONS_SA_DESC', 'Sim, sempre que outros partilhem da mesma forma');
-?>
\ No newline at end of file
+?>
-<?php # $Id: lang_es.inc.php,v 1.0 2005/08/20 11:37:42 garvinhicking Exp $
+<?php # $Id:$
# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
# All rights reserved. See LICENSE file for licensing details
# Translation (c) by João P. Matos <jmatos@math.ist.utl.pt>
@define('PLUGIN_EVENT_EMOTICATE_DESC', 'Converter smilies normais em imagens');
@define('PLUGIN_EVENT_EMOTICATE_TRANSFORM', 'Smilies normais como :-) e ;-) são convertidos em imagens.');
-?>
\ No newline at end of file
+?>
-<?php # $Id: lang_es.inc.php,v 1.0 2005/08/20 11:37:42 garvinhicking Exp $
+<?php # $Id:$
# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
# All rights reserved. See LICENSE file for licensing details
# Translation (c) by João P. Matos <jmatos@math.ist.utl.pt>
@define('PLUGIN_EVENT_EMOTICATE_DESC', 'Converter smilies normais em imagens');
@define('PLUGIN_EVENT_EMOTICATE_TRANSFORM', 'Smilies normais como :-) e ;-) são convertidos em imagens.');
-?>
\ No newline at end of file
+?>
-<?php #
+<?php # $Id:$
# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
# All rights reserved. See LICENSE file for licensing details
# Translation (c) by Joao P Matos <jmatos@math.ist.utl.pt>
@define('PLUGIN_EVENT_ENTRYPROPERTIES_GROUPS_DESC', 'Se activado, pode definir que utilizadores de um grupo estão autorizados a ler as entradas. Esta opção tem impacto considerável no desempenho ao visualizarem-se os seus artigos. Active somente se for de facto usar esta característica.');
@define('PLUGIN_EVENT_ENTRYPROPERTIES_USERS', 'Utilizar restrições em função dos utilizadores');
@define('PLUGIN_EVENT_ENTRYPROPERTIES_USERS_DESC', 'Se activado, pode definir que utilizadores específicos estão autorizados a ler as suas entradas. Esta opção tem impacto considerável no desempenho ao visualizarem-se os seus artigos. Active somente se for de facto usar esta característica.');
-?>
\ No newline at end of file
+?>
-<?php #
+<?php # $Id:$
# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
# All rights reserved. See LICENSE file for licensing details
# Translation (c) by Joao P Matos <jmatos@math.ist.utl.pt>
@define('PLUGIN_EVENT_ENTRYPROPERTIES_GROUPS_DESC', 'Se activado, pode definir que utilizadores de um grupo estão autorizados a ler as entradas. Esta opção tem impacto considerável no desempenho ao visualizarem-se os seus artigos. Active somente se for de facto usar esta característica.');
@define('PLUGIN_EVENT_ENTRYPROPERTIES_USERS', 'Utilizar restrições em função dos utilizadores');
@define('PLUGIN_EVENT_ENTRYPROPERTIES_USERS_DESC', 'Se activado, pode definir que utilizadores específicos estão autorizados a ler as suas entradas. Esta opção tem impacto considerável no desempenho ao visualizarem-se os seus artigos. Active somente se for de facto usar esta característica.');
-?>
\ No newline at end of file
+?>
--- /dev/null
+<?php # $Id:$
+# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
+# All rights reserved. See LICENSE file for licensing details
+# Translation (c) by Joao P Matos <jmatos@math.ist.utl.pt>
+/* vim: set sts=4 ts=4 expandtab : */
+
+@define('PLUGIN_EVENT_HTMLVALIDATOR_NAME', 'Validador HTML');
+@define('PLUGIN_EVENT_HTMLVALIDATOR_DESC', 'Valida a conformidade do XML das entradas');
+@define('PLUGIN_EVENT_HTMLVALIDATOR_CHARSET', 'Codificação de caracteres');
+@define('PLUGIN_EVENT_HTMLVALIDATOR_CHARSETDESC', 'A codificação de caracteres usual nos seus artigos');
+@define('PLUGIN_EVENT_HTMLVALIDATOR_DOCTYPE', 'Tipo de documento');
+@define('PLUGIN_EVENT_HTMLVALIDATOR_DOCTYPEDESC', 'O tipo de documento usual dos seus artigos');
+@define('PLUGIN_EVENT_HTMLVALIDATOR_VALIDATE', 'Validar em cada pré-visualização');
+@define('PLUGIN_EVENT_HTMLVALIDATOR_GOVALIDATE', 'Mostrar validador HTML na pré-visualização');
+
+?>
--- /dev/null
+<?php # $Id:$
+# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
+# All rights reserved. See LICENSE file for licensing details
+# Translation (c) by Joao P Matos <jmatos@math.ist.utl.pt>
+/* vim: set sts=4 ts=4 expandtab : */
+
+@define('PLUGIN_EVENT_HTMLVALIDATOR_NAME', 'Validador HTML');
+@define('PLUGIN_EVENT_HTMLVALIDATOR_DESC', 'Valida a conformidade do XML das entradas');
+@define('PLUGIN_EVENT_HTMLVALIDATOR_CHARSET', 'Codificação de caracteres');
+@define('PLUGIN_EVENT_HTMLVALIDATOR_CHARSETDESC', 'A codificação de caracteres usual nos seus artigos');
+@define('PLUGIN_EVENT_HTMLVALIDATOR_DOCTYPE', 'Tipo de documento');
+@define('PLUGIN_EVENT_HTMLVALIDATOR_DOCTYPEDESC', 'O tipo de documento usual dos seus artigos');
+@define('PLUGIN_EVENT_HTMLVALIDATOR_VALIDATE', 'Validar em cada pré-visualização');
+@define('PLUGIN_EVENT_HTMLVALIDATOR_GOVALIDATE', 'Mostrar validador HTML na pré-visualização');
+
+?>
--- /dev/null
+<?php # $Id:$
+# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
+# All rights reserved. See LICENSE file for licensing details
+# Translation (c) by Joao P Matos <jmatos@math.ist.utl.pt>
+/* vim: set sts=4 ts=4 expandtab : */
+
+@define('PLUGIN_KARMA_VERSION', '1.3');
+@define('PLUGIN_KARMA_NAME', 'Karma');
+@define('PLUGIN_KARMA_BLAHBLAH', 'Permite aos visitantes classificar a qualidade das suas entradas');
+@define('PLUGIN_KARMA_VOTETEXT', 'Karma deste artigo: ');
+@define('PLUGIN_KARMA_RATE', 'Classifica este artigo: %s');
+@define('PLUGIN_KARMA_VOTEPOINT_1', 'Muito bom!');
+@define('PLUGIN_KARMA_VOTEPOINT_2', 'Bom');
+@define('PLUGIN_KARMA_VOTEPOINT_3', 'Regular');
+@define('PLUGIN_KARMA_VOTEPOINT_4', 'Sem interesse');
+@define('PLUGIN_KARMA_VOTEPOINT_5', 'Mau');
+@define('PLUGIN_KARMA_VOTED', 'A sua classificação de "%s" foi guardada.');
+@define('PLUGIN_KARMA_INVALID', 'Voto inválido.');
+@define('PLUGIN_KARMA_ALREADYVOTED', 'A sua classificação já tinha sido guardada.');
+@define('PLUGIN_KARMA_NOCOOKIE', 'O seu navegador deve aceitar cookies para que possa votar.');
+@define('PLUGIN_KARMA_CLOSED', 'Vote artigos mais recentes que %s dias!');
+@define('PLUGIN_KARMA_ENTRYTIME', 'Tempo até à votação depois da publicação');
+@define('PLUGIN_KARMA_VOTINGTIME', 'Tempo de votação');
+@define('PLUGIN_KARMA_ENTRYTIME_BLAHBLAH', 'Quanto tempo (em minutos) depois do artigo ser publicado deve decorrer até à votação sem restrições? Por omissão: 1440 (um dia)');
+@define('PLUGIN_KARMA_VOTINGTIME_BLAHBLAH', 'Período (em minutos) que deve decorrer entre votos consecutivos. Só se aplica depois do período acima ter expirado. Por omissão: 5');
+@define('PLUGIN_KARMA_TIMEOUT', 'Protecção contra sobrecarga: Outro visitante votou há pouco. Por favor espere %s minutos.');
+@define('PLUGIN_KARMA_CURRENT', 'Karma actual: %2$s, %3$s voto(s)');
+@define('PLUGIN_KARMA_EXTENDEDONLY', 'Só artigos com extensão');
+@define('PLUGIN_KARMA_EXTENDEDONLY_BLAHBLAH', 'Mostrar votação karma só para o acesso a artgos com extensão');
+@define('PLUGIN_KARMA_MAXKARMA', 'Periodo de votação karma');
+@define('PLUGIN_KARMA_MAXKARMA_BLAHBLAH', 'Permitir somente votação karma até o artigo ter de X dias (Por omissão: 7)');
+@define('PLUGIN_KARMA_LOGGING', 'Registar votos no log?');
+@define('PLUGIN_KARMA_LOGGING_BLAHBLAH', 'Registar votos de karma no log?');
+@define('PLUGIN_KARMA_ACTIVE', 'Activar votação karma?');
+@define('PLUGIN_KARMA_ACTIVE_BLAHBLAH', 'A votação karma está disponível?');
+@define('PLUGIN_KARMA_VISITS', 'Activar registo de visitas?');
+@define('PLUGIN_KARMA_VISITS_BLAHBLAH', 'Deve ser contado e mostrado cada click relativo à extensão?');
+@define('PLUGIN_KARMA_VISITSCOUNT', ' %4$s acessos');
+@define('PLUGIN_KARMA_STATISTICS_VISITS_TOP', 'Artigos mais visitados');
+@define('PLUGIN_KARMA_STATISTICS_VISITS_BOTTOM', 'Artigos menos visitados');
+@define('PLUGIN_KARMA_STATISTICS_VOTES_TOP', 'Artigos com karma mais alto');
+@define('PLUGIN_KARMA_STATISTICS_VOTES_BOTTOM', 'Artigos com karma mais baixo');
+@define('PLUGIN_KARMA_STATISTICS_POINTS_TOP', 'Artigos com melhor votação karma');
+@define('PLUGIN_KARMA_STATISTICS_POINTS_BOTTOM', 'Artigos com pior votação karma');
+@define('PLUGIN_KARMA_STATISTICS_VISITS_NO', 'visitas');
+@define('PLUGIN_KARMA_STATISTICS_VOTES_NO', 'votos');
+@define('PLUGIN_KARMA_STATISTICS_POINTS_NO', 'pontos');
+
+?>
--- /dev/null
+<?php # $Id:$
+# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
+# All rights reserved. See LICENSE file for licensing details
+# Translation (c) by Joao P Matos <jmatos@math.ist.utl.pt>
+/* vim: set sts=4 ts=4 expandtab : */
+
+@define('PLUGIN_KARMA_VERSION', '1.3');
+@define('PLUGIN_KARMA_NAME', 'Karma');
+@define('PLUGIN_KARMA_BLAHBLAH', 'Permite aos visitantes classificar a qualidade das suas entradas');
+@define('PLUGIN_KARMA_VOTETEXT', 'Karma deste artigo: ');
+@define('PLUGIN_KARMA_RATE', 'Classifica este artigo: %s');
+@define('PLUGIN_KARMA_VOTEPOINT_1', 'Muito bom!');
+@define('PLUGIN_KARMA_VOTEPOINT_2', 'Bom');
+@define('PLUGIN_KARMA_VOTEPOINT_3', 'Regular');
+@define('PLUGIN_KARMA_VOTEPOINT_4', 'Sem interesse');
+@define('PLUGIN_KARMA_VOTEPOINT_5', 'Mau');
+@define('PLUGIN_KARMA_VOTED', 'A sua classificação de "%s" foi guardada.');
+@define('PLUGIN_KARMA_INVALID', 'Voto inválido.');
+@define('PLUGIN_KARMA_ALREADYVOTED', 'A sua classificação já tinha sido guardada.');
+@define('PLUGIN_KARMA_NOCOOKIE', 'O seu navegador deve aceitar cookies para que possa votar.');
+@define('PLUGIN_KARMA_CLOSED', 'Vote artigos mais recentes que %s dias!');
+@define('PLUGIN_KARMA_ENTRYTIME', 'Tempo até à votação depois da publicação');
+@define('PLUGIN_KARMA_VOTINGTIME', 'Tempo de votação');
+@define('PLUGIN_KARMA_ENTRYTIME_BLAHBLAH', 'Quanto tempo (em minutos) depois do artigo ser publicado deve decorrer até à votação sem restrições? Por omissão: 1440 (um dia)');
+@define('PLUGIN_KARMA_VOTINGTIME_BLAHBLAH', 'Período (em minutos) que deve decorrer entre votos consecutivos. Só se aplica depois do período acima ter expirado. Por omissão: 5');
+@define('PLUGIN_KARMA_TIMEOUT', 'Protecção contra sobrecarga: Outro visitante votou há pouco. Por favor espere %s minutos.');
+@define('PLUGIN_KARMA_CURRENT', 'Karma actual: %2$s, %3$s voto(s)');
+@define('PLUGIN_KARMA_EXTENDEDONLY', 'Só artigos com extensão');
+@define('PLUGIN_KARMA_EXTENDEDONLY_BLAHBLAH', 'Mostrar votação karma só para o acesso a artgos com extensão');
+@define('PLUGIN_KARMA_MAXKARMA', 'Periodo de votação karma');
+@define('PLUGIN_KARMA_MAXKARMA_BLAHBLAH', 'Permitir somente votação karma até o artigo ter de X dias (Por omissão: 7)');
+@define('PLUGIN_KARMA_LOGGING', 'Registar votos no log?');
+@define('PLUGIN_KARMA_LOGGING_BLAHBLAH', 'Registar votos de karma no log?');
+@define('PLUGIN_KARMA_ACTIVE', 'Activar votação karma?');
+@define('PLUGIN_KARMA_ACTIVE_BLAHBLAH', 'A votação karma está disponível?');
+@define('PLUGIN_KARMA_VISITS', 'Activar registo de visitas?');
+@define('PLUGIN_KARMA_VISITS_BLAHBLAH', 'Deve ser contado e mostrado cada click relativo à extensão?');
+@define('PLUGIN_KARMA_VISITSCOUNT', ' %4$s acessos');
+@define('PLUGIN_KARMA_STATISTICS_VISITS_TOP', 'Artigos mais visitados');
+@define('PLUGIN_KARMA_STATISTICS_VISITS_BOTTOM', 'Artigos menos visitados');
+@define('PLUGIN_KARMA_STATISTICS_VOTES_TOP', 'Artigos com karma mais alto');
+@define('PLUGIN_KARMA_STATISTICS_VOTES_BOTTOM', 'Artigos com karma mais baixo');
+@define('PLUGIN_KARMA_STATISTICS_POINTS_TOP', 'Artigos com melhor votação karma');
+@define('PLUGIN_KARMA_STATISTICS_POINTS_BOTTOM', 'Artigos com pior votação karma');
+@define('PLUGIN_KARMA_STATISTICS_VISITS_NO', 'visitas');
+@define('PLUGIN_KARMA_STATISTICS_VOTES_NO', 'votos');
+@define('PLUGIN_KARMA_STATISTICS_POINTS_NO', 'pontos');
+
+?>
--- /dev/null
+<?php # $Id:$
+# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
+# All rights reserved. See LICENSE file for licensing details
+# Translation (c) by João P Matos <jmatos@math.ist.utl.pt>
+/* vim: set sts=4 ts=4 expandtab : */
+
+@define('PLUGIN_EVENT_LIVESEARCH_NAME', 'Livesearch');
+@define('PLUGIN_EVENT_LIVESEARCH_DESC', 'Melhora o funcionamento interno da busca ao juntar actualizações em tempo real ao pressionar as teclas (JavaScript)');
+@define('PLUGIN_EVENT_LIVESEARCH_WAIT', 'Espere, enviando pedido...');
+
+?>
\ No newline at end of file
--- /dev/null
+<?php # $Id:$
+# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
+# All rights reserved. See LICENSE file for licensing details
+# Translation (c) by João P Matos <jmatos@math.ist.utl.pt>
+/* vim: set sts=4 ts=4 expandtab : */
+
+@define('PLUGIN_EVENT_LIVESEARCH_NAME', 'Livesearch');
+@define('PLUGIN_EVENT_LIVESEARCH_DESC', 'Melhora o funcionamento interno da busca ao juntar actualizações em tempo real ao pressionar as teclas (JavaScript)');
+@define('PLUGIN_EVENT_LIVESEARCH_WAIT', 'Espere, enviando pedido...');
+
+?>
\ No newline at end of file
--- /dev/null
+<?php # $Id:$
+# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
+# All rights reserved. See LICENSE file for licensing details
+# Translation (c) by Rodrigo Lazo <rlazo.paz@gmail.com>
+/* vim: set sts=4 ts=4 expandtab : */
+
+@define('PLUGIN_EVENT_MAILER_NAME', 'Envie as suas entradas através de E-Mail');
+@define('PLUGIN_EVENT_MAILER_DESC', 'Permite enviar uma entrada nova via E-mail para um endereço específico');
+@define('PLUGIN_EVENT_MAILER_RECIPIENT', 'Destinatário');
+@define('PLUGIN_EVENT_MAILER_RECIPIENTDESC', 'Endereço de E-Mail para onde enviar as entradas (sugestão: uma lista de correio)');
+@define('PLUGIN_EVENT_MAILER_LINK', 'Enviar ligação ao artigo?');
+@define('PLUGIN_EVENT_MAILER_LINKDESC', 'Inclui uma ligação ao artigo dentro da mensagem.');
+@define('PLUGIN_EVENT_MAILER_STRIPTAGS', 'Eliminar HTML?');
+@define('PLUGIN_EVENT_MAILER_STRIPTAGSDESC', 'Elimina as etiquetas HTML da mensagem.');
+@define('PLUGIN_EVENT_MAILER_CONVERTP', 'Converter parágrafos de HTML em mudanças de linha?');
+@define('PLUGIN_EVENT_MAILER_CONVERTPDESC', 'Junta mudanças de linha a seguir a cada parágrafo. Esta opção é muito útil se também escolher a eliminação de etiquetas HTML, pois assim manter-se-ão os parágrafos.');
+
+?>
\ No newline at end of file
--- /dev/null
+<?php # $Id:$
+# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
+# All rights reserved. See LICENSE file for licensing details
+# Translation (c) by Rodrigo Lazo <rlazo.paz@gmail.com>
+/* vim: set sts=4 ts=4 expandtab : */
+
+@define('PLUGIN_EVENT_MAILER_NAME', 'Envie as suas entradas através de E-Mail');
+@define('PLUGIN_EVENT_MAILER_DESC', 'Permite enviar uma entrada nova via E-mail para um endereço específico');
+@define('PLUGIN_EVENT_MAILER_RECIPIENT', 'Destinatário');
+@define('PLUGIN_EVENT_MAILER_RECIPIENTDESC', 'Endereço de E-Mail para onde enviar as entradas (sugestão: uma lista de correio)');
+@define('PLUGIN_EVENT_MAILER_LINK', 'Enviar ligação ao artigo?');
+@define('PLUGIN_EVENT_MAILER_LINKDESC', 'Inclui uma ligação ao artigo dentro da mensagem.');
+@define('PLUGIN_EVENT_MAILER_STRIPTAGS', 'Eliminar HTML?');
+@define('PLUGIN_EVENT_MAILER_STRIPTAGSDESC', 'Elimina as etiquetas HTML da mensagem.');
+@define('PLUGIN_EVENT_MAILER_CONVERTP', 'Converter parágrafos de HTML em mudanças de linha?');
+@define('PLUGIN_EVENT_MAILER_CONVERTPDESC', 'Junta mudanças de linha a seguir a cada parágrafo. Esta opção é muito útil se também escolher a eliminação de etiquetas HTML, pois assim manter-se-ão os parágrafos.');
+
+?>
\ No newline at end of file