Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Zdroj již není dále dostupný!"
--><!--#include virtual="include/top.html" -->

    Požadované URL již není na tomto serveru k dispozici, ani není k dispozici
    žádná adresa k přesměrování.

  <!--#if expr="-n v('HTTP_REFERER')" -->
  
    Informujte, prosím, autora
    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">odkazující
    stránky</a>, že odkaz je zastaralý.
   
  <!--#else -->
  
    Pokud jste následovali odkaz z&nbsp;cizí stránky, kontaktujte, prosím,
    jejího autora.

  <!--#endif -->
  
<!--#include virtual="include/bottom.html" --> 
----------cs--

Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Objekt nicht mehr verfügbar!"
--><!--#include virtual="include/top.html" -->

    Der angeforderte URL existiert auf dem Server nicht mehr
    und wurde dauerhaft entfernt.
    Eine Weiterleitungsadresse ist nicht verfügbar.

  <!--#if expr="-n v('HTTP_REFERER')" -->

    Bitte informieren Sie den Autor der
    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">verweisenden
    Seite</a>, dass der Link nicht mehr aktuell ist.

  <!--#else -->

    Falls Sie einem Link von einer anderen Seite gefolgt sind,
    informieren Sie bitte den Autor dieser Seite hierüber.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------de--

Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Resource is no longer available!"
--><!--#include virtual="include/top.html" -->

    The requested URL is no longer available on this server and there is no
    forwarding address.
  
  <!--#if expr="-n v('HTTP_REFERER')" -->
  
    Please inform the author of the
    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">referring
    page</a> that the link is outdated.
   
  <!--#else -->
  
    If you followed a link from a foreign page, please contact the
    author of this page.
   
  <!--#endif -->
  
<!--#include virtual="include/bottom.html" --> 
----------en--

Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="¡El recurso ya no está disponible!" -->
<!--#include virtual="include/top.html" -->

   La URL solicitada ya no está disponible en este servidor y
   no existe una dirección a la cual remitirle.

   <!--#if expr="-n v('HTTP_REFERER')" -->

    Por favor, informe al autor de la
    <a href="<!--#echo encoding="url" var="HTTP_REFERER"-->">página
    que le ha remitido</a> de que el enlace está desactualizado.

  <!--#else -->

    Si ha seguido un enlace de una página externa, por favor,
    póngase en contacto con el autor de esa página.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------es--

Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="Cette ressource n'existe plus!"
--><!--#include virtual="include/top.html" -->

    L'URL demandée n'est plus accessible sur ce serveur et il
    n'y a pas d'adresse de redirection. 

  <!--#if expr="-n v('HTTP_REFERER')" --> 

    Nous vous prions d'informer l'auteur de
    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">la 
    page en question</a> que la référence n'est plus valable.

  <!--#else --> 

    Si vous avez suivi une référence issue d'une page autre, 
    veuillez contacter l'auteur de cette page.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------fr--

Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Acmhainn imithe!"
--><!--#include virtual="include/top.html" -->

    Níl an URL iarraithe ar fáil ar an fhreastalaí seo 
    a thuilleadh, agus níl aon seoladh nua ann dó.

  <!--#if expr="-n v('HTTP_REFERER')" -->

    Cur in úil do úadar an
    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">leathanach
    thagarthach</a> go bhfuil an nasc as-dáta, le do thoil.

  <!--#else -->

    Má leanfá nasc ó leathanach iasachta, téigh i
    dteaghmháil le úadar an leathanach sin, le do thoil.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------ga--

Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="La risorsa non è più disponibile!"
--><!--#include virtual="include/top.html" -->

    L'URL richiesto non è più disponibile su questo server
    e non esistono indirizzi verso i quali sia possibile inoltrare
    la richiesta.

  <!--#if expr="-n v('HTTP_REFERER')" -->

    Per favore, informa l'autore della
    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">pagina
    di provenienza</a> che il link non è più valido.

  <!--#else -->

    Se sei arrivato da una pagina esterna, informa l'autore della
    pagina di provenienza che il link non è più valido.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------it--

Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Resource is no longer available!"
--><!--#include virtual="include/top.html" -->

    要求された URL は既に本サーバでは利用できませんし、
    移動先もわかりません。
  
  <!--#if expr="-n v('HTTP_REFERER')" -->
  
    <a href="<!--#echo encoding="url" var="HTTP_REFERER"-->"
    >参照元ページ</a>の著者に、
    リンクが古くなっていることをご連絡ください。
   
  <!--#else -->
  
    他のページからのリンクを辿ってきた場合は、
    そのページの著者にご連絡ください。
   
  <!--#endif -->
  
<!--#include virtual="include/bottom.html" --> 
----------ja--

Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="객체가 없어졌음!"
--><!--#include virtual="include/top.html" -->

   요청한 URL은 더 이상 이 서버에 남아있지 않으며,
   그 객체가 옮겨진 다른 URL 역시 남아있지 않습니다.

  <!--#if expr="-n v('HTTP_REFERER')" -->

    <a href="<!--#echo encoding="url" var="HTTP_REFERER"-->">이전
    페이지</a>의 만든이에게 주소가 잘못되었다고 알려주시기 바랍니다.

  <!--#else -->

    다른 페이지의 링크를 따라오셨다면, 그 페이지의 만든이에게 연락을 하시기
    바랍니다.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------ko--

Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Dit object is niet langer beschikbaar!"
--><!--#include virtual="include/top.html" -->

   De gevraagde URL is niet langer beschikbaar op deze server en er is geen
   doorverwijsadres.

  <!--#if expr="-n v('HTTP_REFERER')" -->

   Gelieve aan de auteur van
   <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">deze pagina</a>
   te melden dat deze link niet langer actueel is.

  <!--#else -->

   Indien u deze link hebt gekregen van een andere pagina, gelieve
   de auteur van deze pagina te contacteren.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------nl--

Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Ressursen er ikke lenger tilgjengelig!"
--><!--#include virtual="include/top.html" -->

    Den ønskede adressen er ikke lenger tilgjengelig hos denne
    serveren og det finnes ingen adresse for videresending.

  <!--#if expr="-n v('HTTP_REFERER')" -->

    Venligst informer forfatteren bak 
    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">den
    aktuelle siden</a> om at lenken er utdatert.
 
  <!--#else -->

    Om du fulgte en lenke fra en ekstern side, venligst kontakt
    forfatteren bak den siden.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------nb--

Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="Zas&#243;b usuni&#281;ty!"
--><!--#include virtual="include/top.html" -->

    Poszukiwany zas&#243;b nie jest ju&#380; dost&#281;pny na tym serwerze i nie
    podano nowego adresu zasobu.

  <!--#if expr="-n v('HTTP_REFERER')" -->

    Prosimy poinformowa&#263; autora
    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">referuj&#261;cej
    strony</a> o nieaktualnym linku.

  <!--#else -->

    Je&#347;li pod&#261;&#380;y&#322;e&#347; za linkiem z innej strony, skontaktuj si&#281; z jej
    autorem.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------pl--

Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="Recurso não disponível!"
--><!--#include virtual="include/top.html" -->

   A URL solicitada não está disponível neste servidor
   e não existe um endereço alternativo.

  <!--#if expr="-n v('HTTP_REFERER')" -->

   Por favor informe o autor da
   <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">página
   referida</a> que a URL está desatualizada.

  <!--#else -->

   Se você seguiu um "link" de uma página externa, por favor
   entre em contato com o autor desta página e o informe sobre a
   mudança do "link".

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
-------pt-br--

Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="Recurso não disponível!"
--><!--#include virtual="include/top.html" -->

	O URL desejado já não está disponível
	neste servidor e não existe endereço alternativo.

  <!--#if expr="-n v('HTTP_REFERER')" -->

	Por favor informe o autor da
	<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">página
	originária</a> que a hiperligação está
	desactualizada.

  <!--#else -->

	Se chegou aqui a partir de uma hiperligação externa,
	por favor contacte o autor dessa página.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------pt--

Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Resursa nu mai este disponibila!"
--><!--#include virtual="include/top.html" -->

    URL-ul cerut nu mai este disponibil pe acest server si nu
    exista o adresa de inaintare.

  <!--#if expr="-n v('HTTP_REFERER')" -->

    Va rugam informati autorul
    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">paginii
    referite</a> ca link-ul nu mai este de actualitate.

  <!--#else -->

    Va rugam contactati autorul acestei pagini daca ati urmat
    un link dintr-o pagina externa.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------ro--

Content-language: ru
Content-type: text/html; charset=UTF-8
Body:----------ru--
<!--#set var="TITLE" value="Документ удалён!"
--><!--#include virtual="include/top.html" -->

    Документ удалён, и адрес перенаправления отсутствует.

  <!--#if expr="-n v('HTTP_REFERER')" -->

    Пожалуйста, сообщите автору
    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">страницы</a>,
    ссылающейся на документ, что ссылка устарела.

  <!--#else -->

    Если Вы обратились к документу по ссылке с другой страницы, пожалуйста,
    сообщите её автору об ошибке.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------ru--

Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Ресурс није више доступан!"
--><!--#include virtual="include/top.html" -->

    Захтевани УРЛ није више доступан на овом серверу и нема
    адресе на коју бисте могли бити прослеђени.

  <!--#if expr="-n v('HTTP_REFERER')" -->

    Молимо обавестите аутора
    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">исходишне
    странице</a> да је веза застарела.

  <!--#else -->

    Ако сте пратили везу са спољне странице, молимо обавестите
    аутора те странице.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------sr--

Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="Resursen inte längre tillgänglig!"
--><!--#include virtual="include/top.html" -->

    Den önskade adressen är inte längre tillgänglig hos
    denna server och det finns inte någon adress för vidarebefodran.

  <!--#if expr="-n v('HTTP_REFERER')" -->

    Vänligen informera författaren bakom 
    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">den aktuella
    sidan</a> att länken är inaktuell.
 
  <!--#else -->

    Om du följde en länk från en extern sida, vänligen
    kontakta författaren av den sidan.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------sv--

Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="Özkaynak artık mevcut değil!"
--><!--#include virtual="include/top.html" -->

    Talep ettiğiniz URL artık kullanılabilir değil
    ve herhangi bir yönlendirme de mevcut değil.

  <!--#if expr="-n v('HTTP_REFERER')" -->
  
    Lütfen
    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">istenen sayfanın</a>
    yazarına, bu bağlantının güncel olmadığını bildirin.
   
  <!--#else -->
  
    Başka bir sunucudaki bir bağlantıyı izleyerek buraya geldiyseniz,
    lütfen sözkonusu sayfanın yazarına bağlantının güncel olmadığını bildirin.
   
  <!--#endif -->
  
<!--#include virtual="include/bottom.html" --> 
----------tr--

Content-language: zh-cn
Content-type: text/html; charset=UTF-8
Body:----------zh-cn--
<!--#set var="CONTENT_LANGUAGE" value="zh-cn"
--><!--#set var="TITLE" value="资源不再可用！"
--><!--#include virtual="include/top.html" -->

    您请求的 URL 在此服务器上不再可用，且没有设置转发的地址。
  
  <!--#if expr="-n v('HTTP_REFERER')" -->
  
    请通知<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">来源页面</a>的作者，该链接已过期。
   
  <!--#else -->
  
    如果您从外部页面的一个链接访问，请联系该页面的作者。
   
  <!--#endif -->
  
<!--#include virtual="include/bottom.html" --> 
----------zh-cn--

Content-language: zh-tw
Content-type: text/html; charset=UTF-8
Body:----------zh-tw--
<!--#set var="CONTENT_LANGUAGE" value="zh-tw"
--><!--#set var="TITLE" value="資源不再可用！"
--><!--#include virtual="include/top.html" -->

    您請求的 URL 在此伺服器上不再可用，且沒有設置轉發的位址。
  
  <!--#if expr="-n v('HTTP_REFERER')" -->
  
    請通知<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">來源頁面</a>的作者，該連結已過期。
   
  <!--#else -->
  
    如果您從外部頁面的一個連結訪問，請聯繫此頁面的作者。
   
  <!--#endif -->
  
<!--#include virtual="include/bottom.html" --> 
----------zh-tw--
