summaryrefslogtreecommitdiffstats
path: root/tde-i18n-pl/docs/tdenetwork/krfb/index.docbook
blob: 5c009dc6f88654f824efb17acb35ed657518bc9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY kappname "&krfb;">
  <!ENTITY package "tdenetwork">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % Polish "INCLUDE"> <!-- ONLY If you are writing non-English 
                                     original documentation, change 
                                     the language here -->
    
  <!-- Do not define any other entities; instead, use the entities
       from entities/general.entities and $LANG/user.entities. -->
]>
<!-- Based on kdoctemplate v0.9 January 10 2003 -->

<book lang="&language;">

<!-- This header contains all of the meta-information for the document such
as Authors, publish date, the abstract, and Keywords -->

<bookinfo>
<title>Podręcznik programu &krfb;</title>

<authorgroup>
<author>&Brad.Hards; &Brad.Hards.mail; </author>
</authorgroup>

<othercredit role="translator"><firstname>Krzysztof</firstname><surname>Woźniak</surname><affiliation><address><email>wozniakk@ceti.pl</email></address></affiliation><contrib>Polskie tłumaczenie</contrib></othercredit> 

<copyright>
<year>2003</year>
<holder>&Brad.Hards;</holder>
</copyright>
<!-- Translators: put here the copyright notice of the translation -->

<legalnotice>&FDLNotice;</legalnotice>

<!-- Date and version information of the documentation
Don't forget to include this last date and this last revision number, we
need them for translation coordination !
Please respect the format of the date (YYYY-MM-DD) and of the version
(V.MM.LL), it could be used by automation scripts.
Do NOT change these in the translation. -->

<date>2003-09-17</date>
<releaseinfo>1.0.1</releaseinfo>

<!-- Abstract about this handbook -->

<abstract>
<para>Program &krfb; jest programem pozwalającym na udostępnianie swojego pulpitu użytkownikowi na innym komputerze, który za pomocą programu klienta VNC może go oglądać, czy nawet kontrolować. </para>
</abstract>

<!-- This is a set of Keywords for indexing by search engines.
Please at least include KDE, the KDE package it is in, the name
 of your application, and a few relevant keywords. -->

<keywordset>
<keyword>KDE</keyword>
<keyword>tdenetwork</keyword>
<keyword>krfb</keyword>
<keyword>VNC</keyword>
<keyword>RFB</keyword>
<keyword>krdc</keyword>
<keyword>Współdzielenie pulpitu</keyword>
<keyword>Zdalna kontrola</keyword>
<keyword>Zdalna pomoc</keyword>
<keyword>Zdalny pulpit</keyword>
</keywordset>

</bookinfo>

<!-- The contents of the documentation begin here.  Label
each chapter so with the id attribute. This is necessary for two reasons: it
allows you to easily reference the chapter from other chapters of your
document, and if there is no ID, the name of the generated HTML files will vary
from time to time making it hard to manage for maintainers and for the CVS
system. Any chapter labelled (OPTIONAL) may be left out at the author's
discretion. Other chapters should not be left out in order to maintain a
consistent documentation style across all KDE apps. -->

<chapter id="introduction">
<title>Wprowadzenie</title>

<!-- The introduction chapter contains a brief introduction for the
application that explains what it does and where to report
problems. Basically a long version of the abstract.  Don't include a
revision history. (see installation appendix comment) -->

<para>Program &krfb; jest programem pozwalającym na udostępnianie swojego pulpitu użytkownikowi na innym komputerze, który za pomocą programu klienta VNC może go oglądać, czy nawet kontrolować. </para>

<para>Programu &krfb; używa się zwykle jednocześnie z klientem VNC dla środowiska &kde;, którym jest &krdc;, jako że współdziała on ze specyficznymi dla &krfb; funkcjami. </para>

<para>Program &krfb; nie wymaga uruchamiania nowej sesji w systemie X Windows, może on udostępnić aktualnie użytkowaną sesję. Dzięki temu jest on szczególnie przydatny, gdy trzeba udzielić pomocy technicznej użytkownikowi komputera. </para>

<para>Wszelkie problemy i propozycje rozwinięcia programu, powinny być zgłaszane na listy mailingowe &kde; lub poprzez system śledzenia błędów: <ulink url="http://bugs.trinitydesktop.org">http://www.bugs.trinitydesktop.org</ulink>. </para>
</chapter>

<chapter id="what-is-RFB">
<title>Wprowadzenie do protokołu RFB</title>

<para>W tej części zamieszczono krótką charakterystykę protokołu RFB (Remote Frame Buffer) wykorzystywanego przed &krdc; jak też inne kompatybilne programy. Można opuścić ten rozdział, jeżeli zagadnienia związane z cechami tego protokołu są znane. </para>

<para>Wysoki stopień implementacji protokołu RFB zapewnia system Virtual Network Computer, powszechnie znany jako <acronym>VNC</acronym>. </para>

<para>Mechanizm "Remote Frame Buffer" (lub w skrócie <acronym>RFB</acronym>) jest prostym protokołem transmisji, wykorzystywanym do zdalnego dostępu do graficznego interfejsu użytkownika. Jego działanie odbywa się na poziomie bufora ramki, co jest tożsame z widocznym na ekranie obrazem. Pozwala to na wykorzystanie go w każdym okienkowym systemie (zarówno X11, jak też &MacOS; oraz &Microsoft; &Windows;). Programy wykorzystujące protokół RFB istnieją dla wielu platform systemowych i często mogą być swobodnie rozpowszechniane. </para>

<para>Wykorzystanie protokołu RFB, wymaga programu zwanego klientem (uruchomionego na komputerze, przy którym siedzi użytkownik - z ekranem, klawiaturą i myszką). Program serwera uruchomiony jest na komputerze z buforem ramki (na którym pracuje system okienkowy i programy, które będą zdalnie obsługiwane). Program  &krdc; jest klientem RFB stworzonym dla środowiska &kde;, natomiast jako serwer może być wykorzystywany program &krfb;. </para>

<para>Ponieważ przesłanie obrazu z bufora ramki generuje spory ruch w sieci, protokół ten najlepiej się sprawuje na łączach o dużej przepustowości, takich jak sieć lokalna. Można korzystać z programu &krdc; na łączach o niższej szybkości, jednak jakość takiego połączenia nie będzie najlepsza. </para>

</chapter>

<chapter id="using-krfb">
<title>Korzystanie z programu &krfb;</title>

<!-- This chapter should tell the user how to use your app. You should use as
many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document
your application. -->

<para>Korzystanie z &krfb; jest bardzo proste, na poniższym zrzucie ekranu przedstawiony jest interfejs użytkownika. </para>

<para>
<screenshot>
<screeninfo>Poniżej widoczne jest okno programu &krfb;</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="screenshot.png" format="PNG"/>
	  </imageobject>
	  <imageobject>
	    <imagedata fileref="screenshot.eps" format="EPS"/>
	  </imageobject>
	  <textobject>
	    <phrase>Główne okno programu &krfb;.</phrase>
	  </textobject>
	</mediaobject>
</screenshot>
</para>

<para>Jeżeli użytkownik chce udostępnić komuś swój pulpit, może utworzyć zaproszenie osobiste za pomocą przycisku <guibutton>Stwórz zaproszenie osobiste</guibutton> co spowoduje otwarcie okna zawierającego informacje niezbędne do połączenia się z jego pulpitem. Przykład takiego zaproszenia widoczny jest poniżej. </para>

<para>
<screenshot>
<screeninfo>Przykładowe zaproszenie osobiste</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="personal_invitation.png" format="PNG"/>
	  </imageobject>
	  <imageobject>
	    <imagedata fileref="personal_invitation.eps" format="EPS"/>
	  </imageobject>
	  <textobject>
	    <phrase>Przykładowe zaproszenie osobiste</phrase>
	  </textobject>
	</mediaobject>
</screenshot>
</para>

<para>W celu zwiększenia bezpieczeństwa, zaproszenie jest ważne tylko przez godzinę od momentu jego utworzenia, a także konieczne jest wprowadzenie poprawnego hasła. </para>

<para>W programie &krfb; możliwe jest tworzenie zaproszeń dla innych użytkowników w formie wiadomości e-mail. Można tego dokonać naciskając przycisk <guibutton>Zaproś przez e-mail...</guibutton> w głównym oknie programu. Spowoduje to pojawienie się okna nowej wiadomości w programie pocztowym, gotowego do uzupełnienia adresem odbiorcy, do którego wysłane ma być zaproszenie. </para>

<para>
<screenshot>
<screeninfo>Przykładowe zaproszenie w formie emaila</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="email_invitation.png" format="PNG"/>
	  </imageobject>
	  <imageobject>
	    <imagedata fileref="email_invitation.eps" format="EPS"/>
	  </imageobject>
	  <textobject>
	    <phrase>Przykładowe zaproszenie w formie emaila</phrase>
	  </textobject>
	</mediaobject>
</screenshot>
</para>

<warning>
<para>Program &krfb; wyświetli ostrzeżenie o problemach bezpieczeństwa związanych z przesłaniem takich informacji poprzez niezabezpieczone łącze sieciowe. </para>
<para>Jeżeli nie możesz zaszyfrować wiadomości email (lub w inny sposób zabezpieczyć swoje połączenie), wysyłanie zaproszeń przez email jest związane z poważnym ryzykiem, gdyż każdy może przeczytać hasło i adres serwera, gdy wiadomość jest przesyłana przez sieć. Oznacza to, że ktoś potencjalnie może przejąć kontrolę nad komputerem użytkownika. </para>
<para>Jeżeli nie jest możliwe zaszyfrowanie wiadomości email, lepiej wykorzystać zaproszenie osobiste, i drogą telefoniczną poinformować drugą osobę (wcześniej weryfikując jej tożsamość) o zaproszeniu, oraz przekazać dane niezbędne do uzyskania połączenia. </para>
</warning>

<sect1 id="krfb-managing-invitations">
<title>Zarządzanie zaproszeniami w programie &krfb;</title>

<para>Program &krfb; umożliwia zarządzanie wszystkimi utworzonymi zaproszeniami (zarówno osobistymi jak i wysyłanymi drogą emailową). Po naciśnięciu przycisku <guibutton>Zarządzaj zaproszeniami...</guibutton> pojawi się okno dialogowe, widoczne poniżej. </para>

<para>
<screenshot>
<screeninfo>Zarządzanie zaproszeniami w &krfb;</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="invitation_management.png" format="PNG"/>
	  </imageobject>
	  <imageobject>
	    <imagedata fileref="invitation_management.eps" format="EPS"/>
	  </imageobject>
	  <textobject>
	    <phrase>Zarządzanie zaproszeniami w &krfb;</phrase>
	  </textobject>
	</mediaobject>
</screenshot>
</para>

<para>Okno zarządzania zaproszeniami pozwala na tworzenie nowych z pomocą przycisków <guibutton>Nowe zaproszenie osobiste...</guibutton> oraz <guibutton>Nowe zaproszenie e-mailowe...</guibutton>, których działanie jest identyczne jak przycisków: <guibutton>Stwórz zaproszenie osobiste...</guibutton> i <guibutton>Zaproś przez e-mail...</guibutton> w głównym oknie &krfb;. </para>

<para>Okno zarządzania zaproszeniami umożliwia usuwanie utworzonych zaproszeń. Usuwanie zaznaczonych myszką lub z pomocą klawiatury zaproszeń odbywa się z pomocą przycisku <guibutton>Usuń</guibutton>. Usunięcie wszystkich zaproszeń możliwe jest za pomocą przycisku <guibutton>Usuń wszystko</guibutton> </para>

<!-- OK, so this is obvious, I only did it for completeness -->
<para>Naciśniecie przycisku <guibutton>Zamknij</guibutton> zamyka okno. </para>

</sect1>

<sect1 id="krfb-configuration">
<title>Konfiguracja programu &krfb;</title>
<para>Uzupełnieniem opisanego powyżej interfejsu użytkownika programu &krfb; są narzędzia konfiguracji programu, dostępne jako moduł w centrum sterowania &kde;, lub jako okno wyświetlane po naciśnięciu przycisku <guibutton>Konfiguruj...</guibutton> w głównym oknie programu. Parametry konfiguracyjne ustawia się za pomocą okna z klikoma kartami, pokazanego poniżej: </para>

<para>
<screenshot>
<screeninfo>Konfiguracja &krfb; (Karta: Dostęp)</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="configuration_access.png" format="PNG"/>
	  </imageobject>
	  <imageobject>
	    <imagedata fileref="configuration_access.eps" format="EPS"/>
	  </imageobject>
	  <textobject>
	    <phrase>Konfiguracja &krfb; (Karta: Dostęp)</phrase>
	  </textobject>
	</mediaobject>
</screenshot>
</para>

<para>Karta <guilabel>Dostęp</guilabel> pozwala na konfigurację ustawień związanych z dostępem do serwera &krfb;. </para>

<para>Przycisk <guibutton>Stwórz i zarządzaj zaproszeniami...</guibutton> otwiera wcześniej opisane <link linkend="krfb-managing-invitations"> okno zarządzania zaproszeniami &krfb;</link>. </para>

<para>Opcja <guilabel>Ogłoś usługę w sieci</guilabel> decyduje o tym, czy  &krfb; ma rozgłaszać zaproszenie do połączenia w sieci, z wykorzystaniem protokołu SLP. Jest to bardzo przydatna funkcja, jednak działa ona dobrze jedynie z programami klienta obsługującymi protokół SLP. Przykładem takiego programu jest program &krdc;. </para>

<para>Opcja <guilabel>Pozwól na połączenia bez zaproszenia</guilabel> decyduje o tym, czy &krfb; ma przyjmować połączenia, dla których nie zostało utworzone zaproszenie. W przypadku gdy opcja ta jest zaznaczone, należy pamiętać aby ustawić hasło dostępu do komputera. Pozostałe opcje pozwalają na włączenie/wyłączenie pojawiania się okna z pytaniem o akceptację połączenia, oraz na ustawienie czy zdalny użytkownik będzie miał pełną kontrolę nad pulpitem czy będzie go mógł jedynie oglądać. </para>

<para>Jeżeli komputer pracuje jako stacja robocza, i zostanie wybrana opcja "pozwól na połączenia bez zaproszenia", to najlepiej jednocześnie zaznaczyć opcję <guilabel>Zatwierdź połączenie bez zaproszenia zanim zostanie zaakceptowane</guilabel>. Jeżeli jednak, komputer działa jako serwer, a &krfb; stanowi narzędzie zdalnej administracji, to opcję <guilabel>Zatwierdź połączenie bez zaproszenia zanim zostanie zaakceptowane</guilabel> należy pozostawić niezaznaczoną. </para>

<note>
<para>Program &krfb; wykorzystuje standardowy mechanizm haseł RFB, który nie przesyła ich otwartym tekstem poprzez sieć. Zamiast tego, wykorzystywany jest mechanizm pytanie-odpowiedź, co jest wystarczająco bezpieczne przy założeniu, że hasło jest odpowiednio strzeżone. </para>
</note>

<para>Program &krfb; pozwala na wyłączenie przesyłania obrazu tapety pulpitu do drugiego komputera. Zachowanie to ustawia się w karcie <guilabel>Sesja</guilabel>, co pokazano poniżej. </para>

<para>
<screenshot>
<screeninfo>Konfiguracja &krfb; (Karta: Sesja)</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="configuration_session.png" format="PNG"/>
	  </imageobject>
	  <imageobject>
	    <imagedata fileref="configuration_session.eps" format="EPS"/>
	  </imageobject>
	  <textobject>
	    <phrase>Konfiguracja &krfb; (Karta: Sesja)</phrase>
	  </textobject>
	</mediaobject>
</screenshot>
</para>

<para>Jeżeli opcja ta zostanie zaznaczona, &krfb; nie będzie przesyłać obrazu tapety. Jeżeli opcja nie zostanie zaznaczona, to decyzja o przesłaniu obrazu tapety, będzie uzależniona od konfiguracji programu klienta (komputera inicjującego połączenie) </para>

<para>Zakładka <guilabel>Sieć</guilabel> pozwala na zdefiniowanie portu wykorzystywanego przez &krfb;, co widać poniżej. </para>

<para>
<screenshot>
<screeninfo>Konfiguracja &krfb; (Karta: Sieć)</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="configuration_network.png" format="PNG"/>
	  </imageobject>
	  <imageobject>
	    <imagedata fileref="configuration_network.eps" format="EPS"/>
	  </imageobject>
	  <textobject>
	    <phrase>Konfiguracja &krfb; (Karta: Sieć)</phrase>
	  </textobject>
	</mediaobject>
</screenshot>
</para>

<para>Jeżeli wybrano opcję <guilabel>Przydziel port automatycznie</guilabel>, &krfb; dokona wyboru najlepiej pasującego numeru portu, który następnie będzie podawany w zaproszeniach. Jeżeli opcja <guilabel>Przydziel port automatycznie</guilabel> nie będzie zaznaczona, to możliwe będzie ręczne wprowadzenie określonego numeru portu, co może być użyteczne w przypadku stosowania przekierowywania portów w firewallu. W przypadku wykorzystywania protokołu SLP, jego mechanizmy automatycznie zidentyfikują właściwy port. </para>

</sect1>

<sect1 id="krfb-connection">
<title>Co dzieje się w momencie, gdy ktoś podłącza się do &krfb;</title>

<para>Gdy ktoś z zewnątrz próbuje połączyć się z &krfb; na komputerze użytkownika, wyświetlone zostaje wyskakujące okienko z wiadomością o połączeniu, podobne do pokazanego poniżej. Ono to nie będzie się pojawiać, jeżeli została zaznaczona opcja: "Zatwierdź połączenia bez zaproszenia zanim zostaną zaakceptowane" w parametrach konfiguracyjnych programu &krfb;. </para>
<para>
<screenshot>
<screeninfo>&krfb; - Okno połączenia</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="connection.png" format="PNG"/>
	  </imageobject>
	  <imageobject>
	    <imagedata fileref="connection.eps" format="EPS"/>
	  </imageobject>
	  <textobject>
	    <phrase>&krfb; - Okno połączenia</phrase>
	  </textobject>
	</mediaobject>
</screenshot>
</para>

<para>Jeżeli naciśnięty zostanie przycisk <guibutton>Zaakceptuj połączenie</guibutton>, zdalny klient może przejść do procedury uwierzytelniania (co wymaga podania właściwego hasła z zaproszenia osobistego lub e-mailowego). Jeżeli naciśnięty zostanie przycisk <guibutton>Odrzuć połączenie</guibutton>, to próba połączenia zostanie przerwana. </para>

<para>Widoczna w oknie opcja <guilabel>Zezwól zdalnemu użytkownikowi na kontrolowanie klawiatury i myszy</guilabel> decyduje o tym, czy zdalny użytkownik może jedynie obserwować pulpit, czy ma pełną kontrolę nad komputerem. </para>

<para>Jeżeli połączenie odbyło się poprawnie, przy wykorzystaniu hasła z wcześniej stworzonego zaproszenia osobistego bądź e-mailowego, to zaproszenie to jest usuwane i nie może zostać ponownie użyte. Pojawi się również małe okienko wyskakujące w obszarze dokowania na pasku zadań, z informacją iż połączenie zostało nawiązane. </para>

</sect1>
</chapter>

<chapter id="dcop">
<title>Podręcznik programisty  &krfb;</title>

<para>Program &krfb; obsługuje kilka wywołań mechanizmu &DCOP;, opisanych w tym rozdziale. Jeżeli &DCOP; nie jest wykorzystywany, to nie należy się tym martwić. Można go stosować do automatyzacji niektórych działań programie &krdc; (jak też innych programów dla środowiska &kde;). Mechanizm &DCOP; jest użytecznym narzędziem, więcej na jego temat znajduje się w dokumentacji, oraz podręcznikach na stronie: <ulink url="http://developer.kde.org">http://developer.kde.org</ulink>. </para>

<para>Możesz zakończyć program &krfb; poprzez użycie polecenia "quit" tak jak w poniższym przykładzie: </para>

<informalexample>
<screen><prompt>&percnt;</prompt>dcop krfb-1507 MainApplication-Interface quit
</screen>
</informalexample>

<note>
<para>Należy zmienić pokazany w przykładzie tekst <userinput>krfb-1507</userinput>, tak aby odnosił się on do właściwego wystąpienia &krdc; w systemie. Jeżeli uruchomione zostanie polecenie <command>dcop</command>, to wyświetli się lista wszystkich uruchomionych programów, które można za pomocą &DCOP; kontrolować. </para>
</note>

</chapter>

<chapter id="faq">
<title>Pytania i odpowiedzi</title>
&reporting.bugs; &updating.documentation; </chapter>

<chapter id="credits">

<!-- Include credits for the programmers, documentation writers, and
contributors here. The license for your software should then be included below
the credits with a reference to the appropriate license file included in the KDE
distribution. -->

<title>Zasługi i licencje</title>

<para>&krfb; </para>
<para>Prawa autorskie do programu (c) 2002 Tim Jansen <email>tim@tjansen.de</email> </para>
<para>Współpraca: <itemizedlist> <listitem><para>Ian Reinhart Geiser <email>geiseri@kde.org</email></para>
</listitem>
</itemizedlist>
</para>

<para>Prawa autorskie do dokumentacji &copy; 2003 &Brad.Hards; &Brad.Hards.mail; </para>

<para>Polskie tłumaczenie dokumentacji: <email>wozniakk@ceti.pl</email></para> 
&underFDL; &underGPL; </chapter>

<appendix id="installation">
<title>Instalacja</title>

<sect1 id="getting-krfb">
<title>Gdzie zdobyć program &krfb;</title>
&install.intro.documentation; </sect1>

<sect1 id="compilation">
<title>Kompilacja i instalacja</title>
&install.compile.documentation; </sect1>

</appendix>

&documentation.index;
</book>

<!--
Local Variables:
mode: xml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:

vim:tabstop=2:shiftwidth=2:expandtab 
-->