From b5586e21735b38b574eb4c464513ba2b8e97ad9e Mon Sep 17 00:00:00 2001 From: george Date: Fri, 22 Nov 2002 19:19:50 +0000 Subject: [PATCH] Conversion de fichiers.html. --- 00TODO | 2 - unix/fichiers.tml | 465 ++++++++++++++++++++++++++++++++++++++++++ unix/fichiers_ex1.png | Bin 0 -> 1491 bytes unix/fichiers_ex2.png | Bin 0 -> 1789 bytes unix/fichiers_ex3.png | Bin 0 -> 2144 bytes unix/fichiers_ex4.png | Bin 0 -> 1501 bytes 6 files changed, 465 insertions(+), 2 deletions(-) create mode 100644 unix/fichiers.tml create mode 100644 unix/fichiers_ex1.png create mode 100644 unix/fichiers_ex2.png create mode 100644 unix/fichiers_ex3.png create mode 100644 unix/fichiers_ex4.png diff --git a/00TODO b/00TODO index 35d9419..b708579 100644 --- a/00TODO +++ b/00TODO @@ -21,7 +21,6 @@ unix/config/2002/index.html (#terminaux) () unix/exercices/mkdir_cd.html unix/exercices/less.html unix/exercices/cp_mv.html -unix/fichiers.html#rm internet/html/backgr.html internet/web/lynx.html @@ -86,7 +85,6 @@ cours/index.html cours/rcs.html cours/unix/cercles.html cours/unix/editeurs.html -cours/unix/fichiers.html cours/unix/fs.html cours/unix/imprimer.html cours/unix/index.html diff --git a/unix/fichiers.tml b/unix/fichiers.tml new file mode 100644 index 0000000..fe2f7fa --- /dev/null +++ b/unix/fichiers.tml @@ -0,0 +1,465 @@ + + + + +Fichiers + + + +

Manipuler les fichiers (files)

+ +

Comment un fichier est-il créé ?

+ +

+Un fichier est un paquet d'informations : du texte, de la musique, une +image... Chaque objet que vous manipulez en informatique (une page Web, la +musique de Casimir, vos photos de vacances, un logiciel...) correspond à un +fichier. Quand vous écrivez un texte avec Word et que vous le sauvegardez sous +le nom « Rapport de maîtrise », vous créez un fichier à ce nom, écrit +sur le disque dur. Chaque fois que vous écrivez quelque chose sur le disque, +vous créez un ou plusieurs fichiers. +

+ +

+Une des opérations les plus courantes consiste à écrire du texte. Pour cela, +voir le cours sur les éditeurs de texte. +

+ +

Quel nom donner à ses fichiers ?

+ +

+Les noms de fichiers s'écrivent avec des caractères alphanumériques (lettres +et chiffres). On peut utiliser des majuscules et des minuscules, mais elles +ne sont pas interchangeables : document et +Document sont deux fichiers distincts. +

+ +

+Il est préférable d'éviter les espaces dans les noms de fichiers (les +remplacer par underscore _, tiret -, virgule +, ou point .). Il vaut mieux éviter les caractères +accentués, et proscrire le reste (ponctuations diverses, signes bizarres). Il +faut aussi éviter de faire commencer un fichier par un . (par +exemple .document), et de faire des noms trop longs (même si en +théorie vous avez droit à 255 caractères). +

+ +

+Certains fichiers ont des suffixes conventionnels qui les identifient auprès +des utilisateurs et de certains programmes (liste non exhaustive de suffixes +et d'outils) : +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SuffixeNatureLogiciel à utiliser
.texFichier source pour LaTeXÉditeur de texte
.dviRésultat de la compilation LaTeXxdvi
.aux, .log, .toc, .mp, etc.Fichiers produits automatiquement par la compilation LaTeXÀ regarder avec less
.ps, .epsFichiers PostScriptgv (Ghostview)
.txtFichier texteÉditeur si vous voulez le +modifier, less si vous voulez juste +le lire.
.html, .shtml, .htmPages WebNavigateur +(netscape, links...)
.au, .ogg, .mp2, .mp3SonLes fichiers .au s'écoutent avec play, les +.ogg avec ogg123, les .mp2 avec +maplay , les .mp3 avec mpg123.
.tiff, .png, .jpg, +.gif, .ppm...Imagesxv +pour les regarder ; gimp pour les modifier
.mov, .aviSéquences animéesxanim
.pdfPortable Document Formatacroread (Acrobat Reader)
.gz, .tgz, .tar, +.tar.gz, .Z, .tar.Z, +.zip, .zoo, .lha, .lzx, +.z, .uu, .sharDivers formats d'archives plus ou moins compressésConsultez la page sur la compression
+ +

+De façon générale, tous les fichiers LaTeX ont un suffixe .tex, +et toutes les pages Web un suffixe .html (par exemple ce document +s'appelle fichiers.html). +

+ +

less fichier

+ +

+Permet lire un fichier sans l'éditer (c'est-à-dire ouvrir un document afin de +pouvoir le modifier). Les commandes de base sont : +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
hafficher une aide.
SPCfaire défiler le texte page par page
d, ^D (down)descendre d'un demi-écran
f, ^F (forward)descendre d'un écran
p, ^P (previous)remonter d'un demi-écran
b, ^B (back)remonter d'un écran
jdescendre d'une ligne
kremonter d'une ligne
Galler à la fin du texte
nombreGaller à la ligne de numéro nombre (par exemple, 1G +place à la première ligne du fichier).
/motchercher le « mot » dans le texte. Il sera signalé en inverse dans +tout le texte. Pour aller à la prochaine occurence du mot, taper +n, pour aller à la précédente occurence, taper +N.
q quitter
+ +

Remarques sur more et cat

+ +

+cat a pour fonction première d'afficher un +fichier. Il est rapide et pratique pour un fichier très court, mais nous ne +vous le conseillons pas pour regarder un fichier un peu conséquent : +cat affiche le contenu du fichier d'un seul coup (si le texte +fait plus de 10-15 lignes, on ne voit rien). D'autre part, il ne permet aucune +recherche. +

+ +

+more (en savoir davantage sur un +fichier) est une commande standard sur tous les systèmes Unix (alors que +less n'est pas installé partout). less (installé à +l'École) est cependant plus performant : les mots recherchés apparaissent +sur fond noir au lieu d'être juste placés en haut de l'écran, le défilement du +texte est plus précis. Si vous n'avez que more à disposition, +vous pouvez utiliser les commandes suivantes : +

+ + + + + + + + + + + + + + + + + + + + + +
hafficher une aide
d ( down)descendre d'un demi-écran
f ( forward)descendre d'un écran
b ( back)remonter d'un demi-écran
/motchercher le « mot » dans le texte (le résultat est beaucoup moins clair +qu'avec less ).
qquitter
+ +

Manipuler les fichiers

+ +

cp nom1 nom2 (copy)

+ +

+Permet de recopier le fichier nom1dans un fichier +nom2. Ils seront donc identiques. +

+ +

+&icone.note; +Exercices sur cp. +

+ +

mv nom1 nom2 (move, +déplacer et renommer)

+ +

Renommer

+ +

+mv truc chose : +renomme le fichier ou le répertoire truc en chose. +

+ +

Déplacer

+ +

+mv truc chose/ : +déplace le fichier truc dans le répertoire chose/. +

+ +

+mv fichier .. : +déplace un fichier dans le répertoire père (pour ce terme, voir dans le +tableau qui illustre cd). +

+ +

+&icone.note; +Exercices sur mv. +

+ +

rm fichier (remove)

+ +

+À ne jamais confondre avec mv ... Cette commande détruit le +fichier, de façon irréversible. Avec la config conscrits, confirmation est +demandée (option -i de rm). Ce n'est pas le cas +pour toutes les configurations : observez donc la plus grande prudence +avec cette commande... +

+ +

+Remarques : Les partitions utilisateurs sont +sauvegardées toutes les nuits par le SPI. Si donc vous effacez un fichier +accidentellement et qu'il avait plus d'un ou deux jours, vous pouvez envoyer +un courrier électronique au SPI pour demander qu'on vous le récupère +(spi@clipper). +

+ +

+Il existe aussi RCS, qui +enregistre des copies de sauvegarde de vos fichiers, et permet de gérer +les différentes versions de votre travail. +

+ +

Exemple

+ +

+On veut renommer le fichier +chrono du sous-répertoire ancienne/ en +evolution, et le mettre dans le répertoire +histoire/. Dans cet exemple, nous sommes dans +histoire/ancienne/ : +

+ +
+ + + + + + + + + +
+

(1) État de départ :

+[histoire (ancienne (chrono, empire.tex))] +
+

(2) cp chrono evolution

+[histoire (ancienne (chrono, empire.tex, evolution))] +
+

(3) mv evolution ..

+[histoire (ancienne (chrono, empire.tex), evolution)] +
+

(4) rm chrono

+[histoire (ancienne (empire.tex), evolution)] +
+
+ +

+On peut aussi faire plus rapidement : +

+ +
+mv chrono evolution
+mv evolution ..
+ +

+Ou, en une seule ligne de commande : +

+ +
+mv chrono ../evolution
+ +

+La même série d'opérations est possible depuis histoire/; elle se +fera avec la suite de commandes suivantes : +

+ + + + + + + + + + + + + + +
cp ancienne/chrono evolution
+rm ancienne/chrono
+
On recopie le fichier chrono du sous-répertoire +ancienne/ en un second fichier evolution placé dans +le répertoire courant : on se retrouve directement dans l'état 3. +Ensuite, on efface le fichier chrono qui est toujours dans le +répertoire ancienne/.
mv ancienne/chrono ..
+mv chrono evolution
D'abord on déplace le fichier, ensuite on le renomme.
+
mv ancienne/chrono evolution
En une seule ligne, on déplace le fichier et on le renomme.
+ +

+Il y a donc rarement une seule façon de manipuler ses fichiers, c'est une +question d'aisance et de rapidité. +

+ + +

cat

+ +

Afficher un fichier

+ +

+C'est pratique pour lire un fichier court, inutilisable sinon (voir les remarques à propos de more et de cat). Dans cet usage, +cat sert surtout lorsque vous programmez. +

+ +

Concaténer des fichiers

+ +
cat fichier1 fichier2 > fichier3 
+ +

+Les fichiers 1 et 2 sont concaténés (placés bout à à bout) et le résultat est +mis dans un fichier3 créé automatiquement. Le shell +refuse d'écraser un fichier existant. +

+ +

+Dans fichier3 apparaît d'abord fichier1 puis +fichier2. Concaténer deux fichiers de la sorte ne les détruit +pas (il existe à la fois fichier1, fichier2 et +fichier3). +

+ +

+On peut aussi placer deux fichiers bout à bout sans créer de troisième +fichier. La syntaxe est alors la suivante : +

+ +
cat fichier2 >> fichier1
+ +

+fichier2 est placé « au bout » de fichier1. +fichier2 reste inchangé, fichier1 contient désormais +son propre texte suivi du texte de fichier2. +

+ +

Écrire

+ +

+cat peut faire office d'éditeur minimaliste; tapez la commande +suivante, et quelques mots : +

+ +
+corvette ~ $ cat > notes
+Faire les courses
+Passer à la bibliothèque
+...
+
+ +

+Et finissez par ^D. Le fichier notes contient les +quelques lignes que vous avez saisies. +

+ +

head fichier et tail +fichier

+ +

+Par défaut, ces commandes montrent les dix premières (head) ou +les dix dernières (tail) lignes d'un fichier. +

+ +

+On peut utiliser l'option -nombre pour spécifier le +nombre de lignes que l'on veut faire apparaître : +

+ +
head -24 mon-fichier
+ +

+affiche les 24 premières lignes du fichier. +

+ +
+ Auteur : Émilia Robin. + Dernière modification le 2002-11-22. +
+ + + diff --git a/unix/fichiers_ex1.png b/unix/fichiers_ex1.png new file mode 100644 index 0000000000000000000000000000000000000000..250109a5bf4da4cb4b3d4f8903fae2f99f8b01d9 GIT binary patch literal 1491 zcmV;^1uXiBP)-pw8m*#Kq( z&b6(%v-ja>*&1@P?QON(tAb~0c$Wj3Kos(l(Zq-%Mr4s(h1_QpU&W5#E~Ah|mSQWX z#g4t|VO3`0LZ07_%fzs_T~`UFYFnSbe({>!f2WSwb$#>m^fji;*=yK1%z9W7dgyRdzA87;%1DRW-?q5F`Lb@6SFySW~qgULN1BCef@k{UYc@1>?;zNRaZ2J5oElm{Ut*SBgh0wGIp2SSBxjw}jUL?MePWD$id8+z~^a4t(0`TJ0EA;x$) z#&}sv zsR{DKFV^crBXVmc`(BHF73`ab%#lSQizs9fg}j0s(>zlli;RXz*O9HFDCAzZ_d0=9 zwe@P#qO9qi#wnehn#O8c-?I1NLpS2oV&1v)-Hpn`xZ4M$>6(=BQae2@j#o8r>iW9g zN8NZb0wK3)9oE#YtLkm=L$xRC>pI($Wtdvz;Fxu-QPE~1-2Ql<|hPjZ~zn!)jMYtl*qsm^Mcig)E|w zMHI4#LY56Z_zpOiC5!xhs1b%B#`qBM4m+KhVhG{cf#-h>cn0_jcsYddk`hzMZ3J`} z_!>9_Tmha7A-u7swLAs9Qmo}i;O-E@_e#wixk)(B1K$#B9Fh{=sZCo#~3dGw-!Y7|#L6*m-C1 z@esmWn`HbLQXa$iqb84}t4|PeKUyZmI){==>RQC-58aXb9n5rJ1pi7o7St z@c2}mI;DqqqlFw}JORXFn|*z%+w5FA^(%17Uvp<7uiIldY~ctNX-NXW&v)ZPSc1TF&i7;$RP z4Hto1fZy5qt>9N$X3av5F+KsDVdpnxSfq{{lPTEjgy$%7yHg-pe0s?UIS# z{(C{o)ZaN#^->t$#gT{K{6BlL5gb_dY4CkylD&{c6tZmGF1XIMDP-9QwlqOrSVid| z>&wnv?NQZMqlSKK=HtD*)RoS`E!(i&X^Pi_YAm+$DY^C1EYUZs<$rQ2&u2I~_ zD(1EPCdpBB=sIy(n%GLnV`|N{%pqim@%pe!U+Y`6R%e-y-ac?!{Cu3;MwalDD zjMvwgP35Sj>cm*?qi$_&TF6zkifdJVo9F?qvHZ5`Q@nKZn>n&<1PWOcvdCDlj=V<9 tjg816dk=lP!9i2(u?N~EYrl!)$-mJcr6z1!qapwR002ovPDHLkV1i(l>MQ^N literal 0 HcmV?d00001 diff --git a/unix/fichiers_ex2.png b/unix/fichiers_ex2.png new file mode 100644 index 0000000000000000000000000000000000000000..78f16f29b019d4594aba12e1866a4b3f786b3aa6 GIT binary patch literal 1789 zcmVIDc(Vq2WhA(8_12%`pP53AWuomvdm>qtKW4S}O=he1waW~N%D(IZY=t0lvUZ)y&*Nkajj4;LIiZ~TQSfC{=U=yX`pKOHy01y@cKv)0(VF3Vy z1pvShvhFr;B!qtgtdp`VPs*}9!4j}<_^!~pID-jb3dpel0Kx(Q2nzrpEC2uq3jiQ2 z0D!On03a*?fUp1n!U6z*umAwU0ssgL0Du?1-MlXT!UQk{JV?g|9`uBN0ujp|l!f;S z*(wTeM$8&=EC7J8006=Q00;{#g`z0PQvkvO0Ly_>p@qUJ6(B4N-j0MO{Py=%Ro!rH zmnig==es5(Fn!m?wr|&dAcAa#V4$c}RdxMempBwf5p_*WdClJqXWyvRF8x4U*b2dp+aTJQk8J>9NqQTU@`Rczw?R&Y ztq=eJ!m>oV@(^Qhg0n6!^?HG=&|-wZH(A=pu~ubUO6BxMZDa-O$(xIeVCH*bw73bW0 z6Sv_+lALqrCa(8L(i?Szd`Z#=&bec}0%3u16Y5?`pGkT^o0}1@NP6EncQjLbF4n?w zcBcAYko3BwJ8E(LS<++9xnJ-WgazVO=;tM!mGrNq3zD9kdjicZEG@zPLehP86!WK~ zkDPNa;XMco{C~21BIzMXXC(b5sZ1&4PeoWfB77+6_Bx9BPST^!xvO{;!m?&TIhN!a z;r#_kkEA#;QWO@CFh4AEF$l|wqm!>B-K|aTIN8iXYv^cN+4NG=9pN!@9`lyts!+AEUYa?ZWIkp5*aEFST9lI{|@ z7=$H32YpAVgJ$QzL=+oVi1-o!sl)7!YsWiTLEjfIEUhT!b4mBt3&$l%Z%+OF zEQDqGPPW+G3BnS!m>lZ#zL;+$Jwp_Ou#9!6mnFTb%{Pj#N%~O>%$*=C(fz+g(${qq zLoNnk8SFq$YjY&Iy({)zjw7YAEPt(q^tUfJHl?4AvGZK>BWf$;3kjzP z3#~)ZDax}dv#YGWQ>U@cysv(Q+7?r9S5k5NcPaEYrmsWBtzDk)mVwy1cd6HEju)q8 z@z?};p6jtsyYMB>JjV_C$AcUT08Eo(0RTW)03a#2k7Y*40{{^V06-)>rQdH4VHd^? f%*F!%V0Zol4v)xpt!-GC00000NkvXXu0mjfYKumJ literal 0 HcmV?d00001 diff --git a/unix/fichiers_ex3.png b/unix/fichiers_ex3.png new file mode 100644 index 0000000000000000000000000000000000000000..3ad34ad8289c836092dfb3eab2c311294158cded GIT binary patch literal 2144 zcmV-m2%q|c>y1}#kbz2Bi%|<91bUHrRaOY;&xNimf_jO)sGz*tjtHS5 zbfFdK5`nrbqLh{u8cW?sie97zc_E9mX{U>sH_x7(nKLtI&iws+u6ED+yw5!Idw$P% ze!t)Iyk|f}q+w>7pqDH(f&M;Z_GyBiD$7D`X;e{WYD$~DOB0BQ!ZOjPtxsH0SVTl& z5u=>8BPOFTg+)Z967C9(l)mpOx$C8{NY7H7qQ$wIUgRy{yfkFF{c4-N|CjBv?)a9k z(^Q|*vY%>#zCO?wgW|Q$%x#zOiO+VM)Tf!R4K+~Jmh1694b)NQF zi@B-st@c?YD%-M)mhEXOHOdrxn~GGjcCSp2I`%P5(AVgGv38N>?TC~~8Om%oXI*PuDpk~`&iKj*Q<++k zyFvB9q1{c|UPWNPpMR(jVsY`7ZDs;5^_b z5piS$_wzmAZQzlJ_@c9{ut<9ga0hr6_yF)G@YRTTXe9TxANUh+Iq(+n!-&{*))f}n z?!vnd_;Na*PejCLM=YLC0|$UJz>$dfsUD!PNV5y=lfbWm_W^GJpO1*ACve|a04IQp zfz!YZ5phC~P*`O1#dQ++3`wE)R}pdj1Z{8_cm#M)Dy-K=#B+Lw!Xovelt+R00{;N6 ziinpdZj)PqW59mkRp1j-w~4|cRTj`Gk^<&`fd?YuYg*+j`y2(n4ZIupEAa7%IHP40 z7Rg>PJHQJhTgZQjh=W?C&|bd)ZXh`TdII=@0@E&@yzT!Yc?|el`VhEHQCUxV*5!g! zR6YlsPQ^xySSBwhhk@h3`M}SCFZtB1Wk=7zC@hjLgplD4t@-{EzSSG9}!2j zN~`ww42;4ux}5)y!25ycfvb&DI-L*Cz$h$(cj5!UDIh|P3DUz< zNJJEtK|GDJD(7{gpr-rl`*o)fsg$*8RxM#&e?>bqb;eg^uAB7nP41%?sZdtPx%_$4 zeHKkvUf5fvzqV~7{jh17lxY)RD_RHZuDz*`H{oZqcIVcG(Ilxe7{=&pz4J+HEFxl! zMMM-95m8t~L=+Yg=^=hgzjHW7^tFzCa#T*4zSZt-l9x{16%lu~eEnm<9l(Ep@O?qz z({9*;vIG1XxCl4{d?O<6>1Zrp2Yw7(2>cVc%2#&E)EIn?Wj>$(2zV(KmB)dLx)K$V zFy$WLV&Ek3LEyzSk`Xat8GxW%2|Nj$pQaw4iikh-aEwm?7XWVp*Y<6UA__~gSoZ@D z05_2o>3#;>+SeC&r{jGPxIX>pS>TW_92bS9UlG7>fb)RUz`>!^FVZ^DZ-Eb!)PX*2 z^dbsN_Y3nBaCsV~d@~~M8fXf4FK|n0`xk(Z8oh|Z(*8oc0{9)UKV66ihrSTg^yn0D z8SoZxnL9_Ku(Y=T9|Ud${tes`5f6>Y`1ASvI^a0Txtn=J9ML63VcBk!@)XHgkY^&| znz2qm8om4;_!#gn;O2-pp=*l5;v!Q_MfxZ#>2dsdnikwW)wEzK{dw zSF4D^lD}XM1NQ?T0iFl0_KBQptG#XZOGpj{9*T(Pw2UY$XD^hm0QUl~1K%=AsU*h7 zN&YtK#)$Z(R*}97i(ibBEwtLj2c*>C|1T_?`g>T4UJfP0n>Xnezw=f^`XwyBPgq2Z zSVTl&kzqxNMzEr=h{)F1rwN9IyHqlGVaW<>^BjA*?P{C7pDh-PbNbBcZ(WqH4 ziN#rFe9L27{db-FsA9LK>|EC#S@&9Zeyj8=JxYt;ncMY~xcXVvVp!)C>)PgBBdbl7 z>y~UcJ6A`m_qVRjP{)3C7VV~Xt}8G_eN>!}y7MM|tg+-x;$pGLbeiSQvKCEI+ahOQ z*WbE!Rr{;6aH@{4j7{o}Z(DY5>?u~^y33y%saRu~MwmB}osX{WqwIC_QbvjsF48 WC>=K`+pjVJ0000%sF64Ek@!Fq1YJY_08Nclu8S1rW-3Ph0otHk7BfTrBYc3MC~M*) zTBB9i4R#e#;TlX2JIqdZSNBv;S9O11bZ3}buXBD~=Ty)10TCI@(L(2ars?&k6r5YC zrO(dPP*UX_E%RD@o2D00Kzm<3mwE*i1tg+?mb`0?u>-oRDj<>UIp-1#BllB0PZ<@^ zWT9D`6K;n^O^(_WK5c$}`!nm;v26|=-)29l+FY!^EO!GrYZXnbGj}=YKJT}EW}or( znR9Hv_4|wSCv%{NE9zfISXZybawDv>PG@X7fr<%rVve!f z@{A$J$wS5$BfywkZmFkm3P@5OGk1gL<2f%74R?_G6spt*?W z1o)5;oQ0XpgYji`OZhc-xPH7 zvZ|_M;HNq-dc(X(0ZrkAUjfeozW|Sw77lIXMfU+!s;?C(Ac=9lE3EGC6z_PYUkDUX zSF|-a-OhxoV`a#kVZnM+PL~@r1*7ZTVJ`>YkY|^^j zUQ@rZ;~P4Uw)VylPpW>Wn8&tl+iX3hA0!b_pVODFa_LQ1nnRU`PxZN}%EQO@8$0H? zl(`?v50Zp%B`oArV_aIl9wH=;X_ua0=G^Z(&X0}tWuy>JL;+>CQ=}@ZK2@3aQu^H$ z>vy%+r@D8a_F^NRRDQ6}Jd%ZQyTX9Y_fxmow&+cvNKAWUIrAL)jS2Pku}7P)boITj zAEdCwQUCQcP97oQKN_wV?J=d@%z;EaL=aIxA__=E0f|TyK9#3TJ7|xx?UpxHRb8#B z>Z#U zJQbAU1r$>je6zmG_TSs>#FP(@scX|#TV~%<=zZ3st4LGoa`Td5IDgZ&?M7@9M%OOV zRw25}`C^Qt(Hs$G*+4RG0KehJ;X>ck0#L# z>34G-4w0Y9fkL=3%CvVKWA`ar-nY*&=Fv8`n0}iM8`l442v|VGa?@_(8OsDY*&4bv znFEO^AQ4eOA|o9lq{Q4u+<`>o7JMpCnf4M9DWCrV7u&|Nkc7GG00000NkvXXu0mjf D>rKc> literal 0 HcmV?d00001