summaryrefslogtreecommitdiff
path: root/final
diff options
context:
space:
mode:
authorLudovic Pouzenc <ludovic@pouzenc.fr>2018-07-05 00:28:24 +0200
committerLudovic Pouzenc <ludovic@pouzenc.fr>2018-07-05 00:28:24 +0200
commit35a23f6145bb772b9bfa8c8eeb500aa8c02437d3 (patch)
tree1c999f13ab6c8f02e250c3053557454ce7b6de65 /final
parentac54f5224d4470de9d8ae088e1338dea52668c9d (diff)
download2007-AWOR-35a23f6145bb772b9bfa8c8eeb500aa8c02437d3.tar.gz
2007-AWOR-35a23f6145bb772b9bfa8c8eeb500aa8c02437d3.tar.bz2
2007-AWOR-35a23f6145bb772b9bfa8c8eeb500aa8c02437d3.zip
Version awor_1.0_20070316.tar.bz2
Diffstat (limited to 'final')
-rw-r--r--final/app/admin.php2
-rw-r--r--final/app/apropos.php14
-rw-r--r--final/app/auth_dialog.php8
-rw-r--r--final/app/css/ice_img/logo.pngbin5040 -> 1437 bytes
-rw-r--r--final/app/css/ice_img/titre.pngbin23658 -> 5391 bytes
-rw-r--r--final/app/css/ice_moche_img/logo.pngbin5040 -> 1437 bytes
-rw-r--r--final/app/css/ice_moche_img/titre.pngbin23658 -> 5391 bytes
-rw-r--r--final/app/css/index.html0
-rw-r--r--final/app/details_reunion.php23
-rw-r--r--final/app/help/admin.php.hlp28
-rw-r--r--final/app/help/astuce_apparence.php.hlp2
-rw-r--r--final/app/help/astuce_deconnexion.php.hlp3
-rw-r--r--final/app/help/astuce_ical.php.hlp2
-rw-r--r--final/app/help/details_reunion.php.hlp12
-rw-r--r--final/app/help/details_reunion_admin.php.hlp2
-rw-r--r--final/app/help/details_reunion_new.php.hlp14
-rw-r--r--final/app/help/index.html0
-rw-r--r--final/app/help/index.php.hlp8
-rw-r--r--final/app/help/listes_delete.php.hlp4
-rw-r--r--final/app/help/listes_modif.php.hlp4
-rw-r--r--final/app/help/listes_new.php.hlp2
-rw-r--r--final/app/help/profil.php.hlp2
-rw-r--r--final/app/help/profil_loginMethode.php.hlp2
-rw-r--r--final/app/help/reunion_admin_annuler.php.hlp3
-rw-r--r--final/app/help/reunion_admin_creneaux.php.hlp18
-rw-r--r--final/app/help/reunion_admin_creneaux.php.hlp~0
-rw-r--r--final/app/help/reunion_admin_dispo.php.hlp6
-rw-r--r--final/app/help/reunion_admin_fichier.php.hlp16
-rw-r--r--final/app/help/reunion_admin_mail.php.hlp9
-rw-r--r--final/app/help/reunion_admin_participants.php.hlp29
-rw-r--r--final/app/help/reunion_commentaire.php.hlp10
-rw-r--r--final/app/help/reunion_detail.php.hlp2
-rw-r--r--final/app/help/reunion_dispo.php.hlp9
-rw-r--r--final/app/help/reunion_fichier.php.hlp16
-rw-r--r--final/app/help/reunion_new.php.hlp2
-rw-r--r--final/app/help/sendmail.php.hlp11
-rw-r--r--final/app/images/index.html0
-rw-r--r--final/app/include/je.inc.php2
-rw-r--r--final/app/include/ju.inc.php2
-rw-r--r--final/app/include/ludo/TODO_list.txt24
-rw-r--r--final/app/include/ludo/config.inc.php2
-rw-r--r--final/app/include/ludo/fonctions.inc.php255
-rw-r--r--final/app/include/ludo/index.html0
-rw-r--r--final/app/include/ludo/mail_textarea.php3
-rw-r--r--final/app/index.php55
-rw-r--r--final/app/profil.php65
-rw-r--r--final/app/sendmail.php31
-rw-r--r--final/app/templates/index.html0
-rw-r--r--final/corr_accents.sh2
-rw-r--r--final/doc/Manuel Utilisateur.odtbin0 -> 796348 bytes
-rw-r--r--final/doc/Manuel Utilisateur.pdfbin0 -> 812553 bytes
-rw-r--r--final/doc/READ_ME.dvibin16892 -> 0 bytes
-rw-r--r--final/doc/READ_ME.html469
-rw-r--r--final/doc/READ_ME.pdfbin77548 -> 0 bytes
-rw-r--r--final/doc/READ_ME.ps2436
-rw-r--r--final/install/RAZbase.php2
-rw-r--r--final/install/READ_ME.css (renamed from final/doc/READ_ME.css)15
-rw-r--r--final/install/READ_ME.dvibin0 -> 38632 bytes
-rw-r--r--final/install/READ_ME.html447
-rw-r--r--final/install/READ_ME.lyx (renamed from final/doc/READ_ME.lyx)44
-rw-r--r--final/install/READ_ME.pdfbin0 -> 88222 bytes
-rw-r--r--final/install/READ_ME.ps830
-rw-r--r--final/install/READ_ME.txt (renamed from final/doc/READ_ME.txt)33
-rw-r--r--final/install/index.html0
-rw-r--r--final/install/jeu_essai.sql116
-rw-r--r--final/sed.rl6
-rw-r--r--final/sed.sh14
-rw-r--r--final/test.txt1
-rw-r--r--final/test.txt_bkp1
-rw-r--r--final/test.txt_old1
-rw-r--r--final/upload_files/index.html0
71 files changed, 2031 insertions, 3088 deletions
diff --git a/final/app/admin.php b/final/app/admin.php
index aad3277..a9a5f4e 100644
--- a/final/app/admin.php
+++ b/final/app/admin.php
@@ -48,7 +48,7 @@ generate_html_divs_menu();
// TODO : fonctions qui purgent les tables filles selon un id donn&eacute;, pour chaque cas m&egrave;re-fille (indiqu&eacute;s plus bas)
// Fonctions qui g&eacute;n&egrave;rent des tableaux listant tous les objets de la base, et permettant la s&eacute;lection multiple et l'&eacute;ffacement (en cascade)
- html_generate_MySQLTableSuppr('AWOR_Liste','idL'); // Permet de virer des liste
+ html_generate_MySQLTableSuppr('AWOR_Liste','idL', '*', "libelleL NOT LIKE 'interne_idR%'"); // Permet de virer des liste
echo "<br />\n";
html_generate_MySQLTableSuppr('AWOR_Fichier','idFic'); // Permet de virer des fichiers, doit purger physiquement sur le disque
echo "<br />\n";
diff --git a/final/app/apropos.php b/final/app/apropos.php
index cdea1ff..d2ad9fe 100644
--- a/final/app/apropos.php
+++ b/final/app/apropos.php
@@ -2,6 +2,7 @@
require('include/ludo/session_verify.inc.php');
require_once('include/ludo/html_elements.inc.php');
require_once('include/connect.inc.php');
+require_once('include/ludo/config.inc.php');
require_once('include/ju.inc.php');
if ( isset($_REQUEST['action']) )
{
@@ -19,8 +20,17 @@ generate_html_divs_menu();
&gt; Administration du profil
</p>
</div>
-<div id="contenu">Application r&eacute;alis&eacute;e par J&eacute;r&eacute;mie D&eacute;noyer,<br />
-Ludovic Pouzenc, Julien S&eacute;r&eacute; et Andriana Semouchtchak.</div>
+<div id="contenu">
+<?php
+ if ( isset($CONFIG['adminMail']) ){ echo "<p>Vous pouvez contacter l'administrateur &agrave; l'adresse email suivante : " . str_replace( '.', ' [POINT] ',str_replace( '@', ' [AT] ', $CONFIG['adminMail'] ) ) . "</p>\n"; }
+?>
+<p>Les logos W3C pr&eacute;sent en bas de page indiquent que ce site respecte des standards d&eacute;finis par le World Wide Web Consortium.<br />
+Effectivement, ce site est valide CSS et XHTML 1.0 Strict, ce qui correspond &agrave; l'usage d'un langage permettant une compatibilit&eacute; maximale avec les divers navigateurs actuels.<br />
+De plus, ce site est conforme au niveau A pour l'accessibilit&eacute; aux personnes handicap&eacute;es de d&eacute;ficiences visuelles. Cette conformit&eacute; permet aux logiciels de lecture assist&eacute;e de d&eacute;crire &egrave; pr&eacute;cis&eacute;ment le contenu de nos pages web.
+<p>Cette application r&eacute;alis&eacute;e par J&eacute;r&eacute;mie D&eacute;noyer,Ludovic Pouzenc, Julien S&eacute;r&eacute; et Andriana Semouchtchak.<br />
+Projet Tuteur&eacute; &agrave; l'IUT De Blagnac, 2007.</p>
+
+</div>
<div id="msg">
</div>
<?php generate_html_div_footer() ?>
diff --git a/final/app/auth_dialog.php b/final/app/auth_dialog.php
index 234b092..caf3297 100644
--- a/final/app/auth_dialog.php
+++ b/final/app/auth_dialog.php
@@ -50,9 +50,13 @@
switch ( $methodeAuth )
{
case 'webetud':
- // TODO
+ // include...
+ $auth_is_ok=VerifOuvertureSession("quelconque");
+ if ( ! $auth_is_ok ) { $errmsg="Authentification WebEtud refus&eacute;e !"; }
break;
- // Vous pouvez ajouter d'autres mode d'authentification ici !
+ /***************************************************************
+ ** Vous pouvez ajouter d'autres mode d'authentification ici ! **
+ ***************************************************************/
case 'bypass':
$auth_is_ok=true;
break;
diff --git a/final/app/css/ice_img/logo.png b/final/app/css/ice_img/logo.png
index a768d45..896707d 100644
--- a/final/app/css/ice_img/logo.png
+++ b/final/app/css/ice_img/logo.png
Binary files differ
diff --git a/final/app/css/ice_img/titre.png b/final/app/css/ice_img/titre.png
index d8d9ce6..4870978 100644
--- a/final/app/css/ice_img/titre.png
+++ b/final/app/css/ice_img/titre.png
Binary files differ
diff --git a/final/app/css/ice_moche_img/logo.png b/final/app/css/ice_moche_img/logo.png
index a768d45..896707d 100644
--- a/final/app/css/ice_moche_img/logo.png
+++ b/final/app/css/ice_moche_img/logo.png
Binary files differ
diff --git a/final/app/css/ice_moche_img/titre.png b/final/app/css/ice_moche_img/titre.png
index d8d9ce6..4870978 100644
--- a/final/app/css/ice_moche_img/titre.png
+++ b/final/app/css/ice_moche_img/titre.png
Binary files differ
diff --git a/final/app/css/index.html b/final/app/css/index.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/final/app/css/index.html
diff --git a/final/app/details_reunion.php b/final/app/details_reunion.php
index 59f4adb..64731d4 100644
--- a/final/app/details_reunion.php
+++ b/final/app/details_reunion.php
@@ -75,7 +75,28 @@ generate_html_divs_menu();
echo '</body></html>';
exit();
}
- generate_html_div_help('help/details_reunion_admin.php.hlp');
+
+ if ( isset($_REQUEST['action']) && ($_REQUEST['action']==='creer_reunion' ) )
+ {
+ //~ echo "DEBUG : generate_html_div_help('help/details_reunion_new.php.hlp');\n";
+ generate_html_div_help('help/details_reunion_new.php.hlp');
+ }
+ else
+ {
+ $query="SELECT idP_Orga FROM AWOR_Reunion WHERE idR=$idR;";
+ if ( ( $result = @mysql_query($query) ) && ( mysql_num_rows($result) === 1 ) && ( list($idP_Orga)=mysql_fetch_array($result) ) &&($idP == $idP_Orga) )
+ {
+ //~ echo "DEBUG : generate_html_div_help('help/details_reunion_admin.php.hlp');\n";
+ generate_html_div_help('help/details_reunion_admin.php.hlp');
+ }
+ else
+ {
+ //~ echo "DEBUG : generate_html_div_help('help/details_reunion.php.hlp');\n";
+ generate_html_div_help('help/details_reunion.php.hlp');
+ }
+ }
+
+
echo '<div id="contenu">' . "\n";
echo '<div id="details_reunion">' . "\n";
generate_html_reunion_detail2($idR);
diff --git a/final/app/help/admin.php.hlp b/final/app/help/admin.php.hlp
index 3b46bdc..356fe2e 100644
--- a/final/app/help/admin.php.hlp
+++ b/final/app/help/admin.php.hlp
@@ -1,27 +1,27 @@
<h2><a href="#css_nohelp" onclick="setActiveStyleSheet('nohelp');">Aide</a></h2>
Administration.
-<hr>Information :
+<hr>Informations :
<br/><br/>
-Cette page vous permet de visualiser les objets principaux de la base de données.<br />
-Vous pouvez depuis cette page purger la base, ainsi que les fichiers attachés qui sont stockés sur disque.<br />
-Lorsque vous supprimez par exemple une personne inscrite, tout les enregistrements relatifs à cette personne seront effacés :
+Cette page vous permet de visualiser les objets principaux de la base de donn&eacute;es.<br />
+Vous pouvez depuis cette page purger la base, ainsi que les fichiers attach&eacute;s qui sont stock&eacute;s sur disque.<br />
+Lorsque vous supprimez par exemple une personne inscrite, tout les enregistrements relatifs à cette personne seront effac&eacute;s :
<ul>
- <li>Les liens indicant que cette personne participe à des réunions</li>
+ <li>Les liens indicant que cette personne participe à des r&eacute;unions</li>
<li>
- Les réunions qu'elle à créée
+ Les r&eacute;unions qu'elle à cr&eacute;&eacute;e
<ul>
- <li>Les réponses des participants à ses réunions pour chaque créneau</li>
- <li>Les commentaires des réponses des participants</li>
- <li>Les créneaux de ses réunions</li>
+ <li>Les r&eacute;ponses des participants &agrave; ses r&eacute;unions pour chaque cr&eacute;neau</li>
+ <li>Les commentaires des r&eacute;ponses des participants</li>
+ <li>Les cr&eacute;neaux de ses r&eacute;unions</li>
<li>
- Les liens vers les fichiers attachés
+ Les liens vers les fichiers attach&eacute;s
<ul>
- <li>Les fichiers physiquement écrits sur le disque</li>
+ <li>Les fichiers physiquement &eacute;crits sur le disque</li>
</ul>
</li>
</ul>
</li>
</ul>
-Ces cascades peuvent s'avérer dangereuses, mais permettent de garder la base dans un état consitant.<br />
-Il est vivement conseillé de sauvegarder la base de donnée et le répertoire des ficheirs attachés avant d'utiliser cet outil,
-l'erreur de manipulation est facile, et les bugs de programmation ne peuvent être totalement exclus... \ No newline at end of file
+Ces cascades peuvent s'av&eacute;rer dangereuses, mais permettent de garder la base dans un &eacute;tat consitant.<br />
+Il est vivement conseill&eacute; de sauvegarder la base de donn&eacute;e et le r&eacute;pertoire des fichiers attach&eacute;s avant d'utiliser cet outil,
+l'erreur de manipulation est facile, et les bugs de programmation ne peuvent &ecirc;tre totalement exclus... \ No newline at end of file
diff --git a/final/app/help/astuce_apparence.php.hlp b/final/app/help/astuce_apparence.php.hlp
index 0f273a7..ff90618 100644
--- a/final/app/help/astuce_apparence.php.hlp
+++ b/final/app/help/astuce_apparence.php.hlp
@@ -2,7 +2,7 @@
Astuce pour l'apparence.
<hr/>Etapes :
<ul>
-<li>Selectionner la liste des apparences.</li>
+<li>S&eacute;lectionner la liste des apparences.</li>
<li>Choisir une apparence.</li>
<li>Valider votre choix en cliquant sur Changer.</li>
</ul>
diff --git a/final/app/help/astuce_deconnexion.php.hlp b/final/app/help/astuce_deconnexion.php.hlp
index 41182d8..5b249a3 100644
--- a/final/app/help/astuce_deconnexion.php.hlp
+++ b/final/app/help/astuce_deconnexion.php.hlp
@@ -2,7 +2,8 @@
Astuce pour se d&eacute;connecter.
<hr/>Information :
<ul>
-<li>Se d&eacute;connecter permet de quitter proprement l'application.</li>
+<li>Se d&eacute;connecter permet de quitter proprement l'application.
+<li>Ainsi un autre utilisateur de votre machine ne pourra se connecter avec votre compte.</li>
</ul>
<hr/>Etape :
<ul><li>Cliquer sur le menu D&eacute;connexion.</li></ul>
diff --git a/final/app/help/astuce_ical.php.hlp b/final/app/help/astuce_ical.php.hlp
index 2fc8c4a..d5c6b41 100644
--- a/final/app/help/astuce_ical.php.hlp
+++ b/final/app/help/astuce_ical.php.hlp
@@ -9,7 +9,7 @@ Astuce pour l'iCal.
<ul>
<li>Cliquer sur le menu iCal.</li>
<li>Enregistrer le fichier.</li>
-<li>Importer le dans votre agenda &eacute;lectronique !</li>
+<li>Importez le dans votre agenda &eacute;lectronique !</li>
</ul>
<hr/>
<a href="#" onclick="loadid('help/index.php.hlp','help',false);">Retour</a> \ No newline at end of file
diff --git a/final/app/help/details_reunion.php.hlp b/final/app/help/details_reunion.php.hlp
index 5434937..75c6554 100644
--- a/final/app/help/details_reunion.php.hlp
+++ b/final/app/help/details_reunion.php.hlp
@@ -1,4 +1,8 @@
-Cette page vous permet de visualiser les d&eacute;tails d'une r&eacute;union. <br />
-Vous pouvez modifier votre disponibilit&eacute; en fonction des cr&eacute;neaux pr&eacute;vu par le createur de la r&eacute;union.<br />
-Il est possible &agrave; tout instant de se d&eacute;connecter en cliquant sur le bouton D&eacute;connexion situ&eacute; en haut &agrave; droite de l'&eacute;cran.<br />
-Astuce : gr&acirc;ce &agrave; AWOR, vous pouvez transferer vos r&eacute;unions sur votre agenda personnel.
+<h2><a href="#css_nohelp" onclick="setActiveStyleSheet('nohelp');">Aide</a></h2>
+D&eacute;tails r&eacute;union.<br/>
+<hr/>Vous pouvez :
+<ul>
+ <li><a href="#" onclick="loadid('help/reunion_dispo.php.hlp','help',false);">Saisir vos disponibilit&eacute;s</a></li>
+ <li><a href="#" onclick="loadid('help/reunion_commentaire.php.hlp','help',false);">D&eacute;poser un commentaire.</a></li>
+ <li><a href="#" onclick="loadid('help/reunion_fichier.php.hlp','help',false);">D&eacute;poser un fichier.</a></li>
+</ul>
diff --git a/final/app/help/details_reunion_admin.php.hlp b/final/app/help/details_reunion_admin.php.hlp
index 3102176..2a1cc37 100644
--- a/final/app/help/details_reunion_admin.php.hlp
+++ b/final/app/help/details_reunion_admin.php.hlp
@@ -1,5 +1,5 @@
<h2><a href="#css_nohelp" onclick="setActiveStyleSheet('nohelp');">Aide</a></h2>
-D&eacute;tails r&eacute;union (Administrateur).<br/>
+D&eacute;tails r&eacute;union (Organisateur).<br/>
<hr/>Vous pouvez :
<ul>
<li><a href="#" onclick="loadid('help/reunion_admin_info.php.hlp','help',false);">Editer les informations de la r&eacute;union.</a></li>
diff --git a/final/app/help/details_reunion_new.php.hlp b/final/app/help/details_reunion_new.php.hlp
new file mode 100644
index 0000000..644b592
--- /dev/null
+++ b/final/app/help/details_reunion_new.php.hlp
@@ -0,0 +1,14 @@
+<h2><a href="#css_nohelp" onclick="setActiveStyleSheet('nohelp');">Aide</a></h2>
+Organiser une r&eacute;union (Cr&eacute;ation).
+<hr/>Information :
+<ul>
+<li>Voici une r&eacute;union vierge. Pour vous l'approprier vous devez :</li>
+</ul>
+<hr/>
+<ul>
+<li>Editer les d&eacute;tails d'une r&eacute;union.</li>
+<li>Editer la liste des participants</li>
+<li>Editer les cr&eacute;neaux</li>
+</ul>
+<hr/>
+<a href="#" onclick="loadid('help/details_reunion_admin.php.hlp','help',false);">Faire vos modification</a>
diff --git a/final/app/help/index.html b/final/app/help/index.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/final/app/help/index.html
diff --git a/final/app/help/index.php.hlp b/final/app/help/index.php.hlp
index 59ded56..1c8c486 100644
--- a/final/app/help/index.php.hlp
+++ b/final/app/help/index.php.hlp
@@ -7,8 +7,8 @@ Gestion des r&eacute;unions.
</ul>
<hr/>Astuces :
<ul>
-<li><a href="#" onclick="loadid('help/astuce_ical.php.hlp','help',false);">T&eacute;l&eacute;charger votre iCal.</a></li>
-<li><a href="#" onclick="loadid('help/astuce_aide.php.hlp','help',false);">Masquer cette aide.</a></li>
-<li><a href="#" onclick="loadid('help/astuce_apparence.php.hlp','help',false);">Changer d'apparence.</a></li>
-<li><a href="#" onclick="loadid('help/astuce_deconnexion.php.hlp','help',false);">Se d&eacute;connecter.</a></li>
+<li><a href="#" onclick="loadid('help/astuce_ical.php.hlp','help',false);">t&eacute;l&eacute;charger votre iCal.</a></li>
+<li><a href="#" onclick="loadid('help/astuce_aide.php.hlp','help',false);">masquer cette aide.</a></li>
+<li><a href="#" onclick="loadid('help/astuce_apparence.php.hlp','help',false);">changer d'apparence.</a></li>
+<li><a href="#" onclick="loadid('help/astuce_deconnexion.php.hlp','help',false);">se d&eacute;connecter.</a></li>
</ul> \ No newline at end of file
diff --git a/final/app/help/listes_delete.php.hlp b/final/app/help/listes_delete.php.hlp
index 4767252..66f2ba4 100644
--- a/final/app/help/listes_delete.php.hlp
+++ b/final/app/help/listes_delete.php.hlp
@@ -1,10 +1,10 @@
<h2><a href="#css_nohelp" onclick="setActiveStyleSheet('nohelp');">Aide</a></h2>
Suppression d'une liste.
<hr/>Information :
-<ul><li>Vous devez être le propri&eacute;taire de la liste pour faire cette action.</li></ul>
+<ul><li>Vous devez &ecirc;tre le propri&eacute;taire de la liste pour faire cette action.</li></ul>
<hr/>Etapes :
<ul>
-<li>Choisir la liste à supprimer.</li>
+<li>Choisir la liste &agrave; supprimer.</li>
<li>Cliquer sur la corbeille.</li>
<li>Confirmer la suppression.</li>
</ul>
diff --git a/final/app/help/listes_modif.php.hlp b/final/app/help/listes_modif.php.hlp
index 11759cf..c6a03c8 100644
--- a/final/app/help/listes_modif.php.hlp
+++ b/final/app/help/listes_modif.php.hlp
@@ -10,13 +10,13 @@ Modification d'une liste.
<li>Depuis une liste :
<ul>
<li>S&eacute;lectionner un contact puis cliquer sur Ajouter.</li>
-<li>Double-clicker sur un contact (firefox).</li>
+<li>Double-cliquer sur un contact (Firefox uniquement).</li>
<li>Ajouter tous les contacts.</li>
</ul>
</li>
<li>Avec son courriel :
<ul>
-<li>Saisir son courriel dans le champs.</li>
+<li>Saisir son courriel dans le champ.</li>
<li>Cliquer sur Inscrire.</li>
</ul>
</li>
diff --git a/final/app/help/listes_new.php.hlp b/final/app/help/listes_new.php.hlp
index d04d505..af136ae 100644
--- a/final/app/help/listes_new.php.hlp
+++ b/final/app/help/listes_new.php.hlp
@@ -4,7 +4,7 @@ Cr&eacute;ation d'une liste.
<ul>
<li>Cliquer sur Cr&eacute;er une liste.</li>
<li>Donner un nom &agrave; la liste.</li>
-<li>Si vous voulez partager cette liste avec les autres utilisateurs d&eacute;cochez la case priv&eacute;e.</li>
+<li>Si vous voulez partager cette liste avec les autres utilisateurs d&eacute;cocher la case priv&eacute;e.</li>
<li><a href="#" onclick="loadid('help/listes_modif.php.hlp','help',false);">Modifier votre liste.</a></li>
<li>Confirmer avec le bouton Valider.</li>
</ul>
diff --git a/final/app/help/profil.php.hlp b/final/app/help/profil.php.hlp
index 0272bc9..793318f 100644
--- a/final/app/help/profil.php.hlp
+++ b/final/app/help/profil.php.hlp
@@ -4,5 +4,5 @@ Gestion du profil.
<ul>
<li><a href="#" onclick="loadid('help/profil_nomPrenom.php.hlp','help',false);">saisir votre nom et pr&eacute;nom.</a></li>
<li><a href="#" onclick="loadid('help/profil_mail.php.hlp','help',false);">modifier votre adresse mail.</a></li>
-<li><a href="#" onclick="loadid('help/profil_loginMethode.php.hlp','help',false);">changer votre login et m&eacute;thode d'authentification.</a></li>
+<li><a href="#" onclick="loadid('help/profil_loginMethode.php.hlp','help',false);">changer votre identifiant et m&eacute;thode d'authentification.</a></li>
</ul> \ No newline at end of file
diff --git a/final/app/help/profil_loginMethode.php.hlp b/final/app/help/profil_loginMethode.php.hlp
index 6511645..ca6b2be 100644
--- a/final/app/help/profil_loginMethode.php.hlp
+++ b/final/app/help/profil_loginMethode.php.hlp
@@ -7,7 +7,7 @@ Changer votre login et m&eacute;thode d'authentification.
<li>Basculer votre m&eacute;thode d'authentification dans le mode qui vous convient.</li>
<li>Changer &eacute;ventuellement votre login.</li>
<li>Valider les changements.</li>
-<li>Il vous sera peut-&ecirc;tre demmander le mot de passe.</il>
+<li>Il vous sera peut-&ecirc;tre demmand&eacute; le mot de passe.</il>
<li>Confirmer &agrave; nouveau.</li>
</ul>
<hr/>
diff --git a/final/app/help/reunion_admin_annuler.php.hlp b/final/app/help/reunion_admin_annuler.php.hlp
index 021d691..3db7597 100644
--- a/final/app/help/reunion_admin_annuler.php.hlp
+++ b/final/app/help/reunion_admin_annuler.php.hlp
@@ -2,7 +2,8 @@
L'annulation.<br/>
<hr/>Informations :
<ul>
-<li></li>
+<li>Vous pouvez annuler une r&eacute;nion &agrave; tout moment.</li>
+<li>Vous pourrez la r&eacute;activer quand vous le souhaiterez.</li>
</ul>
<hr/>
<a href="#" onclick="loadid('help/reunion_admin_info.php.hlp','help',false);">Retour</a>
diff --git a/final/app/help/reunion_admin_creneaux.php.hlp b/final/app/help/reunion_admin_creneaux.php.hlp
new file mode 100644
index 0000000..dee37bd
--- /dev/null
+++ b/final/app/help/reunion_admin_creneaux.php.hlp
@@ -0,0 +1,18 @@
+<h2><a href="#css_nohelp" onclick="setActiveStyleSheet('nohelp');">Aide</a></h2>
+Modification des cr&eacute;neaux.<br/>
+<hr/>Information :
+<ul>
+<li>Pour modifier les cr&eacute;neaux cliquer sur l'icone &agrave; droite des cr&eacute;neaux</li>
+</ul>
+<hr/>Etapes pour ajouter :
+<ul>
+<li>Choisisser la date, l'heure de d&eacute;but et l'heure de fin.</li>
+<li>Cliquer sur Ajouter.</li>
+</ul>
+Etapes pour supprimer :
+<ul>
+<li>S&eacute;lectionner le cr&eacute;neau.</li>
+<li>Cliquer sur Retirer</li>
+</ul>
+<hr/>
+<a href="#" onclick="loadid('help/details_reunion_admin.php.hlp','help',false);">Retour</a>
diff --git a/final/app/help/reunion_admin_creneaux.php.hlp~ b/final/app/help/reunion_admin_creneaux.php.hlp~
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/final/app/help/reunion_admin_creneaux.php.hlp~
diff --git a/final/app/help/reunion_admin_dispo.php.hlp b/final/app/help/reunion_admin_dispo.php.hlp
index d9b587d..53a1b3b 100644
--- a/final/app/help/reunion_admin_dispo.php.hlp
+++ b/final/app/help/reunion_admin_dispo.php.hlp
@@ -1,12 +1,12 @@
<h2><a href="#css_nohelp" onclick="setActiveStyleSheet('nohelp');">Aide</a></h2>
-Le masquage des disponibilit&eacute;es.<br/>
+Le masquage des disponibilit&eacute;s.<br/>
<hr/>Informations :
<ul>
<li>L'activation de l'option.<br/><br/>
-Elle permet de masquer les disponibilit&eacute;es d'un participant vis-&agrave;-vis des autres participants de la r&eacute;union.<br/><br/>
+Elle permet de masquer les disponibilit&eacute;s d'un participant vis-&agrave;-vis des autres participants de la r&eacute;union.<br/><br/>
</li>
<li>La d&eacute;sactivation de l'option.<br/><br/>
-Elle permet de rendre visible les disponibilit&eacute;es de tous les participants.
+Elle permet de rendre visible les disponibilit&eacute;s de tous les participants.
</li>
</ul>
<hr/>
diff --git a/final/app/help/reunion_admin_fichier.php.hlp b/final/app/help/reunion_admin_fichier.php.hlp
new file mode 100644
index 0000000..339996a
--- /dev/null
+++ b/final/app/help/reunion_admin_fichier.php.hlp
@@ -0,0 +1,16 @@
+<h2><a href="#css_nohelp" onclick="setActiveStyleSheet('nohelp');">Aide</a></h2>
+Gestion des fichiers.<br/>
+<hr/>Pour ajouter un fichier :
+<ul>
+<li>Cliquer sur Ajouter un fichier.</li>
+<li>Cliquer sur Parcourir et s&eacute;lectionner votre fichier.</li>
+<li>Cliquer sur Valider</li>
+</ul>
+<br/>
+Pour t&eacute;l&eacute;charger un fichier :
+<ul>
+<li>Cliquer sur le nom du fichier.</li>
+<li>Engistrer le fichier sur votre ordinateur.</li>
+</ul>
+<hr/>
+<a href="#" onclick="loadid('help/details_reunion_admin.php.hlp','help',false);">Retour</a>
diff --git a/final/app/help/reunion_admin_mail.php.hlp b/final/app/help/reunion_admin_mail.php.hlp
new file mode 100644
index 0000000..fd211a4
--- /dev/null
+++ b/final/app/help/reunion_admin_mail.php.hlp
@@ -0,0 +1,9 @@
+<h2><a href="#css_nohelp" onclick="setActiveStyleSheet('nohelp');">Aide</a></h2>
+Envoyer un mail.<br/>
+<hr/>Etapes :
+<ul>
+<li>S&eacute;lectionner les destinataires du mail (cocher les cases).</li>
+<li>Cliquer sur Envoyer</li>
+</ul>
+<hr/>
+<a href="#" onclick="loadid('help/details_reunion_admin.php.hlp','help',false);">Retour</a>
diff --git a/final/app/help/reunion_admin_participants.php.hlp b/final/app/help/reunion_admin_participants.php.hlp
new file mode 100644
index 0000000..96e17d1
--- /dev/null
+++ b/final/app/help/reunion_admin_participants.php.hlp
@@ -0,0 +1,29 @@
+<h2><a href="#css_nohelp" onclick="setActiveStyleSheet('nohelp');">Aide</a></h2>
+Modification de la liste des participants.<br/>
+<hr/>Information :
+<ul>
+<li>Pour modifier la liste des participants cliquer sur l'icone &agrave; gauche de Personnes</li>
+</ul>
+<hr/>Etapes pour ajouter :
+<ul>
+<li>Depuis une liste :
+<ul>
+<li>S&eacute;lectionner un contact puis cliquer sur Ajouter.</li>
+<li>Double-cliquer sur un contact (Firefox uniquement).</li>
+<li>Ajouter tous les contacts.</li>
+</ul>
+</li>
+<li>Avec son courriel :
+<ul>
+<li>Saisir son courriel dans le champ.</li>
+<li>Cliquer sur Inscrire.</li>
+</ul>
+</li>
+</ul>
+<hr/>Etapes pour supprimer :
+<ul>
+<li>S&eacute;lectionner le participant.</li>
+<li>Cliquer sur Retirer.</li>
+</ul>
+<hr/>
+<a href="#" onclick="loadid('help/details_reunion_admin.php.hlp','help',false);">Retour</a>
diff --git a/final/app/help/reunion_commentaire.php.hlp b/final/app/help/reunion_commentaire.php.hlp
new file mode 100644
index 0000000..fbc5ad6
--- /dev/null
+++ b/final/app/help/reunion_commentaire.php.hlp
@@ -0,0 +1,10 @@
+<h2><a href="#css_nohelp" onclick="setActiveStyleSheet('nohelp');">Aide</a></h2>
+Editer votre commentaire.<br/>
+<hr/>Etapes :
+<ul>
+<li>Cliquer sur Editer votre commentaire.</li>
+<li>Modifier votre commentaire.</li>
+<li>Confirmer en cliquant sur Valider.</li>
+</ul>
+<hr/>
+<a href="#" onclick="loadid('help/details_reunion.php.hlp','help',false);">Retour</a>
diff --git a/final/app/help/reunion_detail.php.hlp b/final/app/help/reunion_detail.php.hlp
index 6ca90c9..a2a5c45 100644
--- a/final/app/help/reunion_detail.php.hlp
+++ b/final/app/help/reunion_detail.php.hlp
@@ -9,7 +9,7 @@ Afficher le d&eacute;tail d'une r&eacute;union.
<hr/>Remarques :
<ul>
<li>Si vous &ecirc;tes organisateur, vous pourrez modifier et consulter l'organisation de votre r&eacute;union.</li>
-<li>Si vous &ecirc;tes participant, vous pourrez d&eacute;poser vos disponibilit&eacute;es.</li>
+<li>Si vous &ecirc;tes participant, vous pourrez d&eacute;poser vos disponibilit&eacute;s.</li>
</ul>
<hr/>
<a href="#" onclick="loadid('help/index.php.hlp','help',false);">Retour</a> \ No newline at end of file
diff --git a/final/app/help/reunion_dispo.php.hlp b/final/app/help/reunion_dispo.php.hlp
new file mode 100644
index 0000000..1e31a49
--- /dev/null
+++ b/final/app/help/reunion_dispo.php.hlp
@@ -0,0 +1,9 @@
+<h2><a href="#css_nohelp" onclick="setActiveStyleSheet('nohelp');">Aide</a></h2>
+Disponibilit&eacute;s.<br/>
+<hr/>Pour chaque cr&eacute;neaux :
+<ul>
+<li>Cliquer sur le bouton Vert pour indiquer votre disponibilit&eacute;.</li>
+<li>Cliquer sur le bouton Rouge pour indiquer votre indisponibilit&eacute;.</li>
+</ul>
+<hr/>
+<a href="#" onclick="loadid('help/details_reunion.php.hlp','help',false);">Retour</a>
diff --git a/final/app/help/reunion_fichier.php.hlp b/final/app/help/reunion_fichier.php.hlp
new file mode 100644
index 0000000..518cb42
--- /dev/null
+++ b/final/app/help/reunion_fichier.php.hlp
@@ -0,0 +1,16 @@
+<h2><a href="#css_nohelp" onclick="setActiveStyleSheet('nohelp');">Aide</a></h2>
+Gestion des fichiers.<br/>
+<hr/>Pour ajouter un fichier :
+<ul>
+<li>Cliquer sur Ajouter un fichier.</li>
+<li>Cliquer sur Parcourir et s&eacute;lectionner votre fichier.</li>
+<li>Cliquer sur Valider</li>
+</ul>
+<br/>
+Pour t&eacute;l&eacute;charger un fichier :
+<ul>
+<li>Cliquer sur le nom du fichier.</li>
+<li>Engistrer le fichier sur votre ordinateur.</li>
+</ul>
+<hr/>
+<a href="#" onclick="loadid('help/details_reunion.php.hlp','help',false);">Retour</a>
diff --git a/final/app/help/reunion_new.php.hlp b/final/app/help/reunion_new.php.hlp
index 6a1629c..4fb4467 100644
--- a/final/app/help/reunion_new.php.hlp
+++ b/final/app/help/reunion_new.php.hlp
@@ -5,6 +5,6 @@ Organiser une r&eacute;union.
<li>Cliquer sur Organiser une r&eacute;union.</li>
</ul>
<hr/>Remarques :
-<ul><li>L'aide vous guidera pour les futurs &eacute;tapes.</li></ul>
+<ul><li>L'aide vous guidera pour les futures &eacute;tapes.</li></ul>
<hr/>
<a href="#" onclick="loadid('help/index.php.hlp','help',false);">Retour</a> \ No newline at end of file
diff --git a/final/app/help/sendmail.php.hlp b/final/app/help/sendmail.php.hlp
index 4a31a5b..073a29f 100644
--- a/final/app/help/sendmail.php.hlp
+++ b/final/app/help/sendmail.php.hlp
@@ -1,2 +1,9 @@
-Ce formulaire vous permet d'envoyer un courriel de notification aux personnes sélectionnées.<br/>
-Vous pouvez charger un des modèles disponibles pour gagner du temps.
+<h2><a href="#css_nohelp" onclick="setActiveStyleSheet('nohelp');">Aide</a></h2>
+Envoie d'un mail.
+<hr/>Etapes :
+<ul>
+<li>Ajouter ou Retirer des destinataires.</li>
+<li>S&eacute;lectionner un mod&eagrave;le.</li>
+<li>Modifier le mod&egrave;le si besoin.</li>
+<li>Cliquer sur Envoyer.</li>
+</ul>
diff --git a/final/app/images/index.html b/final/app/images/index.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/final/app/images/index.html
diff --git a/final/app/include/je.inc.php b/final/app/include/je.inc.php
index 53b1043..d7d1081 100644
--- a/final/app/include/je.inc.php
+++ b/final/app/include/je.inc.php
@@ -161,7 +161,7 @@ require_once ('include/connect.inc.php');
$row = mysql_fetch_array($result);
echo "<tr>\n<td>";
if ($row['estPrivee'] == 'oui' || $row['idP_Createur']==$idP) echo "<a href=\"#\" onclick=\"loadid('popdeletelist.php?idL=".htmlentities($row[0], ENT_QUOTES)."','popdeletelist',true);popon('popdeletelist')\"><img src=\"images/supprimer.png\" alt=\"Supprimer ".htmlentities($row[1], ENT_QUOTES)."\" /></a></td>\n" ; else echo "</td>\n";
- if ($row['estPrivee'] == 'oui') echo "<td>estPriv&eacute;e" ; else echo "<td>Public";
+ if ($row['estPrivee'] == 'oui') echo "<td>Priv&eacute;e" ; else echo "<td>Public";
echo "</td>\n<td>";
echo "<a href=\"#\" onclick=\"loadid('poppersonne.php?idL=".$row['idL']."&amp;idP_orga=".$idP."','poppersonne',true);popon('poppersonne')\">";
echo htmlentities($row['libelleL'], ENT_QUOTES);
diff --git a/final/app/include/ju.inc.php b/final/app/include/ju.inc.php
index a7154b7..4bb9330 100644
--- a/final/app/include/ju.inc.php
+++ b/final/app/include/ju.inc.php
@@ -83,7 +83,7 @@ function generate_html_reunion_fichiers($idR)
{
while($fichier = mysql_fetch_array($resultat))
{
- echo '<tr><td><a href="' . str_replace(" ", "%20", urlencode($basepath . $fichier["nomFic"])).'" target="_blank" >'.htmlentities($fichier["nomFic"], ENT_QUOTES)."</a></td></tr>\n";
+ echo '<tr><td><a href="' . str_replace(" ", "%20", $basepath . $fichier["nomFic"]).'" target="_blank" >'.htmlentities($fichier["nomFic"], ENT_QUOTES)."</a></td></tr>\n";
}
}
else
diff --git a/final/app/include/ludo/TODO_list.txt b/final/app/include/ludo/TODO_list.txt
deleted file mode 100644
index 724c46c..0000000
--- a/final/app/include/ludo/TODO_list.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-Accueil > _Listes_ (virer le lien)
-
-mysql_free_result après les requetes et mysql_close ?
-
-configuration de PHP dans un fichier INI :
-array parse_ini_file ( string filename [, bool process_sections] )
-
-
-Vérifier que les redirections vers authentification et le retour fasse bien suivre les paramètres
---> bookmarque details_reunion?idR=1
-
-
-faire une fonction JS qui appelle une page php ou créer toute seule un cookie qui gère la préférence du css.
-
-Se préoccuper des accents et des encodages de pages !
-
-Faire un pied de page avec nos noms, et les logos valide XHTML, CSS...
-
-TODO : un script php qui purge la base
--> export SQL ancienne base ?
--> suppression des réunions plus vielles que...
--> suppression des Personnes n'ayant jamais changé leur profil et n'ayant plus de réunion les concernant
--> suppression de tout les créneaux non référencés
--> suppression de toutes les listes privées obsoletes
diff --git a/final/app/include/ludo/config.inc.php b/final/app/include/ludo/config.inc.php
index 7f1d587..c016342 100644
--- a/final/app/include/ludo/config.inc.php
+++ b/final/app/include/ludo/config.inc.php
@@ -1,7 +1,7 @@
<?php
$CONFIG = array
(
- 'adminMail' => 'jmi@iut-blagnac.fr',
+ 'adminMail' => 'inglebert@iut-blagnac.fr',
'automatedMail' => 'no_reply@iut-blagnac.fr',
'AUTH' => array
(
diff --git a/final/app/include/ludo/fonctions.inc.php b/final/app/include/ludo/fonctions.inc.php
index 9124ac5..3361827 100644
--- a/final/app/include/ludo/fonctions.inc.php
+++ b/final/app/include/ludo/fonctions.inc.php
@@ -125,9 +125,9 @@ function generate_html_array_personnes_crenaux($idR)
}
else
{
- return "Impossible d'afficher le tableau de la réunion : Erreur de base de donnée\n";
+ return "Impossible d'afficher le tableau de la r�union : Erreur de base de donn�e\n";
}
- // DEBUG : tests en forçant les variables
+ // DEBUG : tests en for�ant les variables
//$estAnnulee=true;
//~ echo "DEBUG : \nmontrerDispoR==$montrerDispoR\nestAnnulee==$estAnnulee\nestFixee==$estFixee\nis_admin==$is_admin\n";
@@ -264,7 +264,7 @@ function generate_html_array_personnes_crenaux($idR)
if ( $is_admin && ! $estFixee && ! $estAnnulee ) { echo " <td>&nbsp;</td>\n"; }
echo " </tr>\n";
}
- // Si $is_admin, on met une ligne avec bouton envoyer pour les mails et icône ajout de personnes
+ // Si $is_admin, on met une ligne avec bouton envoyer pour les mails et ic�ne ajout de personnes
if ( $is_admin )
{
echo " <tr>\n <td>\n";
@@ -524,7 +524,7 @@ function html_generate_MySQLTableSuppr($table, $key_name, $columns='*', $where_c
{
return "Erreur de g&eacute;n&eacute;ration de la table $table\n";
}
- else
+ elseif ( mysql_num_rows($result) > 0 )
{
$row = mysql_fetch_assoc($result);
// Affichage des ent&ecirc;tes du tableau et du pied de tableau
@@ -539,10 +539,255 @@ function html_generate_MySQLTableSuppr($table, $key_name, $columns='*', $where_c
$num=0;
do
{ if ( isset($row[$key_name]) ) { $num=$row[$key_name]; } else { $num=''; }
- echo "<tr>\n<td><input name=\"${key_name}_${num}\" type=\"checkbox\" /></td>\n<td>" . implode("</td>\n<td>",$row) . "</td>\n</tr>\n";
+ echo "<tr>\n<td><input name=\"id[${num}]\" type=\"checkbox\" /></td>\n<td>" . implode("</td>\n<td>",$row) . "</td>\n</tr>\n";
} while ( $row = mysql_fetch_assoc($result) );
echo "</tbody>\n</table>\n</form>\n";
}
}
+function delete_from_awor_liste()
+{
+ require_once('include/connect.inc.php');
+ if ( isset($_POST['id']) && is_array($_POST['id']) )
+ {
+ if ( ! base_delete_awor_liste( 'idL', array_keys($_POST['id'] ) ) )
+ {
+ echo "ROLLBACK<br />\n";
+ mysql_query("ROLLBACK");
+ }
+ }
+}
+
+function delete_from_awor_fichier()
+{
+ require_once('include/connect.inc.php');
+ if ( isset($_POST['id']) && is_array($_POST['id']) )
+ {
+ if ( ! base_delete_awor_fichier( 'idFic', array_keys($_POST['id'] ) ) )
+ {
+ echo "ROLLBACK<br />\n";
+ mysql_query("ROLLBACK");
+ }
+ }
+}
+
+function delete_from_awor_reunion()
+{
+ require_once('include/connect.inc.php');
+ if ( isset($_POST['id']) && is_array($_POST['id']) )
+ {
+ if ( ! base_delete_awor_reunion( array_keys($_POST['id']) ) )
+ {
+ echo "ROLLBACK<br />\n";
+ mysql_query("ROLLBACK");
+ }
+ }
+}
+
+function delete_from_awor_personne()
+{
+ require_once('include/connect.inc.php');
+ if ( isset($_POST['id']) && is_array($_POST['id']) )
+ {
+ if ( ! base_delete_awor_personne( array_keys($_POST['id']) ) )
+ {
+ echo "ROLLBACK<br />\n";
+ mysql_query("ROLLBACK");
+ }
+ }
+}
+
+
+function base_delete_awor_reunion($idR_array)
+{
+ echo "function base_delete_awor_reunion($idR_array)<br />\n";
+
+ // Suppression des créneaux associés
+ $idR_implode=implode(',', $idR_array);
+ $query = "SELECT idC FROM AWOR_Creneau WHERE idR IN ($idR_implode);";
+ $idC_array=array();
+ if ( $result = @mysql_query($query) )
+ {
+ while ( list($idC) = mysql_fetch_array($result) ) { $idC_array[]=$idC; }
+ }
+ if ( !base_delete_awor_creneau( $idC_array ) ) { return false; }
+
+ // Suppression des listes associées
+ $idR_Interne_implode=implode("','interne_idR_", $idR_array);
+ if ( $idR_Interne_implode != '' ) { $idR_Interne_implode = "'interne_idR_" . $idR_Interne_implode . "'"; }
+ $query = "SELECT idL FROM AWOR_Liste WHERE libelleL IN ($idR_Interne_implode);";
+ //~ echo "$query<br />\n";
+ $idL_array=array();
+ if ( $result = @mysql_query($query) )
+ {
+ while ( list($idL) = mysql_fetch_array($result) ) { $idL_array[]=$idL; }
+ }
+ //~ print_r($idL_array);
+ if ( !base_delete_awor_liste('idL', $idL_array) ) { return false; }
+
+
+ if ( !base_delete_awor_fichier('idR', $idR_array) ) { return false; }
+ if ( !base_delete_awor_repondre('idR', $idR_array) ) { return false; }
+
+ $idR_implode=implode(',', $idR_array);
+ if ( $idR_implode!= '' )
+ {
+ $query="DELETE FROM AWOR_Reunion WHERE idR IN ($idR_implode);";
+ echo "$query<br />\n";
+ return ( mysql_query($query) !== false ) ;
+ }
+ return true;
+}
+
+
+function base_delete_awor_personne($idP_array)
+{
+ echo "function base_delete_awor_personne($idP_array)<br />\n";
+
+ // Suppression des r�unions organis�es par les personnes concern�es
+ $idP_implode=implode(',', $idP_array);
+ $query = "SELECT DISTINCT idR FROM AWOR_Reunion WHERE idP_Orga IN ($idP_implode);";
+ $idR_array=array();
+ if ( $result = @mysql_query($query) )
+ {
+ while ( list($idR) = mysql_fetch_array($result) ) { $idR_array[]=$idR; }
+ }
+
+ // Suppr Choisir, Repondre
+ if ( !base_delete_awor_reunion($idR_array) ) { return false; }
+
+
+ // Suppression des personnes dans les listes les contenant
+ if ( !base_delete_awor_appartenir('idP', $idP_array) ) { return false; }
+
+ // Suppression des listes privées appartenant aux personnes
+ // TODO : voir pour les listes publiques appartenant aux personnes
+ if ( !base_delete_awor_liste('idP_Createur', $idP_array) ) { return false; }
+
+ // Suppression effective des personnes
+ $idP_implode=implode(',', $idP_array);
+ if ( $idP_implode!= '' )
+ {
+ $query="DELETE FROM AWOR_Personne WHERE idP IN ($idP_implode);";
+ echo "$query<br />\n";
+ return ( mysql_query($query) !== false ) ;
+ }
+}
+
+function base_delete_awor_liste($idName, $id_array)
+{
+ // idName = ( idL | idP_Createur )
+ echo "function base_delete_awor_liste($idName, $id_array)<br />\n";
+ // Suppression du contenu des listes
+ if ( !base_delete_awor_appartenir('idL', $id_array) ) { return false; }
+
+ // Suppression des listes
+ $id_implode=implode(',', $id_array);
+ if ( $id_implode!= '' )
+ {
+ $query="DELETE FROM AWOR_Liste WHERE $idName IN ($id_implode);";
+ echo "$query<br />\n";
+ mysql_query($query);
+ }
+ return true;
+}
+
+function base_delete_awor_fichier($idName, $id_array)
+{
+ // $idName = (idFic | idR)
+ echo "function base_delete_awor_fichier($idName, $id_array)<br />\n";
+ require("include/ludo/config.inc.php");
+
+ $id_implode=implode(',', $id_array);
+
+ // Supression physique
+ if ( isset($CONFIG['UPLOAD']['relative_path']) ) { $basepath=$CONFIG['UPLOAD']['relative_path']; } else { $basepath='fichiers/';}
+ $basepath=$_SERVER['DOCUMENT_ROOT'].'/'.$basepath;
+
+ $requete = "SELECT nomFic FROM AWOR_Fichier WHERE $idName IN ($id_implode);";
+ echo "$requete<br />\n";
+ if( ( $resultat = mysql_query($requete) ) )
+ {
+ while( list($fichier) = mysql_fetch_array($resultat))
+ {
+ echo "unlink($basepath.$fichier);<br />\n";
+ unlink($basepath.$fichier);
+ }
+ }
+ // Suppression dans la base
+ if ( $id_implode!= '' )
+ {
+ $query="DELETE FROM AWOR_Fichier WHERE $idName IN ($id_implode);";
+ echo "$query<br />\n";
+ return ( mysql_query($query) !== false ) ;
+ }
+ return true;
+}
+
+
+function base_delete_awor_choisir($idName, $id_array)
+{
+ // idName = (idP|idR)
+ echo "function base_delete_awor_choisir($idName, $id_array)<br />\n";
+ $id_implode=implode(',', $id_array);
+ if ( $id_implode!= '' )
+ {
+ $query="DELETE FROM AWOR_Choisir WHERE $idName IN ($id_implode);";
+ echo "$query<br />\n";
+ return ( mysql_query($query) !== false ) ;
+ }
+ return true;
+}
+
+function base_delete_awor_repondre($idName, $id_array)
+{
+ echo "function base_delete_awor_repondre($idName, $id_array)<br />\n";
+ // idName=(idR|idP)
+
+ // Suppression des Reponses
+ $id_implode=implode(',', $id_array);
+ if ( $id_implode!= '' )
+ {
+ $query="DELETE FROM AWOR_Repondre WHERE $idName IN ($id_implode);";
+ echo "$query<br />\n";
+ return ( mysql_query($query) !== false ) ;
+ }
+ return true;
+}
+
+function base_delete_awor_appartenir($idName, $id_array)
+{
+ // $idName = (idL | idP)
+ echo "function base_delete_awor_appartenir($idName, $id_array)<br />\n";
+ // Suppression dans la base
+ $idL_implode=implode(',', $id_array);
+ if ( $idL_implode!= '' )
+ {
+ $query="DELETE FROM AWOR_Appartenir WHERE $idName IN ($idL_implode);";
+ echo "$query<br />\n";
+ return ( mysql_query($query) !== false ) ;
+ }
+ return true;
+}
+
+
+function base_delete_awor_creneau($idC_array)
+{
+ echo "function base_delete_awor_creneau($idC_array)<br />\n";
+ // Suppression des réponses aux créneaux
+ if ( ! base_delete_awor_choisir('idC', $idC_array) ) { return false; }
+
+ // Suppression des créneaux
+ $idC_implode=implode(',', $idC_array);
+ if ( $idC_implode!= '' )
+ {
+ $query="DELETE FROM AWOR_Creneau WHERE idC IN ($idC_implode);";
+ echo "$query<br />\n";
+ return ( mysql_query($query) !== false ) ;
+ }
+ return true;
+}
+
+// TODO : suppression des listes vides
+
?>
diff --git a/final/app/include/ludo/index.html b/final/app/include/ludo/index.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/final/app/include/ludo/index.html
diff --git a/final/app/include/ludo/mail_textarea.php b/final/app/include/ludo/mail_textarea.php
index 6db990f..41537a9 100644
--- a/final/app/include/ludo/mail_textarea.php
+++ b/final/app/include/ludo/mail_textarea.php
@@ -1,7 +1,8 @@
<?php
require_once('session_verify.inc.php');
include('config.inc.php');
-require_once('../utils.inc.php');
+@include('../tools.inc.php');
+@include('include/tools.inc.php');
//~ require_once('/home/lud/shares/public_html/awor/appli_3_alpha/include/connect.inc.php');
//include('include/connect.inc.php');
diff --git a/final/app/index.php b/final/app/index.php
index abdfca1..c01142b 100644
--- a/final/app/index.php
+++ b/final/app/index.php
@@ -50,6 +50,7 @@ generate_html_div_help();
{
require_once('fonctions.inc.php');
$errmsg=mysql_generate_errmsg();
+ echo " DEBUG : $errmsg\n";
}
else
{
@@ -81,8 +82,6 @@ generate_html_div_help();
echo " <td class='$etat'>Annul&eacute;e</td>\n";
break;
}
-
-
echo ' <td>';
generate_html_reunion_detail_button($idR);
echo "</td>\n";
@@ -92,20 +91,58 @@ generate_html_div_help();
}
- // R&eacute;unions fix&eacute;es et pass&eacute;es
-
+ // Réunion en préparation à moi, pas annulée
+ $query = 'SELECT DISTINCT R.idR, R.objetR, P.nomP, P.prenomP, NULL, R.estAnnulee'
+ . ' FROM AWOR_Liste L,AWOR_Reunion R,AWOR_Appartenir A,AWOR_Personne P' // Creneau C,
+ . " WHERE ((A.idP = $idP AND A.idL = L.idL) OR R.idP_Orga = $idP) AND P.idP = '$idP'"
+ . ' AND R.estAnnulee=\'non\' AND R.idL = L.idL AND P.idP = R.idP_Orga AND ISNULL(R.idC_Fixe)'
+ . ' ORDER BY R.idR ASC;';
+ fill_array_liste_reunion($query);
+ //~ echo $query . "\n";
+
+ // Réunions fixées, à moi, pas annulée
$query = 'SELECT DISTINCT R.idR, R.objetR, P.nomP, P.prenomP, UNIX_TIMESTAMP(C.dateHeure), R.estAnnulee'
. ' FROM AWOR_Liste L,AWOR_Reunion R,AWOR_Appartenir A,AWOR_Creneau C,AWOR_Personne P'
- . " WHERE ((A.idP = $idP AND A.idL = L.idL) OR R.idP_Orga = $idP)"
- . ' AND R.idL = L.idL AND P.idP = R.idP_Orga AND R.idC_Fixe = C.idC'
+ . " WHERE ((A.idP = '$idP' AND A.idL = L.idL) OR R.idP_Orga = '$idP') AND P.idP = '$idP'"
+ . ' AND R.estAnnulee=\'non\' AND R.idL = L.idL AND P.idP = R.idP_Orga AND R.idC_Fixe = C.idC'
. ' ORDER BY C.dateHeure DESC;';
fill_array_liste_reunion($query);
+
+ // Réunion en annulée à moi
+ $query = 'SELECT DISTINCT R.idR, R.objetR, P.nomP, P.prenomP, NULL, R.estAnnulee'
+ . ' FROM AWOR_Liste L,AWOR_Reunion R,AWOR_Appartenir A,AWOR_Personne P' // Creneau C,
+ . " WHERE ((A.idP = $idP AND A.idL = L.idL) OR R.idP_Orga = $idP) AND P.idP = '$idP'"
+ . ' AND R.estAnnulee=\'oui\' AND R.idL = L.idL AND P.idP = R.idP_Orga AND ISNULL(R.idC_Fixe)'
+ . ' ORDER BY R.idR ASC;';
+ fill_array_liste_reunion($query);
+
+ echo "<tr class=\"empty\"><td></td><td></td><td></td><td></td><td></td></tr>\n";
- // R&eacute;union en pr&eacute;paration
+ // Réunion en préparation pas à moi, pas annulée
+ $query = 'SELECT DISTINCT R.idR, R.objetR, P.nomP, P.prenomP, NULL, R.estAnnulee'
+ . ' FROM AWOR_Liste L,AWOR_Reunion R,AWOR_Appartenir A,AWOR_Personne P' // Creneau C,
+ . " WHERE ((A.idP = $idP AND A.idL = L.idL) OR R.idP_Orga = $idP) AND P.idP <> '$idP'"
+ . ' AND R.estAnnulee=\'non\' AND R.idL = L.idL AND P.idP = R.idP_Orga AND ISNULL(R.idC_Fixe)'
+ . ' ORDER BY R.idR ASC;';
+ //~ echo $query . "\n";
+ fill_array_liste_reunion($query);
+
+ // Réunions fixées, pas à moi, pas annulée
+ $query = 'SELECT DISTINCT R.idR, R.objetR, P.nomP, P.prenomP, UNIX_TIMESTAMP(C.dateHeure), R.estAnnulee'
+ . ' FROM AWOR_Liste L,AWOR_Reunion R,AWOR_Appartenir A,AWOR_Creneau C,AWOR_Personne P'
+ . " WHERE ((A.idP = '$idP' AND A.idL = L.idL) OR R.idP_Orga = '$idP') AND P.idP <> '$idP'"
+ . ' AND R.estAnnulee=\'non\' AND R.idL = L.idL AND P.idP = R.idP_Orga AND R.idC_Fixe = C.idC'
+ . ' ORDER BY C.dateHeure DESC;';
+ fill_array_liste_reunion($query);
+
+ // Réunion en annulée pas à moi
$query = 'SELECT DISTINCT R.idR, R.objetR, P.nomP, P.prenomP, NULL, R.estAnnulee'
. ' FROM AWOR_Liste L,AWOR_Reunion R,AWOR_Appartenir A,AWOR_Personne P' // Creneau C,
- . " WHERE ((A.idP = $idP AND A.idL = L.idL) OR R.idP_Orga = $idP)"
- . ' AND R.idL = L.idL AND P.idP = R.idP_Orga AND ISNULL(R.idC_Fixe);';
+ . " WHERE ((A.idP = $idP AND A.idL = L.idL) OR R.idP_Orga = $idP) AND P.idP <> '$idP'"
+ . ' AND R.estAnnulee=\'oui\' AND R.idL = L.idL AND P.idP = R.idP_Orga AND ISNULL(R.idC_Fixe)'
+ . ' ORDER BY R.idR ASC;';
+
+
//echo "DEBUG : $query\n";
fill_array_liste_reunion($query);
diff --git a/final/app/profil.php b/final/app/profil.php
index bd88afd..16d3449 100644
--- a/final/app/profil.php
+++ b/final/app/profil.php
@@ -5,8 +5,14 @@ require_once('include/connect.inc.php');
require_once('include/ju.inc.php');
if ( isset($_REQUEST['action']) )
{
- $nom_func = 'traiter_formulaire_' . $_REQUEST['action'];
- $nom_func();
+ if ($_POST['action'] == "maj_profil")
+ {
+ if (1==1)//Verification auth puis traitement
+ {
+ $nom_func = 'traiter_formulaire_' . $_REQUEST['action'];
+ $nom_func();
+ }
+ }
}
generate_html_doctype_and_head("Administration du profil");
@@ -31,27 +37,48 @@ else
{
$nom = $_SESSION['session_loginP'];
}
-$resultat = mysql_query("SELECT * FROM AWOR_Personne WHERE idP = '".$_SESSION['session_idP']."'");
-if($resultat != false)
+if (isset($_POST['pre_action']) & $_POST['pre_action']=="verif_profil")
{
- $p = mysql_fetch_array($resultat);
- echo "<form method=\"post\" action=\"profil.php\" onSubmit=\"return verifProfil()\" >\n";
- echo "<table summary=\"Formulaire permettant de modifier le profil de l'utilisateur\" >\n";
- echo "<tr><td>Methode d'authentification : </td><td>\n<select name=\"methodeAuth\">\n";
- if($p["methodeAuth"] == "webetud") echo "<option value=\"webetud\" selected=\"selected\">Webetud</option>\n"; else echo "<option value=\"webetud\">Webetud</option>\n";
- if($p["methodeAuth"] == "pop") echo "<option value=\"pop\" selected=\"selected\">POP3</option>\n"; else echo "<option value=\"pop\">POP3</option>\n";
- echo "</select></td></tr>\n";
- echo "<tr><td>Votre login :</td><td><input type=\"text\" name=\"loginP\" id=\"loginP\" value=\"".htmlentities($p["loginP"], ENT_QUOTES)."\"/></td></tr>\n";
- echo "<tr><td>Votre adresse mail :</td><td><input type=\"text\" name=\"courrielP\" id=\"courrielP\" value=\"".htmlentities($p["courrielP"], ENT_QUOTES)."\"/></td></tr>\n";
- echo "<tr><td>Votre nom :</td><td><input type=\"text\" name=\"nomP\" id=\"nomP\" value=\"".htmlentities($p["nomP"], ENT_QUOTES)."\"/></td></tr>\n";
- echo "<tr><td>Votre prenom :</td><td><input type=\"text\" name=\"prenomP\" id=\"prenomP\" value=\"".htmlentities($p["prenomP"], ENT_QUOTES)."\"/></td></tr>\n";
- echo "<tr><td colspan=\"2\"><input type=\"submit\" /></td></tr>\n";
- echo "</table>\n";
+
+ echo "<form method=\"post\" action=\"profil.php\" >\n";
+ echo "<table><tr><th>Confirmer votre authentification</th></tr>";
+ echo "<tr><td>Identifiant : ".$_POST['loginP']."</td></tr>";
+ echo "<tr><td>Mot de passe : <input name=\"pass\" type=\"password\" size=\"20\" /></td></tr>";
+ echo "<tr><td><input type=\"submit\" /></td></tr>";
+ echo "</table>";
+ echo "<input type=\"hidden\" name=\"loginP\" value=\"".$_POST['loginP']."\"/>\n";
+ echo "<input type=\"hidden\" name=\"courrielP\" value=\"".$_POST['courrielP']."\"/>\n";
+ echo "<input type=\"hidden\" name=\"nomP\" value=\"".$_POST['nomP']."\"/>\n";
+ echo "<input type=\"hidden\" name=\"methodeAuth\" value=\"".$_POST['methodeAuth']."\"/>\n";
+ echo "<input type=\"hidden\" name=\"prenomP\" value=\"".$_POST['prenomP']."\"/>\n";
echo "<input type=\"hidden\" name=\"action\" value=\"maj_profil\" />\n";
echo "</form>\n";
- echo "</div>\n";
}
-if ( isset ($errmsg) ) generate_html_div_errmsg($errmsg);
+else
+{
+
+ $resultat = mysql_query("SELECT * FROM AWOR_Personne WHERE idP = '".$_SESSION['session_idP']."'");
+ if($resultat != false)
+ {
+ $p = mysql_fetch_array($resultat);
+ echo "<form method=\"post\" action=\"profil.php\" onSubmit=\"return verifProfil()\" >\n";
+ echo "<table summary=\"Formulaire permettant de modifier le profil de l'utilisateur\" >\n";
+ echo "<tr><td>Methode d'authentification : </td><td>\n<select name=\"methodeAuth\">\n";
+ if($p["methodeAuth"] == "webetud") echo "<option value=\"webetud\" selected=\"selected\">Webetud</option>\n"; else echo "<option value=\"webetud\">Webetud</option>\n";
+ if($p["methodeAuth"] == "pop") echo "<option value=\"pop\" selected=\"selected\">POP3</option>\n"; else echo "<option value=\"pop\">POP3</option>\n";
+ echo "</select></td></tr>\n";
+ echo "<tr><td>Votre login :</td><td><input type=\"text\" name=\"loginP\" id=\"loginP\" value=\"".htmlentities($p["loginP"], ENT_QUOTES)."\"/></td></tr>\n";
+ echo "<tr><td>Votre adresse mail :</td><td><input type=\"text\" name=\"courrielP\" id=\"courrielP\" value=\"".htmlentities($p["courrielP"], ENT_QUOTES)."\"/></td></tr>\n";
+ echo "<tr><td>Votre nom :</td><td><input type=\"text\" name=\"nomP\" id=\"nomP\" value=\"".htmlentities($p["nomP"], ENT_QUOTES)."\"/></td></tr>\n";
+ echo "<tr><td>Votre prenom :</td><td><input type=\"text\" name=\"prenomP\" id=\"prenomP\" value=\"".htmlentities($p["prenomP"], ENT_QUOTES)."\"/></td></tr>\n";
+ echo "<tr><td colspan=\"2\"><input type=\"submit\" /></td></tr>\n";
+ echo "</table>\n";
+ echo "<input type=\"hidden\" name=\"pre_action\" value=\"verif_profil\" />\n";
+ echo "</form>\n";
+ echo "</div>\n";
+ }
+ if ( isset ($errmsg) ) generate_html_div_errmsg($errmsg);
+}
?>
<div id="msg"></div>
<?php generate_html_div_footer() ?>
diff --git a/final/app/sendmail.php b/final/app/sendmail.php
index 4aeba4a..2013a4d 100644
--- a/final/app/sendmail.php
+++ b/final/app/sendmail.php
@@ -2,6 +2,7 @@
require('include/ludo/session_verify.inc.php');
require_once('include/ludo/html_elements.inc.php');
require_once('include/connect.inc.php');
+include 'include/ludo/config.inc.php';
@@ -33,8 +34,6 @@ else
if( isset($_POST['envoi']) )
{
- include 'include/ludo/config.inc.php';
-
if ( !isset($_POST['msgObject']) || !isset($_POST['msgText']) || !is_array($_POST['dataParticipants']) )
{
$errmsg = "Erreur lors de l'&eacute;mission de l'email : Param&egrave;tre manquant ou &eacute;rron&eacute;";
@@ -107,7 +106,7 @@ else
<div id="contenu">
<form id="formmail" action="sendmail.php" method="post" onsubmit="return dataListe('participants','dataParticipants');">
- <table>
+ <table summary="Contacts disponibles et participants">
<tbody>
<tr>
<td>Contacts disponibles</td>
@@ -165,19 +164,23 @@ else
</tr>
</tbody>
</table>
- <div>
- Modèle :&nbsp;
+
<?php
- echo '<select name="modelsList" id="modelsList" onchange="loadlist(\'include/ludo/mail_textarea.php?idR=';
- echo $idR . "&amp;model=','modelsList','divMsg');\">\n";
+ if ( isset($CONFIG['MAIL']['TEMPLATES']) && is_array($CONFIG['MAIL']['TEMPLATES']) )
+ {
+ echo ' <div>' . "\n";
+ echo ' Mod&egrave;le :&nbsp;' . "\n";
+ echo ' <select name="modelsList" id="modelsList" onchange="loadlist(\'include/ludo/mail_textarea.php?idR=';
+ echo $idR . "&amp;model=','modelsList','divMsg');\">\n";
+ echo ' <option value="empty">Vierge</option>';
+ foreach( $CONFIG['MAIL']['TEMPLATES'] as $mail_model_id => $mail_model_par )
+ {
+ echo ' <option value="' . $mail_model_id . '">' . $mail_model_par['caption'] . "</option>\n";
+ }
+ echo ' </select>' . "\n";
+ echo ' </div>' . "\n";
+ }
?>
- <option value="empty">Vierge</option>
- <option value="cree">Nouvelle Réunion</option>
- <option value="modif">Réunion modifiée</option>
- <option value="annul">Réunion annulée</option>
- <option value="fixee">Réunion fixée</option>
- </select>
- </div>
<div>
Objet :&nbsp;<input name="msgObject" type="text" size="40" value="AWOR : Courriel de notification" />
</div>
diff --git a/final/app/templates/index.html b/final/app/templates/index.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/final/app/templates/index.html
diff --git a/final/corr_accents.sh b/final/corr_accents.sh
deleted file mode 100644
index 1fc15f8..0000000
--- a/final/corr_accents.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-find -name "*.php" -exec ./sed.sh {} \;
diff --git a/final/doc/Manuel Utilisateur.odt b/final/doc/Manuel Utilisateur.odt
new file mode 100644
index 0000000..4872609
--- /dev/null
+++ b/final/doc/Manuel Utilisateur.odt
Binary files differ
diff --git a/final/doc/Manuel Utilisateur.pdf b/final/doc/Manuel Utilisateur.pdf
new file mode 100644
index 0000000..29c2b5f
--- /dev/null
+++ b/final/doc/Manuel Utilisateur.pdf
Binary files differ
diff --git a/final/doc/READ_ME.dvi b/final/doc/READ_ME.dvi
deleted file mode 100644
index 836714e..0000000
--- a/final/doc/READ_ME.dvi
+++ /dev/null
Binary files differ
diff --git a/final/doc/READ_ME.html b/final/doc/READ_ME.html
deleted file mode 100644
index fd0333a..0000000
--- a/final/doc/READ_ME.html
+++ /dev/null
@@ -1,469 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="fr" >
-<head><title>AWOR - Fichier Lisez-moi de l&#8217;administrateur</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)">
-<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)">
-<!-- html -->
-<meta name="src" content="READ_ME.tex">
-<meta name="date" content="2007-03-13 12:30:00">
-<link rel="stylesheet" type="text/css" href="READ_ME.css">
-</head><body
->
- <div class="maketitle">
-
-
-
-<h2 class="titleHead">AWOR - Fichier Lisez-moi de l&#8217;administrateur</h2>
-<div class="author" ></div><br />
-<div class="date" ><span
-class="cmr-12">13 mars 2007</span></div>
- </div>
- <h3 class="likesectionHead"><a
- id="x1-1000"></a>Table des matières</h3>
- <div class="tableofcontents">
- <span class="sectionToc">1 <a
-href="#x1-20001" id="QQ2-1-2">Compatibilité</a></span>
-<br /> <span class="sectionToc">2 <a
-href="#x1-50002" id="QQ2-1-5">Sécurité</a></span>
-<br /> <span class="sectionToc">3 <a
-href="#x1-60003" id="QQ2-1-6">Installation</a></span>
-<br /> &#x00A0;<span class="subsectionToc">3.1 <a
-href="#x1-70003.1" id="QQ2-1-7">Dépaquetage des pages PHP</a></span>
-<br /> &#x00A0;<span class="subsectionToc">3.2 <a
-href="#x1-80003.2" id="QQ2-1-8">Paramètres de configuration</a></span>
-<br /> &#x00A0;<span class="subsectionToc">3.3 <a
-href="#x1-90003.3" id="QQ2-1-9">Initialisation de la base</a></span>
-<br /> &#x00A0;<span class="subsectionToc">3.4 <a
-href="#x1-100003.4" id="QQ2-1-10">Configuration par défaut des comptes</a></span>
-<br /> <span class="sectionToc">4 <a
-href="#x1-110004" id="QQ2-1-11">Maintenance</a></span>
-<br /> &#x00A0;<span class="subsectionToc">4.1 <a
-href="#x1-120004.1" id="QQ2-1-12">Visualisation des objets et des fichiers</a></span>
-<br /> &#x00A0;<span class="subsectionToc">4.2 <a
-href="#x1-130004.2" id="QQ2-1-13">Nettoyage de la base</a></span>
-<br /> <span class="sectionToc">5 <a
-href="#x1-140005" id="QQ2-1-14">Authentification dédiée - Personnalisation</a></span>
- </div>
-<!--l. 31--><p class="indent">
-
- <h3 class="sectionHead"><span class="titlemark">1 </span> <a
- id="x1-20001"></a>Compatibilité</h3>
-<!--l. 36--><p class="noindent">Cette application peut-être utilisée sur un serveur fonctionnant avec Apache,
-MySQL(<span
-class="cmmi-10">&#x003E;</span>=4) et PHP (<span
-class="cmmi-10">&#x003E;</span>=4).
-<!--l. 40--><p class="noindent"><span class="paragraphHead"><a
- id="x1-30001"></a><span
-class="cmbx-10">PHP</span></span>
- L&#8217;application ne nécessite pas de configuration de PHP particulière. Elle
-fonctionne quelque soit la valeur du paramètre de configuration register_globals,
-utilise les sessions via les fonctions introduites en PHP4. L&#8217;application fonctionne
-quelque soit la verbosité des affichages d&#8217;erreur et de warning PHP, car nous avons
-travaillé à éliminer tous les messages <span
-class="lasy-10">&#xFE64;&#xFE64;</span> E_NOTICE <span
-class="lasy-10">&#xFE65;&#xFE65;</span> PHP qui surviennent par
-exemple lors d&#8217;une comparaison avec une variable non-initialisée.
-<!--l. 50--><p class="indent"> Les scripts PHP n&#8217;accèdent pas en écriture au système de fichier, sauf pour
-l&#8217;upload de fichiers. Le dossier <span
-class="lasy-10">&#xFE64;&#xFE64;</span> fichiers <span
-class="lasy-10">&#xFE65;&#xFE65;</span> doit être accessible en écriture
-par les scripts PHP sans quoi la fonctionnalité d&#8217;échange de fichier serait
-inutilisable.
-<!--l. 56--><p class="noindent"><span class="paragraphHead"><a
- id="x1-40001"></a><span
-class="cmbx-10">MySQL</span></span>
- Les scripts PHP ne modifient pas structurellement la base de donnée
-MySQL, il suffit donc d&#8217;un compte permettant les instructions SELECT,
-INSERT, UPDATE, DELETE sur les tables de l&#8217;application. Pour indiquer à
-l&#8217;application quel compte MySQL utiliser, veuillez vous reporter à la section
-<a
-href="#x1-90003.3">3.3<!--tex4ht:ref: sub:Initialisation-de-la-bd --></a>.
-<!--l. 65--><p class="noindent">
- <h3 class="sectionHead"><span class="titlemark">2 </span> <a
- id="x1-50002"></a>Sécurité</h3>
-<!--l. 67--><p class="noindent">Cette application a été développée en gardant toujours à l&#8217;esprit les problèmes de
-sécurités. Nous ne pouvons évidemment pas la garantir failles ni bugs, mais nous
-sommes fixé des règles de programmation pour éviter les failles les plus courantes.
-Toutes les données issue de l&#8217;utilisateur lors des traitements des pages web sont
-traitées pour éviter des problèmes d&#8217;insertion de code dans les requetes SQL.
-L&#8217;authentification des utilisateurs est systématique, vérifiée à chaque page et repose
-sur le système des sessions PHP. En revanche, il faut noter que le formulaire
-d&#8217;authentification n&#8217;est pas protégé contre l&#8217;usurpation de mots de passe car les
-contraintes données dans le cahier des charges ne le permettent pas, dû
-moins, il n&#8217;est pas possible d&#8217;utiliser un cryptage efficace (assymétrique)
-sans modifier le système d&#8217;authentification déléguée et sans utiliser une
-configuration de serveur Web spécifique. Considérez, pour résoudre ce problème,
-l&#8217;emploi sur serveur web sécurisé (HTTPS) et l&#8217;utilisation d&#8217;une liaison entre
-le serveur web et le serveur d&#8217;authentification au travers d&#8217;un réseau de
-confiance.
-
-<!--l. 86--><p class="noindent">
- <h3 class="sectionHead"><span class="titlemark">3 </span> <a
- id="x1-60003"></a>Installation</h3>
-<!--l. 89--><p class="noindent">
- <h4 class="subsectionHead"><span class="titlemark">3.1 </span> <a
- id="x1-70003.1"></a>Dépaquetage des pages PHP</h4>
-<!--l. 91--><p class="noindent">L&#8217;application est livrée dans une archive de type tarball compressée qui contient
-toute l&#8217;arborescence et les fichiers PHP nécessaires. Il suffit de décompresser cette
-archive en conservant l&#8217;arborescence dans un dossier publié par votre serveur Web.
-Les fichiers de configurations sont présent et contiennent des valeurs d&#8217;exemple que
-vous pourrez adapter à votre situation.
-<!--l. 101--><p class="noindent">
- <h4 class="subsectionHead"><span class="titlemark">3.2 </span> <a
- id="x1-80003.2"></a>Paramètres de configuration</h4>
-<!--l. 103--><p class="noindent">Cette application comporte deux fichiers de configuration qui sont dans le dossier
-<span
-class="lasy-10">&#xFE64;&#xFE64;</span>include <span
-class="lasy-10">&#xFE65;&#xFE65;</span>. Les fichiers existent dans la version distribuée et ont pour but de servir
-de modèle.
-<!--l. 107--><p class="indent">
- <dl class="description"><dt class="description">
-<span
-class="cmbx-10">connect.inc.php</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">ce fichier contient les coordonnées du serveur MySQL, de
- l&#8217;utilisateur SQL et de la base que l&#8217;application utilisera.
- </dd><dt class="description">
-<span
-class="cmbx-10">config.inc.php</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">ce fichier contient tout le reste de la configuration de
- l&#8217;application. Le fichier est un script PHP qui initialise un tableau
- multi-dimentionnel. Ce choix à été fait par commodité, et pour permette
- de bien hiérarchiser les information, en revanche, la syntaxe est fourbe...
- N&#8217;oubliez pas de virgule<span class="frenchb-thinspace">&nbsp;</span>! Toutes les constantes sont décrites ci-dessous.
- <!--l. 117--><p class="noindent">
- <dl class="description"><dt class="description">
- <span
-class="cmbx-10">$adminMail</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">adresse e-mail de l&#8217;administrateur. Affichée à l&#8217;utilisateur
- lorsque qu&#8217;une erreur interne à l&#8217;application s&#8217;est produite.
- </dd><dt class="description">
- <span
-class="cmbx-10">$automatedMail</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">adresse e-mail de réponse des courriels envoyés
- automatiquement par l&#8217;application.
- </dd><dt class="description">
- <span
-class="cmbx-10">AUTH</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">Paramètres d&#8217;authentification
- <!--l. 125--><p class="noindent">
- <dl class="description"><dt class="description">
- <span
-class="cmbx-10">POP</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">Paramètres pour les serveurs mail POP
- <!--l. 128--><p class="noindent">
-
- <dl class="description"><dt class="description">
- <span
-class="cmbx-10">SERVERS</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">Chaque élément de ce tableau à pour clef le nom
- de domaine du fournisseur de service de courriel ( partie
- suivant le @ dans une adresse e-mail) à pour valeur un
- tableau associatif de la forme suivante
- <!--l. 134--><p class="noindent">
- <dl class="description"><dt class="description">
- <span
-class="cmbx-10">subdomain</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">adresse complete du serveur offrant le service
- POP
- </dd><dt class="description">
- <span
-class="cmbx-10">port</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">numéro de port TCP utilisé pour se connecter au
- service POP
- </dd><dt class="description">
- <span
-class="cmbx-10">username</span><span
-class="cmbx-10">_is</span><span
-class="cmbx-10">_full</span><span
-class="cmbx-10">_mail</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">Booléen (true ou false) indicant
- si le nom d&#8217;utilisateur à utiliser pour l&#8217;authentification
- est l&#8217;adresse e-mail complète. C&#8217;est utile pour les serveurs
- POP gérant des adresses email sur plusieurs domaines
- (comme wanadoo / orange au moment où j&#8217;écris ce
- document)</dd></dl>
- </dd></dl>
- </dd><dt class="description">
- <span
-class="cmbx-10">bypass</span><span
-class="cmbx-10">_if</span><span
-class="cmbx-10">_local</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">Booléen indiquant si l&#8217;authentification doit
- être outrepassée si la connexion s&#8217;effectue depuis le serveur
- lui-même.</dd></dl>
- </dd><dt class="description">
- <span
-class="cmbx-10">CSS</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">Paramètres des styles de pages
- <!--l. 151--><p class="noindent">
- <dl class="description"><dt class="description">
- <span
-class="cmbx-10">CHOOSER</span><span
-class="cmbx-10">_LIST</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">Ce tableau associatif contient la liste des
- styles CSS à utiliser. Les clefs sont les libellés des thèmes
- à afficher et les valeurs sont les noms des fichiers CSS
- correspondants, sans chemin, ni extension.</dd></dl>
- </dd><dt class="description">
- <span
-class="cmbx-10">MAIL</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">&#x00A0;
- <!--l. 159--><p class="noindent">
- <dl class="description"><dt class="description">
- <span
-class="cmbx-10">TEMPLATES</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">Ce tableau contient des tableaux associatifs dont
- les clefs seront utilisées dans les passages de paramètres HTML,
- et contiennent des sous-tableaux de la forme suivante<span class="frenchb-nbsp">&nbsp;</span>:
- <!--l. 164--><p class="noindent">
- <dl class="description"><dt class="description">
- <span
-class="cmbx-10">caption</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">Intitulé qui sera affiché à l&#8217;utilisateur
-
- </dd><dt class="description">
- <span
-class="cmbx-10">tpl</span><span
-class="cmbx-10">_file</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">Nom du fichier (avec l&#8217;extension PHP) contenant le
- modèle.</dd></dl>
- </dd></dl>
- </dd><dt class="description">
- <span
-class="cmbx-10">SUPERUSERS</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">Ce tableau contient la liste des login des super-utilisateurs
- (ceux qui ont le droit de supprimer des réunions)
- </dd><dt class="description">
- <span
-class="cmbx-10">UPLOAD</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">Paramètres concernant l&#8217;attachement de fichiers aux
- réunions
- <!--l. 175--><p class="noindent">
- <dl class="description"><dt class="description">
- <span
-class="cmbx-10">accepted</span><span
-class="cmbx-10">_files</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmbx-10">:</span> </dt><dd
-class="description">Tableau des extensions qui sont autorisées.</dd></dl>
- </dd></dl>
- </dd></dl>
-<!--l. 181--><p class="noindent">
- <h4 class="subsectionHead"><span class="titlemark">3.3 </span> <a
- id="x1-90003.3"></a>Initialisation de la base</h4>
-<!--l. 183--><p class="noindent">Tout les fichiers nécessaires sont rangés dans le dossier <span
-class="lasy-10">&#xFE64;&#xFE64;</span> install <span
-class="lasy-10">&#xFE65;&#xFE65;</span>. Vous utiliserez
-principalement le fichier <span
-class="lasy-10">&#xFE64;&#xFE64;</span> RAZBase.php <span
-class="lasy-10">&#xFE65;&#xFE65;</span>. Appelé au travers du serveur web, il vous
-permettra automatiquement de mettre en place la structure de la base de données, et
-optionnellement, d&#8217;insérer un jeu d&#8217;essai pour tester l&#8217;application sur votre serveur. Si
-vous ne souhaitez pas utiliser de compte SQL ayant le droit d&#8217;altérer la structure
-des tables de votre base avec ce script php, vous pouvez exécuter le script
-<span
-class="lasy-10">&#xFE64;&#xFE64;</span> base.sql <span
-class="lasy-10">&#xFE65;&#xFE65;</span> avec votre client SQL favori. Le jeu d&#8217;essai se trouve dans le fichier
-<span
-class="lasy-10">&#xFE64;&#xFE64;</span> jeu_essai.sql <span
-class="lasy-10">&#xFE65;&#xFE65;</span>.
-<!--l. 194--><p class="noindent">
- <h4 class="subsectionHead"><span class="titlemark">3.4 </span> <a
- id="x1-100003.4"></a>Configuration par défaut des comptes</h4>
-<!--l. 196--><p class="noindent">Dans le fichier de configuration modèle, un super-utilisateur est configuré<span class="frenchb-nbsp">&nbsp;</span>:
-inglebert@iut-blagnac.fr et le jeu d&#8217;essai proposé au paragraphe précédent permet de
-créer des utilisateurs, et en particulier inglebert@iut-blagnac.fr.
-<!--l. 201--><p class="indent"> Par défaut, vous pourrez donc vous connecter en tant qu&#8217;administrateur avec ce
-compte. Le jeu d&#8217;essai met ce compte avec comme mode d&#8217;authentification <span
-class="lasy-10">&#xFE64;&#xFE64;</span> bypass <span
-class="lasy-10">&#xFE65;&#xFE65;</span>,
-ce qui signifie qu&#8217;aucun mot de passe est nécessaire. Pour utiliser un vrai système
-d&#8217;authentification, connectez-vous avec ce compte et allez dans la page <span
-class="lasy-10">&#xFE64;&#xFE64;</span> Mon Profil <span
-class="lasy-10">&#xFE65;&#xFE65;</span>
-pour choisir une autre mode d&#8217;authentification.
-<!--l. 209--><p class="noindent">
- <h3 class="sectionHead"><span class="titlemark">4 </span> <a
- id="x1-110004"></a>Maintenance</h3>
-
-<!--l. 212--><p class="noindent">
- <h4 class="subsectionHead"><span class="titlemark">4.1 </span> <a
- id="x1-120004.1"></a>Visualisation des objets et des fichiers</h4>
-<!--l. 214--><p class="noindent">Une page d&#8217;administration est prévue à cet effet, et elle n&#8217;est accessible que par un
-<span
-class="lasy-10">&#xFE64;&#xFE64;</span> super-utilisateur <span
-class="lasy-10">&#xFE65;&#xFE65;</span>, c&#8217;est à dire un utilisateur consigné dans le fichier de
-configuration principal en tant que tel, confère <a
-href="#x1-80003.2">3.2<!--tex4ht:ref: sub:Configuration --></a>.
-<!--l. 220--><p class="noindent">
- <h4 class="subsectionHead"><span class="titlemark">4.2 </span> <a
- id="x1-130004.2"></a>Nettoyage de la base</h4>
-<!--l. 222--><p class="noindent">À partir de la page d&#8217;administration décrite dans le paragraphe précédent, vous
-pouvez aussi purger les fichiers attachés et les objets de la base de données devenus
-obsolètes. L&#8217;aide contextuelle de cette page vous expliquera comment faire. Il est
-vivement conseillé de faire une sauvegarde de la base de données et des fichiers joints
-aux réunions avant d&#8217;utiliser cet outil car l&#8217;erreur de manipulation ou de
-programmation est toujours possible...
-<!--l. 231--><p class="noindent">
- <h3 class="sectionHead"><span class="titlemark">5 </span> <a
- id="x1-140005"></a>Authentification dédiée - Personnalisation</h3>
-<!--l. 233--><p class="noindent">AWOR utilise un système d&#8217;authentification dédiée de sorte qu&#8217;aucun mot de passe
-ne soit stocké, et que l&#8217;utilisateur n&#8217;ait pas besoin d&#8217;en retenir un nouveau.
-Le code d&#8217;authentification à été écrit de manière à être maléable et est
-extensible. Le coeur du système d&#8217;authentification se trouve dans le fichier
-<span
-class="lasy-10">&#xFE64;&#xFE64;</span>auth_dialog.php <span
-class="lasy-10">&#xFE65;&#xFE65;</span>. Vous y trouverez une section commençant par le commentaire
-ci-dessous.
-<!--l. 241--><p class="noindent">
- <dl class="list1"><dt class="list">
- </dt><dd
-class="list">
- <span
-class="cmtt-10">/***************************************************</span>
- <!--l. 244--><p class="noindent"><span
-class="cmtt-10">**</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">Ajouter</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">d&#8217;autres</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">mode</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">d&#8217;authentification</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">ici</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">!</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">**</span>
- <!--l. 246--><p class="noindent"><span
-class="cmtt-10">***************************************************/</span></dd></dl>
-<!--l. 249--><p class="noindent">Comme l&#8217;indique ce commentaire, vous pourrez ajouter à cet endroit une portion
-de code pour utiliser un autre service d&#8217;authentification. La syntaxe est la
-suivante<span class="frenchb-nbsp">&nbsp;</span>:
-<!--l. 253--><p class="noindent">
- <dl class="list1"><dt class="list">
- </dt><dd
-class="list">
- <span
-class="cmtt-10">case</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#8217;&#x003C;nom</span><span
-class="cmtt-10">_auth&#x003E;&#8217;</span><span class="frenchb-nbsp">&nbsp;</span><span
-class="cmtt-10">:</span>
- <!--l. 256--><p class="noindent"><span
-class="cmtt-10">/*</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">Eventuellement</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">du</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">code</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">pr</span><span
-class="cmtt-10">él</span><span
-class="cmtt-10">éminaire</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">*/</span>
- <!--l. 259--><p class="noindent"><span
-class="cmtt-10">$auth</span><span
-class="cmtt-10">_is</span><span
-class="cmtt-10">_ok=&#x003C;fonction</span><span
-class="cmtt-10">_ou</span><span
-class="cmtt-10">_variable</span><span
-class="cmtt-10">_authentification&#x003E;;</span>
- <!--l. 261--><p class="noindent"><span
-class="cmtt-10">if</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">(</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">!</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">$auth</span><span
-class="cmtt-10">_is</span><span
-class="cmtt-10">_ok</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">)</span>
-
- <!--l. 263--><p class="noindent"><span
-class="cmsy-10">{</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">//</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">On</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">ex</span><span
-class="cmtt-10">écute</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">la</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">ligne</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">ci-dessous</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">que</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">si</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">l&#8217;authentificaiton</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">à</span><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">échou</span><span
-class="cmtt-10">ée</span>
- <!--l. 265--><p class="noindent"><span
-class="cmtt-10">$errmsg=&#x003C;fonction</span><span
-class="cmtt-10">_ou</span><span
-class="cmtt-10">_chaine</span><span
-class="cmtt-10">_explicant</span><span
-class="cmtt-10">_l</span><span
-class="cmtt-10">_erreur</span><span
-class="cmtt-10">_d</span><span
-class="cmtt-10">_authentification&#x003E;;</span>
- <!--l. 267--><p class="noindent"><span
-class="cmsy-10">}</span>
- <!--l. 269--><p class="noindent"><span
-class="cmtt-10">break;</span></dd></dl>
-<!--l. 271--><p class="noindent">Il vous suffit de remplacer les éléments entre chevrons dans le code ci-dessus et de le
-coller dans <span
-class="lasy-10">&#xFE64;&#xFE64;</span>auth_dialog.inc.php<span
-class="lasy-10">&#xFE65;&#xFE65;</span> pour pouvoir utiliser un nouveau mode
-d&#8217;authentification. Reste à donner à l&#8217;utilisateur la capacité de l&#8217;utiliser. Vous
-devrez encore, d&#8217;une part, ajouter dans la base de données le <span
-class="cmmi-10">&#x003C;</span>nom_auth<span
-class="cmmi-10">&#x003E; </span>à
-l&#8217;énumération du champ <span
-class="lasy-10">&#xFE64;&#xFE64;</span>methodeAuth<span
-class="lasy-10">&#xFE65;&#xFE65;</span> de la table <span
-class="lasy-10">&#xFE64;&#xFE64;</span>Personne<span
-class="lasy-10">&#xFE65;&#xFE65;</span>, et d&#8217;autre part
-proposer à l&#8217;utilisateur d&#8217;utiliser ce mode d&#8217;authentification en modifiant la page
-<span
-class="lasy-10">&#xFE64;&#xFE64;</span>profil.php<span
-class="lasy-10">&#xFE65;&#xFE65;</span>.
-
-</body></html>
-
-
-
diff --git a/final/doc/READ_ME.pdf b/final/doc/READ_ME.pdf
deleted file mode 100644
index 7948fe2..0000000
--- a/final/doc/READ_ME.pdf
+++ /dev/null
Binary files differ
diff --git a/final/doc/READ_ME.ps b/final/doc/READ_ME.ps
deleted file mode 100644
index 9c293fc..0000000
--- a/final/doc/READ_ME.ps
+++ /dev/null
@@ -1,2436 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software
-%%Title: READ_ME.dvi
-%%Pages: 5
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 612 792
-%%DocumentFonts: CMR17 CMR12 CMBX12 CMBX10 CMR10 CMMI10 LASY10 CMTT10
-%%+ CMSY10
-%%DocumentPaperSizes: Letter
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -t letter -o READ_ME.ps READ_ME.dvi
-%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2007.03.13:1229
-%%BeginProcSet: tex.pro 0 0
-%!
-/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
-N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
-mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
-0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
-landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
-mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
-matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
-exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
-statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
-N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
-/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
-/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
-array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
-df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
-definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
-}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
-B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
-1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
-/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
-setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
-restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
-/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
-}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
-bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
-mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
-SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
-userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
-1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
-/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
-(LaserWriter 16/600)]{A length product length le{A length product exch 0
-exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
-end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
-grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
-imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
-exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
-fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
-delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
-B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
-p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
-rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
-
-%%EndProcSet
-%%BeginProcSet: texps.pro 0 0
-%!
-TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
-index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
-exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
-ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
-pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
-div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
-/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
-definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
-sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
-mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
-exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
-forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
-end
-
-%%EndProcSet
-%%BeginFont: CMSY10
-%!PS-AdobeFont-1.1: CMSY10 1.0
-%%CreationDate: 1991 Aug 15 07:20:57
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.0) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMSY10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.035 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMSY10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 102 /braceleft put
-dup 103 /braceright put
-readonly def
-/FontBBox{-29 -960 1116 775}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
-7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
-A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
-E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
-221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
-27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
-5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
-0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
-DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
-71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
-4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
-515DB70A8D4F6146FE068DC1E5DE8BC57036431151EC603C8BCFE359BBD953AD
-5F3D998C69E42AA96AA212AD55B676FA2B4F6B519575404233C09AF99014AB95
-767523D9E1F8806E766AC0DD6D81028C3AA9C7536D88D3C2DB6D9949F844935E
-420963F40430452DEAAC1F500BFB1C2473C54B9987BE449F042633C7038D5AEB
-7E1E11C50911EBCF0979F8192E056A2B2EE9785EB73B1AB874116AD5AA74F32C
-BF57FC28FFED335DFD9261AC7A624EAA93BEBC2C0F8B3F898DDA1490D59C6C4B
-A651746C8EAD41BDAA1AF4056AFE98D2D3AE3CCEB9C67FE3A63385470EA42968
-34268684A674675AB9EDBB5BFCA81224B22D4ECF40D1F31A39481AC68A87F252
-F4E7C1C340A26E0D514BACCAA51898758A7E7B63D2E7F34E91554151433F0FD2
-4901D3DE9A5FB9306552DC57EAB729AA07780927E1ECCB5D1F59A09A1E3FFF2D
-922B6C9B58CB20D687A72B9C22D4EC926771541EDA3B75559510DB21BA4461EA
-960B8E5AF4D31D08E8F235D677A9F6EFDB01926967743942C23955678E438F51
-E5E22E2FA2AA7894755053C32B39277B82C00B3D9BE9957CF3ED626852FFFC31
-6E5F0F7489198136A3284B31CC94299EED05B8FA66B8D33F7C47367790D23CD5
-303B0C8E58B0E51BEA9325282F19A3D361A3BEA6BB0CCD09BE735D810E7E0A79
-D1A9C580CFC8CF9FF685D63ECDCCC024C235448BA632F00C3C5BC0E86F44B90A
-293817CC93035E5E18548A7E157C2887309BF84C167D8DBED024BB
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMTT10
-%!PS-AdobeFont-1.1: CMTT10 1.00B
-%%CreationDate: 1992 Apr 26 10:42:42
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.00B) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMTT10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch true def
-end readonly def
-/FontName /CMTT10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 18 /grave put
-dup 19 /acute put
-dup 33 /exclam put
-dup 36 /dollar put
-dup 39 /quoteright put
-dup 40 /parenleft put
-dup 41 /parenright put
-dup 42 /asterisk put
-dup 45 /hyphen put
-dup 47 /slash put
-dup 58 /colon put
-dup 59 /semicolon put
-dup 60 /less put
-dup 61 /equal put
-dup 62 /greater put
-dup 65 /A put
-dup 69 /E put
-dup 79 /O put
-dup 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 102 /f put
-dup 103 /g put
-dup 104 /h put
-dup 105 /i put
-dup 106 /j put
-dup 107 /k put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 113 /q put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 118 /v put
-dup 120 /x put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
-38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
-D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
-EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
-A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
-F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
-4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
-6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
-A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
-E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
-1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
-452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
-8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
-5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
-DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
-BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19
-741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79
-E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712
-E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7
-D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE
-C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DA
-726405EFE420635B5B7F0B48752C06083E92BDE06401C42A2C528C8A60381227
-CEBEF0C9440DC034DAD9C19FB27A350233112B0A339366B7373CE058456E0E1F
-139E2DCAA12133B5B6017B0E08E776403F967AF719E0161CDFBF8BBE8490F57E
-53C78E97517EF7FB7C00035D601CAC8F4EB2F16F8765614227C71C390C32E960
-FC7E9B9BF26D89F808B05C2E483B9171450E4CF3A86E62886E826B1E34FEC34A
-90D3FAC2AF1FB275E094E8D7193F90BC0CB304DF4D689A954C9449169527C39D
-9CB9096FC455C5D6142157E548E04DDDE0638C24641FF3EE31B1E35E1A76EA79
-F0DBFAC9967E6C649559B6CA9944962E09541FBB7A00956D1ACA7D8C2355A2C6
-12CA44A7392D8E791DDE1DE818BBF26CE3BCC2568666FCF40BD9C588E28745D4
-49186EDEF6D270E5D8C9BF95B4C1213841128AF3361EE4B989D3A784F916A2D7
-D31A9F2F0C3E4F367427BF3F0C4F36E9276D082BF8C250E469D647AB51DD7701
-4C29231FEB055C147F0A782389800E3ED38D7AE8C6555228CD148541D763D325
-21016A8A5234A8AC19BFD6E3346A94D8A7479DBC59B5796D3063FCC2CE8DBCC9
-1E4139036B4E883A4CBFC0DA2F3BCAAF8BF4DA641882E8CF028D9F9271257FD3
-0872AA684B19CF706474B4F86EE510BEF0164F8504578A9FAE4339270B8C5D81
-496424BE58438D5ECE95BD18973CC66F471E7CA58039ADB2FDEE9329CC788A19
-E852B137500A6F32DEF2742E6C2B182FE2777150BABCF8A2C21FC1FEEC3765EA
-8E337F9BDEC3FBD5D4D7857FA703F282EDA0DC7A22E2E44E131DB5D9954B7603
-E2934111D6B57CFA826DB114947DFA87EDCC6CCB33146C2742E7DF664A3BCDA5
-3335EDF6A6C7290939BA0D9937F1D6FA47522D0DCA42AFC7E0EEFDE9B914D5B4
-8039D2C3F063EAAAE10516DDF3DBF97B5F87EE9EA959AC738AB6CDEA63DA8862
-7F7EA32222690E7EDC6F4B3391E834977D476B19D9C14D92420122A733E735A5
-EDED2F02D5A7F3347CB289CA2A440945544A7677C4BD7DA3000FDEA64A4A6E85
-4C1C6C4D16A91AFAB0B84A485CDFC5EDEB03E8E93218694C5426650444AC9972
-98634CB73BF34252A72F838CFABD9F667EB050C113EB222A745B878098AD2C48
-7C6F0817AD96EDA15FB9061832CD91B4270098246BA8D5ADDA339A49DF0292AB
-6F7FE225D100F67F3DB412F4D95D464E27AEDB8B76FC8A0930E649E3EE380FC7
-6ECC654D9E901DD295F0A23A3CE88018A2ABA18977775D14695AC02F91E46549
-036939DCE6CFC8BB47CB297D9FF205F900A06DC9F65D2851C66443BE520954B9
-1C98471D8D7746AAFEB2A662A79DB89AC3B2DB327183ED0D4D52CEC819A49BB4
-7E7D4D8B871F85AD43A0441CA8EE86C209F3256BCBF4C4DDF209EFD7E70245FA
-E072B99F1F20D4D504AEAB512F477C9B998C466E01238F9E87B3FCC90CE1A90D
-4B1A422BA0C0293FD9F58DD4F18ACEA7029B88EB55A2FED83DEAE9F573E9FFCF
-05102DC9BD02E9F6D150F3E9D1DFBB8962048508B859CD190DA15732F8D210B1
-7665EED21506DBABBD0E2745D84542555C9FF9ECC3A8043E7EABD1ED5AC7B499
-CEFEDC3164C2C92F5D88C67C6545E9482E70E1DC2C32117ABF99FA7726A43956
-6414DA5B78F70D7A26A8937CB80A705C8048DB26F0CEBD5CCCEA416F19699DF4
-6443C056290A555F50D9BA984B4DA2A19B2BA12E39CAA1EB432E4DD6D2AB907B
-3F20B8A3D0FFDFF3258A7AF82A927CD4D54C2F56C1A2DE4C38F1ED186B7F0578
-33B918CB01EE5A839042AB0F740455F1E4DB53A21822CA65333855109335204B
-32B6C05D5BE9D260F4AC010996C7CD7C0FD3E5EEA9A66493ABC66E74CD096FED
-0175311C18C6F3B577E3C58BFB9A09FEF317B94AC7A1226DD67E2A3A3552CAFC
-4314CC03CF0B48320EDF3906F21621B2D7BEE3698299B70EE202F944CE2A903F
-6410E7C05A79809B5C875AAEC9A4205DDFC737B3241CD6FBA5327CBF30007B57
-4BFC1497DA3FDD05D8101438ED5BD186D5D8DABEFEA21EB2F25DCB60E2DA4BD3
-6E782FEECF9B0EBCB42E50FF504E8A40C0BE7C6A43DD5BFF2305518944270A32
-34C2D562F9B1A2ACF8C05E3FE0418FDDB10776C8F96B6DA2B554A966C76847D7
-194CF2085C9D9B729CF9DB043259B64A98F96ACDD926E7A27BD6C0A851B0FC76
-26B7C8BAB18706BBBBEEEEAD8B1475B1011A402EFACFA98B097B26A733529730
-FC03A63DB45273DF559D98450186FC0DE013CCAB58E0BF9B23858BC144AF4AAF
-584657853F1893F49595536AE79FE8576BFE7320100B1B84E4448B0399C4726F
-2783F9DAD23DFD164C8161702A2935C2588CF573F340DFD3DBE1E9B0D813AB8A
-C3B13323271662029F9CCD1FB0C45EF425FD4D993A79874B70E579EC97967FC3
-702A9C2F35B4429B48209F97693806A4D959E7831950E43972E39B38FF86AC27
-10822BAC05F1AE05177DB365E1AB065E26FA661FD8207A8FFA1813532E7EC30B
-D4E53E9A9ABD40680B88AFAF53FC0571E6AE27BC40A0F76388E5D0229E2E1595
-B503B126B7EEDCC999ECD51714D62F551A0B96EDAF1E79CC134782DB35684CAF
-6B740C64F3BD1C89C5AAB48948F52B2FFBC9B1DA9CF690795AB1A3BD7833E4C6
-C0D4086BCD203525410C86C67092B374C9C470E7945A283A16C13CEE9082F647
-3E2DFFFBAB9838FAAAAF0587D48409EB39FC15E666249FFE4A7F800FAE1F4283
-BFB8D88E617E66DB9EB13EA2D41D0BF78158FEB44337804CCB239322ADC61B91
-9419AEC7F3F21374969D91EF2B1A4B13E8588B4987D5C7969C53D292E11C2570
-7B0F5B31E54EA40288EEB3DCA236D122C5D18E8805091C8B443E7DA62C87BD16
-CB4701563393DD13E0C0E7D18B1B37A39837FE150D1A7EDFD2143C33B0EC4428
-2B80952D456CE5183432181468099E9C0B3445AFB24DE79A664BDA3F16B1EE4D
-D1DA546437D8569BD9EA0B561A0E7742A4055B8F921F02CE9A8DBB5442A9997D
-85626AC2847CBCC69FEE0FE0C50CD0063856A60581C78A9C06347A0F2DC39496
-81AD75A6B5E26D74EE09EE581063774F1831C26DDAF910BCAEC550975C0A7AEA
-F9954F1881DB9C496D2197ACAE6A8069ABC257C846BDEEB1D15943FC436B2DEB
-11A1D0982DBE0CFCBAB99F52FE5089AAF2D8E16D43D6D1023D4ED077B8C95BCD
-09C050584B5F1E65473083CD46C10294187FC277D8F655CE5586D6CBD8C2C145
-1F8DC42A4FBF99379C8FB8D8B5BF501BA6C77C4F7983C3F7F7AD4BB5CEB681D7
-A66EF51E3D222DD88437C16EA4CFD8B31C0644E36F0C968C76A7F2FF3C0462E9
-9497A8D6000A16BCD597E3000E9F85E10F0032708DA7B50FCC53D89BEDFDC56B
-7923D6130CF9DB95EF5CB83D01C07EE9B4A5EC5FEC0174DCAA262951747B6669
-D56F651E980237B5C7C558DC0807C3946DC1AA63F0630D5EFB998EDBEAED3900
-5FE4DE1A2AF923B42114D546F936387326B04626B0CD44A0DBFB8B083ED63200
-63AAA6B24E828A62F0E8CC307D1EFB42E738357138AFB63E60752E1ABE891828
-B55B19DC32FFFDA3C41DF9F05DF9239AAAB9F196BA68A763082440804C7B3AB8
-FABCD82C9F552F1AF2CFBFFA1585389CE5A2A5E984CE02F92A91869A5ED0E039
-5B3F9D7E1FC7A070FCC41F92031F5107470AA90D7B535221A748597CC188DFA7
-DA68616806D95752FB176FA137E23517467EAFCAD8FDE4E3733D64E6D9758DAD
-6217A2A3C08DA70DC64383B56260575183A08772A7B5657501ACDE1118C5BF44
-9CEEA3D86F0FD2B43EFA5B8F1F58F99168683B393A3F9E84EDAF1D4E92398812
-1A0D12AE549B3557D0150CD0ADC04DA4C5B2D40E7C64C36A26896D6B8401B48F
-779C3FB593C2A9A983B533A7C99C9E43BAFA1FC9AF5E65516D2DA32924D352E3
-8371D19559A6FF8C311332C473BE41E55113C711C6AEEFAC9AE3A7CF0011F531
-61C693860994A44793336AA158634D9D756B0F98FC5D3E6826C71F2A1C4E1175
-EFD1047D682263F253E64B0E6119C09CD02016FFE5D7D950C26829B6F41B8798
-37A467DBC484991D9B523BA441E405C395E5187B6264D74FE2E3E82910BE26E1
-5EAC9874C77B5EE2D354270ED47A774CA5674E18F25F4BE6755B7430DD7F39DA
-F96CB74DE9C91B00DCAB75876D4586721AAB696EE3290D9F05F39A01695B07E1
-7DBDBD379B9225C291549E5D3C4A3D95B1ED277AF176890E32B2DA66A4DEB9E3
-1DA246BC679C12E6E2ACA3404A185C10F21721E71D84601302776E36F444ECBD
-BDE861941397E6ECCAC4EBE71CC0005266E40AF949FC001CE132B71789E0F037
-FF3B56690BA309F623DEA80351B1E5800D809790EE7C96DE82F264BBE9AEA406
-577009EB689F8F9EC15641629C107D8986323703567B547110A99DAF7F16C623
-4F3029BC7E504B4C37B646F9C49CDDCF2DAAADB748686BD9F6D0B2EDAB2051F4
-DA20EB487266D9C55F9F5767EA899C0BCED7720BAE6362A7AD81F5D45F6A709D
-3A27E50491A46CE17E585FBF9EFC2A27FFB50F00E4B05138C7D4F45A40B39E7C
-2ABB5DC0DDEE77E4BDA3901A67BB93C52241384FCE35EC11F67D6C8677C9F889
-F0FC365893A10E11CEE5CA0155064D8D2E98699961D9B26BE86D4B9A5E2786C1
-3CF260A03857687EA6FBC83DEEF840ABCE7ADBDC897CE6B06F6DE55BF3B8AB6D
-777293FEFC61C6DAD78894C873E162A5510A036FFFD9A10977CD627AC3EA4715
-F25A263E6331EEB9BE68DF97C946840841EF83204D9D313202C4ACA7BAF94050
-3B420EBBE797566277CFD3A7FA1AC6CF81FC24E6F336913F4A183B93BEB308A8
-4AE0CEE98B45B2C2683CC06374113AC12F79F98BD19D67F78E2EA586B518FCC1
-4C8B5ED575DD4631BCEAADABE1E9742A364C0D149AF83FD9AEB49EE0E12B08E2
-C4FC73A08F572AA40B58B5B44151974DAFB1FAA29B4D74038519590ABC83B0A8
-A22BD5BD843FB4310EB1E6552B45A5C64F2046DC330559996E77FEF47B4F2062
-3DA41A9E030757F4957BE97725F1DB6FBD15F144F5EFE357FB74BF758AC56A58
-F0F76D03C776F4CB58D7F549F11374DB4E2DF6A8DCF76F0EB394EB110A0477BC
-65CEDE077AE2D013A8E46CC2E4F0BBBDE546801E24FD5B9A6A4935F4799DD803
-13FAB011EDBD4431C31C86C4D26C0E729A067C2DEC602A5D884F43BD62EBF59C
-F552152162E45D18414D77DB32069C5B3EA64F465D6516335F3D243235FA3524
-E88FA64170BAE32117A35A9C7629DB90066A13160727FCC45C0BC95145AD8913
-075D28ACA02AFBD18B1A659C1DC229D0A6196A308DF639A002EC3A2962B4DCF1
-E9766188B7FA2448F7E3851F896CCE35E5D8644BB33D6F7AA17B3D2E03E2BAC7
-98B122F7370B1322D0A0CA0213CD918EC84EA6FA5BD45EA3B0E1C8EC168D6AA9
-6F6D664531CC8960DB40327B224F12C487FDC6A1E7211D90612B36E02FB7BE85
-36480D2293549DCFD64BEA4DAF4E1281E4FBD4C006C5200BB489246A7EE375B2
-A10826BF9CB311EE708421044375DB5F2165E4E07601BF25A1BD569C31A44CE6
-7E92A0E99939283BD2205B28808FE42C97DDD2C5B6ECD0ABFC114A3244B06213
-21399570C91AD742C71818F58AEF56EC10F0ACC62A20B1F4B9EB01571548218A
-CA7D6F9AD9B97D5D03883B8E1194C5BCAA032BBDA9E71572C157D65AEFE2EAF6
-492E40826F692D743DDC26120F0AA543E72E5BB697EE138CABC3295CB819C08B
-91F4CC16F5D3FEB1E839682CE56588BFFD94869EF54E061340B5E72257C4901D
-BF10C71313A1B9CBC7F7B01C746E9E26E670CC7EC077ECE404425EADC54BCC2A
-5854CEDD7563502EC2FE222F66BA55070448D829E3ABBCD360036C0B615E36DA
-25911D22FEB2BF2C7D948AD56BF70822D30E4A4B1DEDCD6B531D195D6C7BBE0B
-201EC0D8B0D68CA66A79C6968BE0879183BC145413A31466957A467B898778AE
-DB9D8A1DE94A5D3FD3DCDA47E121F82F84BEA873A053AA9FAC7D9433C14BBDAB
-FDDF6B0A4C73259C8CD62527511025A0B09F14B9CBC0F61A2231A002F8A6B63F
-4BB27CC0E6B9CEBDB49561C8BFC5CFEABD91C3BFBA8BF3C0850668A6C55414FD
-E3C4D537DE8DEB01A71592FC464ED5C8F43161AFA5020345C1624580F54DFED8
-00F8BD0C0BD0D33D3EAAD0896415FB3F11B6B79FA68DAA3A7C4CED48F322292C
-F56F1D21FB55A1ED75AC0CE49334CC8476E08E2A7C3A44F09CB8F78ECA27C5FC
-8DE7AFDA8EA8CD255CB0A72130797AC2EF0F0EF4BB9EA369CD72C068EDD01480
-8D8D0B6292FEA04E936758B4852F58FCADD8F9577D77CDCC7DCD3C9F0FF70EAE
-E676F83CFC7E5124D4A3DC3A081A5AA9AE33A2B13B416E5E032719A388955CFC
-2A9BF6F6D8CAF1D17A86E0041ECF792C4AA3D7CC7A962632D7B4C922BD792BE8
-14C684F6ED9948D2E4291036E2C8A413968B23287A0420D9E141952401E4D1D4
-1CDFFBEB8A5FAEDF20F77FC0BCBFBC94AE4CE330E93EF85E70449F662A4C9C93
-415406EA2619735DDFD879E27F9F90A0950B5508F333C7137DB094F9C3E2A648
-AC37B7849B07DCA55D5FF6FB36481FC33D7568469542DECE246F3D48C812BD27
-4910E2B22CADC88C4137A9EE44CAC9ABE9BAD8C73B3C6FCE1D91C6D4AAC76057
-076A88787D0025778E825B17D74D11C8FFEDFFDABB17E2825EC0FB52BDC32F05
-78E1C412CAB1C4D808C5B49D121E5B63914EE3766C2DDB8093EF9DD5269642CD
-E5EE962EE1636E905E62D4D538B595849D14E9EDC126029E2130FC68F1A9EBF2
-F48AC67C7125770DB92090A1E41BC52F6EE7AABD4750767E392C6BA0D751FE90
-AD495954AC54FC1FF8A10F1554DC479404264922F0364071118A9FD48B261653
-65B441634D4CACBC1BCCBD456F9C581EE3437C57039DD63E073E0D2167501081
-485856B43837F64A06A9FB01716D2A175F87E084957416CA9AF22F5B203BFC99
-AAE8C49988502160C91B026E2CD029A8F4B22328FAE0D7D31B11523FC275E7D6
-7DD48755D43734110A4EFFC4423545022E59FE75186D4A7164377C6454F8AA41
-23D5B97851E6FC0921AB5DA9B5F8B2C5835C2B6BCD8A0D02A020D7CCA97FE4C2
-E6DD5823BB7E113D31A8DD39E0BD931C56FB6DD818404B7B65B6056FF4D9754B
-5F70C9A2C6FF8AF493C037DCFEF55E8952E50E2617D9A49C9E7AC63F944C9517
-62A46F6BB0964E04C361A567B8ACBF9CFC369A7080A009EE679C25613953BEDB
-F96973E3A1DD1497C6E376E1029F3FE570E42F977C36C94F5FD338F243C66D22
-F2AF9FAFBB04047A789EC6043C2EB96C21450B11D25A59EDE8825F10AFB2ED99
-55FB7FC704D7B19B43329EE34919221EBB323A3F7AA7EFA10AB170F84BA486A5
-B14A49211F5D83510E318CA55344C80749364D0C523C8B65DE96C6CD673C3D79
-47F428C0C783810BB54CDDC6A4409CC57C9B627E4AF6B44EE83E516AF8FC51DA
-370D4FB0A41B35E868862A183B20114A8D8B577A4E1C274E4CD44875403AB236
-9AA6BBAAC8165DE9EF789151A96E8EADF67AC76E073F9E6BFECCA0BF75A4EDD6
-17D553C3AABCB5C5764405AD3C94D8A54517313C35624CAF96E813947DD0B1E3
-6B76D7F2D089940304D378255DACF0F0CEE0446C7158BCBA554B3B105B3A80E4
-DFDD9A41DA6D6BC69A6BAE21C37C4B25FD255DAB45BA1D5512FAB359C6459E1C
-665A7BF9E073977A0918339C1F8AC3C30D4D74EC97C66DADC47C9012C3781609
-F850CD086B04A1DDD9AA28AED8122A02C24823234FD31F396A192D221E3D378C
-E44B2200B24CEBD1682E9C26D45A9323A37E48EFF65424B85846D64D563A2AD9
-E63292B1485F5ABAE4ADBF54EA065C5048441FF0A0CBB10D480936D364CC5654
-BFFECF0C2A38489557A84C5667C5DCAD5A4E3B85F3AC770D81103ABC1965F3F5
-C9C887FB3D7FEBECF64315D2EC133B7469263ED10BFB9B4950E3AED113DC74EB
-9F381FAD3560B5BFA876AFB34E9BFEE12949063943EEA5F65A4AF4749B0E15E7
-010CAA9C7C6CA9EC2E33D2569D7F62B1FB528C5B5BE1CC6BCF217FA4E1006A0C
-ABE037E82F10FA4734FCF14FB4E03FC40CB23CB5F0A0E9654B10A54A131ABD54
-F610C986E1D94AB28BED44BB9ECCE0AE22EE9380B07B01E785A5292EAF8FFD39
-622A7A8EAB9236422239A0BA57ED81D4E2072A299A8D7CB76848606C90B9C06C
-4E5E54E967A77E2EC1E3694370311320FBBA2B2B9379F3021D5A99EF9A7C419C
-2AADE194C437EDB906B2205F0A412103DC40FBF93579E699A67BDA18858C35A3
-72F73E90D030C6456B59C339069F144783EFCFAB14E7159A8ECB9B0C80999B5B
-32E6F3D330DA167BA5DC3558012C0A32521904EA86E0503773D1DC35D512E77F
-E96C604769A529E4F66CF17B3612A687BEFA09347A37A4B595FCBD63187138C5
-FAE7BA4EFD0F605652D6658D699049DD525D682721775FEE095C45F52E0193B2
-F5DFF39F9F1CED442CE7D351FE3DBEF0019F65343EEBCFC149CC82030D45DB3E
-9FB5F426A5DCCCAF9AB592D7A5A793F99E259E3220A58F9C901E103D7CD721C7
-8333F4519F3926D9056ECDB3E84C6870447ABC0A2BF1A32A5CEEEB042C7553B7
-90A130CE5EE0289EDBBAC28B8F11D3481815AC6EAC746F45F7D72A262448DDFC
-F1F4B5206D5C331AD195E7BA74036C74C5B84576603E380AEC07062FE1063C59
-3942E6D9F19C93F90B1DFA3EE57E4D5D527995EFA611D32EE1E483B81056D3B9
-30F1D2DF8AD13A88431539774BA5B148E4EFBB9F2113C54E2831ABD036663D0B
-6B75B19BB681CEA9C64DF48805EB4AE8D8CF7D102BFABD9D99BA8574FB1000A2
-586F547090315593FC6F3B2775770DBB7882425AC88A106B9B04832A215FD0F8
-874F46559EE9834EEE8CF349C7A2720E27E52C56DFAA696EB697B5C0D105DCF2
-CCA41D62200CEAA609E9412A57E84C43AD67D30CC5AE207552B3A5173A90E50D
-9C7B16886BF6C07B49451530665C8684A9684D17FC0D6434DB503BD770FCFBC8
-06B8AF060E05C9111375699E6D898C00BFC9AE0DE977F13A23763CC5814A1ECB
-9CA65D863E26885FE22EBFC256918090E0D8EB3267B8DDD9F03F1469E97A0DE6
-9A6A296137DBE9E3BA094A4372AA30EE525BA638DB2DE2BC600175CD87B3421C
-2B60FF41FB2D3CCBEB7C1D12D7A618C2781155DE1407F5F5
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.0) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 12 /fi put
-dup 18 /grave put
-dup 19 /acute put
-dup 45 /hyphen put
-dup 46 /period put
-dup 49 /one put
-dup 50 /two put
-dup 51 /three put
-dup 52 /four put
-dup 53 /five put
-dup 65 /A put
-dup 67 /C put
-dup 68 /D put
-dup 72 /H put
-dup 73 /I put
-dup 77 /M put
-dup 78 /N put
-dup 80 /P put
-dup 83 /S put
-dup 84 /T put
-dup 86 /V put
-dup 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 102 /f put
-dup 103 /g put
-dup 104 /h put
-dup 105 /i put
-dup 106 /j put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 113 /q put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 121 /y put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2E064C03
-13C2E5064E4FB036548B136509EAD0CE1430E8DEB4A519BA4D453CF1A9D08C0A
-1370543107E6ACFD6B0EA546D6AE20957BBBD632AEA43F0D35195DD85E1FE38D
-9232D3F01B25A601E60C7C08210899521C600251D5A7DE2EC34DEB235CF6D122
-C41907F1D0A9B6E6AA98A95BA8A978B7D3F0275FA21137935B1BA53E81AF302E
-909F22939F91C57C2348E8E085DF39BFC1EA7921A5EFCE7C6ED845006548ABAC
-3B1C34CEFF31F0CA695352CF3B5E0972F82341178F42A34B85D8F66DFE822759
-EC1CA1BF94BEC645BC4D21B32EB2ED15D19EE2856D554D227313294DB0B2D9A8
-C76A7C0D9591F95741D80B45E803788990332DC2353166D899AB085729208770
-74483B0FA3C2C60B3423B162044839B6FAB217AC35C6387DAECDFBF8A8A737FE
-185F2FB4C1541B89B9FF8B93E6CEF5BB0F9B9952AACE0ED10928DE45435C4B4E
-E447F1AD61592F900C77FB7C72E64A28403AAE2F4520310EEC70C446537DFDEA
-DF4359CA2CE513D87589CC631973179DD6E1AE23E53921FD1A841A90D38F47DC
-30F66556F7BF1E05CE14DED5C7089DA72C40B4C44FAB4605F96FD152371B93BB
-49C5AC1285CECD661945459A5EB53015D07E10BA67911019F8C84A8823A7F4DC
-A995D8B1E661483BF883F7463BD941D5FD7C350291CF305C9B2CC35131C324D8
-CAA9C155DFBC1150D23EA3AFFACA3FAC5D71CC3F076836DF36FA334FD94D06F5
-4AABC54D16F3AA97F6A164A3CEE5F8028F740300097018E3462AB81577E2497F
-3BDDD1A974FE984B721DE8C6FB5D2831876A1C8E1AD143451765E99EAEE82DD9
-67B5489546BA5CEB4CEE8171F3964A746699FA3054F85511B71AFCFB8A6A143A
-A9F126C167EB2C93D0CA1A648DAE70979CFF590AE1417400B66E1FEAF388613F
-9451F520BBBFEEC6E50BBBA0177FD5430AB47BE66761F490537C03FF333C7821
-61AD6FCC384F6A5F4F07B2B1DA50B3EF8FEB9A0C73FBA743BE8695F0331F361F
-F43A511C8FEB2274FF1AB3713A60DED4EB43A25435F5519000D68C78FB844EDF
-952ED6152D650A91A64F870374834119B28233715E228D2E9EFDD1571DEEC597
-8795250D17E2796A3013E9E1BBB5ECFE2CE29F387C860B87DD499BCD15666004
-FD6008BC8D1A8D3F84B2D5F1AF0A1EA4D05385F36AF908DD66227BEF7BFF6BE3
-FAC8FC06C52CC3DDD060A4CEE689E2CB3E47D6C0575B6F3C73EBE28E98191F73
-8C8ADF27453B58DC94CD68437FF99F02A78B6A277304AC26AA9DC21511F7CBC1
-6A6DB6759FA5CFF28F7B1C3569C8284FF42C63C5CF0155AE7F42199E5A3715EA
-BF65A939F173618C61AAEE1C35C4EC4BC15B29EB6A3799A2EC26E4B9D4A24C99
-0531D99928636146EEC0475A746D7079EEF6EA939ADC9AAC19C28116D2BC80ED
-7E2F58792DA34AC8E65083ADA7D70F4D019C1769ED665A42305FD10CD718A27E
-6679D78234729B44D86FBAAABB4F4E5A13189962B37D602AB9DBAC45621B3F6C
-E6CFB15861F3BCA2F089D635C3040B582C0D5D25C361F7841DF3904B5BDFB23D
-E0FEC3D7B55C5FF5CF4E90EE20744CA89D5A8B837F61DC175585F452BCC96A0D
-FAD5B210F6C783C6F986B1B8273DCA5AA059251C37E68A3450DCE010B9348CCE
-916F08B2FF702B996A7B965756A23EEBB57BF02F6D8784186A1009C6FAF71E59
-64F282E70158CD4C9AF483FAC971B3981B3C7CB27F6DD5444D7D451CF8617FC5
-2C3770567A2913E7362BC1B09B1CD05D47D31173195D01BCDB6D2FE2322F8A66
-E54B6C93DE29D1EE67341F40C0EBF6DAC95E0B626A0708B31FF688B35EAFCE3C
-6FDF759FDEEC357DDF44028217547D0271C587B373462AD9069BF54117A17405
-A6B495B9C406B64F6652B7E0E40EB9526DFD4CF86DF6C294439A0F1F7EEFE9DF
-352ED2FC1DBD2280A18BA536AE3091E02192801AF43EB47C1941C4B0609DE405
-163A8840C553CCBD5198EFC7843119AF94C14B24946DC1C0132B33A02D24CB61
-07FC4F69BB1EC6A1EF2C95FAF2BC3FFE6328F7DD5001257181D5692B7A342B60
-733C6AD92B7176EF777EDFBB0116DDB11D6314D92DF13611E2904DE148F8A1B2
-D85D274A7B0100BA1A2F1D18CA404F0268DED666AB2BBA006560209C1593E563
-1EBF2A9A26B2810804806AEDF9CA1C16E468DEA1AADC36BD103B004EB1BA1F8E
-95DCACFAC47162CF34219106CC03D4D36ED72C85AD91971AA16B55F60CE62A37
-320CC49BE3D563BD479994EE19D79EEC05678D93181F4BCA9D5FAD21DDE1F9DB
-AF0329CEED9E6C52DB5B43BBF32D54A8D517CBE7C531C3B7193D5C002B14E8D1
-9663E6ECD455F8F1F3A6EDD072ACA0B3AFD9EB7AD8BBBBDCB92BBBC9FA180941
-0C09795F34B71A0851B3063B5F1520D89EF0C4C8B19DD6B4C84D13AB03D65633
-28B6F1129D38D2F0751591ED06311D473B859DB02A515F431979E2FF958861E3
-22C40B1C707761E6C0DE45311C0EB08C39FD68D07F8D484FF6EEA6FCF937B713
-927AB4DF31A781184F1A05672452CAF150D26D6267369A4F704AA369D6ED09AA
-B0D816A6B8DD82DF713EC1018029873D980DDD4908A943C8BFF6317E05B21DF1
-1967F084B0E38B58B03FF81FBB9918BEBC8BBD6090123216D9EC57FCC13D0848
-08F6F13155012058161FBE407900624CA6A52E4DABD28D10DA950A9F7BF9D3E1
-8DC09F3C2809B037154AAB286036D3496F3A0E09804ABDB0ECC63EB1E8C6CC47
-AB0750EAB7DD4FDB835C13754C5FE781FE2E80A0E59D439A0EB124AF87E12A60
-C761BE135F2AA7700EEC3ACA40CD473EF2C29CFD4FAC16BB8C33AD44821BE014
-0B3DAC12B8D652177DA038C0807D2FB91F7C200FCEAD90C54A6BAF411A3F0D03
-FDDE2CE9CF3FA21B738C217C159DFA68DA642FEE62F81BF4BD6669CD19C64E1C
-A9762DBC3CE34CB63F927B1B97487D91A4734FE956A25FF52E890649681094EA
-33B65342017CA48001BCFB6553E76BF33D486C2F1AC58385E34F5F9CD17CBBA9
-18DCF8A07CE105E3C8E2F68CAD80973CEB6DD6A3FF621A0C497DD4DF5196088E
-733440AC2225592C85419F50B8D9EFBF003CAA40B351ABCC8FDA09C672EBC90D
-5454021DE4E83F88117E12B84F944EE30AF7188428621B9271731346928DD626
-A270543570ECC7381DDB6F141272A319024773908C7ADD9A6A150A419EC46907
-6B9A698E94EC5FBFC60AF0C05F680C9B31A148136496DAE7E06A8D41AE456D48
-2C9A892F0A84D6F5181F097ACE07A931C95003A88774CF0C75E57F3CC7A734E3
-D1D8E68218BB49ECB1228F36C54240F77F68BE47651D92FB90854F7C2B0BC424
-301DCBDABB1C1FF1087A123C085291CFDBE744BB6B9E4F8A820777639487502F
-CE9777BE51B8744B00BDD43C323848D0EDADFE493FA998B9C64B9A386FA56361
-D29C95CF34F98A7B5C5D5EE6677147E2A6065636D4614582EBE08B549C3E7011
-8302A5C55F198F793FEB51260A86FCAEBB4A6F12053A64E91FB8FE2127335043
-F56BC57BD9B7A218ECBC579694F22E154CB708806AC19D8A352F2032F924327C
-E6E85466E9DDE0BA73A253F08CA279D247BE984CAD4F99AC5115E803A5F9A65D
-C978FA3746431F7DE3E7603489A44A582AD05A715AABB7E2F510B7554E487E2F
-039F4757BB77AD428C8541D11AE29287344C04B9382C41CE0E848BEE3557AC54
-05150D36FD87986612C5C7C563124004EA1AD708708FDE5DCAF3E196D6CF668B
-6E97DD480EE5516C7537760D8D63DF777276E73F2703040CE8FCF7AC2946E929
-2F1F8FE8C6423C49CA41B0476ECA2FA84C7CE4B7CD68B4E232FE98DCC13A9749
-5CE172E850958BBEC4B9571950C359EA9BFF6D45E6158F8AC04829E87D485319
-02A6E7F7A25BE0A9C9FE1AD207AD692269B85343AE3A4356B5A3489683573FB2
-C3A09BE61A6922A8525C30B098F5C1A6A6828B7DF472A651DDC28F2CE8418BF5
-FC6EA6EEE84D345ABB8299A1621B19A457847BEE09FC71D9BE3013D8651F4CD7
-39486C39D7B050BAF21A3F7079190885EBF54CC0C60069458115BDF081E18C25
-D9B7267530E5F6D6EB77C81140B5A824BF1B5DFE96521106F3219205A6A446BE
-D03B70C432FF3F25D6C8958989AD94F14FC06880D039EE0BFAB7EF746C48D448
-C7FDC91826DBA6A3756F12B9F7BE5AFAF2541CCC069402766D6D331014119053
-73E4FF09272389AAA61E9E99E2694B09BABB59E0D5A4F8F71B870A1AC9D8BA3B
-170EB81339F3B3EC3C5133AB34B13695F42065E55DF4EDD8312F78A44D088342
-E31A30C6E4719931EBA51F917F60ED594F0F590D4BF6C99A74B0CDD3947C7176
-326FF92DE1351CBB50B88FE3194DB20ABC366AD79480259FB7F6AB11CDA44C5A
-3FBD301396CE1A2C030843D69A9D32A1A008B3B66AE82941E620A9E7B962C7EF
-59E5B3CEA2618E69D265CA5716C0770C081590CFFC044FCF02D37B592FB7F0CF
-3A70884DA16D0DFA619908C729184959F84522BA144543350C44E5673CDC23DF
-3D2704CE4ED07C1E5D810E0B18861A7ABA52634597EBB9492C9C9889F642B835
-9D4789E637CD54B9F91811CF3496B3457368EEE9A9A6DE2008576A1F935F63DC
-2AF34F2859BA1239814B4687E454F4134833EA638EA5A20996991541EDEF8753
-A7EDA763C56C4FD440F3D54B9F57E2CDA2999646BCF2CE002E9DB075F5B45081
-E698CF67A55690310A70F49DDD8A0F0944A48F16AB60C990C346EF863C84441A
-347DC73FBF7F46EB6D6C047B222033E2C47A5105203D702EBC91A344D0FC67A3
-E33EED60E68E8ACE6700F33167F971473B5302C529248F4F9A9AD263AAF1DF32
-38C21AAED0DF94B087128237BD41AB40F3662B541932A2E9E851B2262A6CF354
-4DB8993F250FE4533FC2C8D52CD66CEE480D2136F2F1D6E98E0A85597F84418A
-3748365A6AF37CBC624166F801379AC1C8543E3E741239EA92D4539BC5B31F03
-0BA0887FE98E8116D143C6C17A83B834FBB55E881AAAE75EB3C3C2DDB2D5DB7E
-7AB1C00F8FF392EB7E676B64B9EEFA774F6AF239FF876BE158906764A5AF6480
-B0DF4C5553F8FF1AE094E8C5CB48476EE34B1D3CD20D7F502BC49E03C4FAD6C2
-D4F79A61DA5340F401707AD0005CA2A0022D2AA21F651E9B9EABC388D553A23B
-D7CC2E8F192668C93A134D3EB8686F297290C51C56F192AEB20CBA4B6A05E51B
-74FE6DEF2E6308F2E8CFD0C38B01D362362205824535E826E154DC0D7B6F4ED5
-7FE86772AC3A8B6C69E2D7155F972EE2FD49580EB15337301E04694E34C2A63B
-1C3E3F108B90C7728978E159D5B215E5C0F48EFF93A57BCCFA02737085CA2467
-849195BEC7831A4813EA85E69E6FE5B2D6955876560182899AB2131BBA579D0F
-5A82372E80CADCB4760CA9806A6502DE1726EA06E8D2637499215BCA41A4CBE2
-6957947C43991A4F96026B3D3AC9D7DA0F62E8E7CFB78F3755CD7251E45FD8C2
-DC940C5567A0BBAA40720933E02096CFF49A78096EC19EC8A871C119039B5690
-8028E8DA9683BF7DE0CE57DD65DCDA5AA5F4CEEC77A41EB5E58B44A23B54035B
-FD9CBCB225A01FA468FAC2BC73211D8BA007D4B503C4F9162656E8302396D3D0
-E4A8102DA684FB5987A8D757539ADC071989A25FB66401FA47034C44581DFF55
-4D3DB44CC54B1284491DBD523520ED0E9D0F6D21FAD634A588BDAB15E8B62C34
-36010545D8732BB30511CEA387ABD636516732CAD9B8F5AB971F489FA9501A04
-482E9A241E1F1922093C7001DDB2EFD42A5AA2826DFCE05830EDD3E7BD069885
-53E46E4F9F6EC01AB0A20BBFE033CC8105E6558D4996F13894E3999C25AEBF26
-0A47BCE971583673197E22F249BF7B3EADE4EDDECB5A8ECB86F50D47F78A8592
-9F2C43682A03170D47B91584D0800AADBE346C3D08CCE6FF70ABCE7D646FC56C
-28B95711560A3F4B3803C18C315CBDA5BD44D69F8973F6D6A4F27C174DACAAC7
-BEFE1E513B08116AA34D0C167F2DBC897066A2113241DE5FE997548CE28B7216
-2C6B9896642EAE972A72829FBFF750B6DAF34547BA8A54412C7C53E50EFA2E78
-1C072AAF6B7FDFC2FD19BF07959962C8D09A463B762554843A34EACC39B6E021
-9F5B586B9395074DF8572FEFE494AF7933E125011B9D4265F521D0AA2D37F7A6
-AB040E4C00B86DAD62FA6929320A07D4ABA5691E094680A22E2156337C62E15E
-121BFCAF14427AF48D8CB538436C833CCF2635393E5D2C8CD666D2F188231D93
-F75682D8FF364381AF8CEB55476FAD7D14A1B3A86921A5A850012BBA93218464
-B44A46E74D32EC3ED17B1BE5F41D74E614B41D50E6A8F08D4926823B0C889363
-2BE97270358E195A3E1AE699C7A797B850DACB10AC57BFB41D882298AAAAD47B
-BC676BBF662C072E08C34A9A0344ACD6C36EF6367091DB6E4134201A0D0A7C0A
-7117C901573DD3B4BC619D81CF149FDD408E98E5FA17AC582CE6495EFB58E929
-6B38BA324A22ADD8F039901126DA7C567DCE65530F29379FDE5DAB90B7AF8EAA
-93D2CD1D6B93D8036305FA2A27B34EE19694190FB26C4F0466B705BB6CFDC04A
-58649C536AA431B4D3BE8708C632362B41F8328F465C79EB988C2487FB850B23
-B6CB90FA4AC671378123F1310A3CB8A744F0C52ABB552C29C5EBC855147D6648
-11F7E33DD8D16A0297DD44AA096CB4AF525C159799FA63A6DFCA438217F4AF62
-4C0FAA45A57E4B64186419F0CE002BA8AC5C92920B78213B159BFC9E884D6C8F
-C86A77F1E8041E90D196EA521B6BEAF9F5B24B407E08FAC327EC2BF29C6D553A
-1909847CE6F3B5CE06CEE18D8D5C067DECE9539BB0F4E31429F2E022505DFB8A
-54443690523A0D3501F699529EFC9C7E24BF7A4438D11CF94174EC0973BAC945
-32E3E36F6EE62078A54CD1D170BD414900BB960ABC4AEDD0F7F59F7BFB1685FE
-A8ECCC7C37E078B8BC539B7E936325A14A0EFABFAA5EEF0D45C7FF71B05DC281
-09089CE64CC30754345B006924CA02A837BA1CDBFA960009787D42D1E41BCFB3
-CCEBA95672396D78EC51042E0C4625F6598633F600F261A80235BEB56C58A3EB
-ED205E020B4EA27E94D2A9F8B285858640437FD59ECA9702356554B4AE732682
-5CC791971D3022D6603F1B74130D445B5F3E5506E4A43F32F53AD8CB8B804443
-87417A6AC7BB699DDE7A7A1DFA2718C9E15846F0B2F93E0167E6FAD982A27B7A
-321775ECAC4F754CA1B31B301BC04B9B6ADBC8BEE1B6E9A6E9E8A757409D383B
-16DE94701AA9FB5ABA8F4AAF2E837264C03C404A82C7325EBD039F84BC1D26B1
-B8CE48355D8CB477C3258967584B6F96874145650C67A02CDC9B8E6A650CF202
-BFEA60F42AB20CD4D5186E538496CB286A5B1214C6091D9F3578793B2E92C70E
-5A8AEE69B0E231B4DB103B55A09E9EB23CDB972FC4523CC2E308D5414A41D7AA
-D474204A26058BA8EE73EB67BC853B9054F281E6502C0C7974D2B2B62FCE2783
-AC2333F9F368978F6A176226B8DFC549E39408BCDA00546B8C722A872A055485
-B15A54C4B85DD07CB35B73A2C0E737B5B2A1FF3552E6343155EDBC8A99BE7E68
-F7F1D6D7C6ABAD3362058555D65C4297B5C3A413E2E0CBF52C7AD06D2D09F7EB
-3F168C29D302A80C12733DE283EEC15C1627EDC01E27919E5AE0DD8F3B1BE62A
-6F5D87B84E9FDD5E9FB8CBB4F11EEF7AF43D9FC2BAC32E036692586E597B27D4
-D185FBD9FEA7D046B74AFB4196CF5076780651A505A0B919104CDAE6A1EC9C85
-92BA6F1446FFABC3D296A9DB02827E29B4C92F334DB756EE76360EB21AF99FCB
-A20A4BBDA16D64E16C5169936ADDB2FBADE60B77A2CAF1BEC80B1AABC9955128
-EA4BB285DD06F40ED0D0AA7E78C4939556395ACB463057BFCAEE217F45BEA317
-09568F6AB7745F4843FF77667960C9FB70C93ED996E32863C21AD727953749A8
-CFE1E148260E000C4BD9CFFC417C564DBFFFF052842D55FCA7D7583F26154F68
-608FE787F89AD663E9BC56B2D99F822DA2D7159D9D2EAEB104AD3632EB9372D5
-7B5B52EE3456C394D713CE8576CF00CBFD5CD6E36FCC2D4CAEF4FFA2327786EA
-A52DEFF2282F0910D3DCB80564B33BE82A9CDCF7830F3FCD26DA16434E875B2D
-EBBA68588F1FB3051DF91E2A472B22435F9485E47970F530C09D6F80834EC05F
-919B2BC0AC81354A9714D4E0D86B98C788673E66CF8FDE6E71DB02E84992BBF0
-015B844D82089A445BE246CBC4F594DCCCD9A061F06DF82D6032B6766C3CA618
-737A4B2B77E02B6676EC1FAE5B581EC6041B203EB29E5C283714FAB41CAB5FB2
-F7EE493F5C340E3F9DD75D55206C380E29AEA710700220570409411E26AFEE04
-5AEAF8C66DE51744E4F0E68756813B1D83C784D8C75B66EDA5496C344DBD8458
-CE4C3A4BF330C67D3E07A40610917D7033A9D4A95EE0CBF09D9A7BF34B766886
-2A8AFEC912FB362355DCCC05FE08EB6C777C52714B5E762CAED332D44CBD2398
-CE9501E630E08692B0F80E10A7B9C6210C94DA7D37244823C08D954DEB16922A
-076AB888FBBE54D762AF975A1ADC5BA78AB6403621C368A37E1C3607978BFD0B
-C758ED01EBCB6B64CDC7044981DC7868C9B784A94A6CC8B046A79712773CCE41
-361785FCD1834E16D4FDBC7B2107C298C988C8540398740631EC15CDFA8BFB07
-1013096885A529
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: LASY10
-%!PS-AdobeFont-1.1: LASY10 1.001
-%%CreationDate: 1992 Oct 23 20:19:17
-%%RevisionDate: 2001 Jun 05 20:19:17
-% Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.001) readonly def
-/Notice (Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (LASY10) readonly def
-/FamilyName (LaTeX) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.035 def
-/isFixedPitch false def
-end readonly def
-/FontName /LASY10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 40 /a40 put
-dup 41 /a41 put
-readonly def
-/FontBBox{-19 -192 944 683}readonly def
-currentdict end
-currentfile eexec
-D9D66F637A9E5292A4933615152D29EEC26E1BED2E48CAB7AC058698EA30B07E
-F8BDB66981B14445E1107420FDAF32EDBD5C26E35B334E3AF24373B2A13984D9
-1D56801ACCF98612DE2C19685E0F4D52369AD642D169AB57DAB10665C6C01538
-4E7DF30628B47D6551F93A50553E592B5E1540B411A313F39E4149341C981D3C
-705F8AD7782F59531404B3C001D8B882E0C5468D00B26040A352ED823D7C8DF4
-B632A37A034C6304A39F28739AC3D634CDC707B53474E63135975E7F0FFF2458
-99878B3A6D8D7AC6F2A2728768B8C2226075299B8CB08B76AED9A00BF448A646
-87014E8B1C1723204BCBB97BF0F735E436F1805B4026CA792A2464E1FDFC4385
-B407DAC19BC7769BBEA6BDD0EE65133044D18530C5A3915AC9272AA4A7FC35A4
-93A7A0CA8BD1CFA4382085D949EE819A51062591606ECEB5B37419223CC0400E
-158F1A0849868CFAE0F71DA6B4FA47A636EDE756530425A6BFE45B8080808B59
-6B886D033437677B151285B047C84C2E2FCB71CCDF34E20E925269E5F1A210F0
-391066823D8F21E03746BF79AAC6FF91517631686722226462D6A9EC5FFCC806
-B959AED95F492481324749E00CA117821C347F9B924BEC8C64C954570252E909
-5C33AC8B1320BB1992A88C619DEA7A8FDDE42390EC82A07BD8BB7F0014A41EC8
-04225B5063D3F04723F51128DE8ADB79F62903E1955A7D49220223CA34FDC3EB
-8FB71700EB9CC40DF747C4CC60AD11D3FC038CB2051F7E97CF7C7F7D0F49CA1F
-E0FEFCE664544CD1F7C23B05BA649D373539E7BCC761611C17489084912F77C3
-5FB3BC1E91E2B4A47C27BF4989C7703E83C5A505108037DE5006D4F510B8FE1A
-570E42E4569FAEBF66058F9D9608A771BEACA2A8AB629DBE939CCBBC116E8BCD
-BEC3A33CBF185A68DB60CAC5B21AF4D9B46B3FF4FDFBD6BC3C8101BE15E79245
-F0CF8F670CFA19ABC08C34D85B10C17190497EACEF6E401F322B1E281C1755F0
-BBF9838AF83A0A1601D78E78FD599819762347A77C71374AB428093048E3F1C9
-40CFD63B86C7F70BCD2AC3092DDD3BC91CA714BA28263EB863D5E6E2DBD4FA08
-6B22C1D18B16D7042219B9F0BDF5BF10AADB658CBED51C8B272E4DFA11C5A603
-8B4A437EABAA699B86819EAA072F7D90A9CE1B52287DD3D26C470BE0A8D8ACB0
-5CEF12390D0EDE45B1F5B2FE4ABCA8844F713CB5901221BBEF0144FB694EC8A5
-A5E80F582257A84E0FDB4150D9EA8A82A434C5FC1CB93C7F457B95A68E52F916
-2B90E294A0C787EDA95A4EB1F978ABC0A8E1FC9128E7605D591F601BE0B37F6E
-E1786F2302F2783D5CDC07AA5F3A20101D527E22B8D689A3A60B5993894A7038
-E068BE74CA3F9CD7A33223131E6149FC75A1FFE4E1A12553A8B8DA3AA19DF672
-D355FC0E824840735280F6D4BE31FE762B5027E292F82AF13EF5CBB0633E66A0
-950CE5EA51EF5C6C7FD1599353416342E89607998DAD7D6A8FC650ED12369274
-4E9BF9AFEA1822896412672B1F9EFA94BB86BEB37F2926B7BC7E032C71572F05
-C203EB5E44E55504D98264D3CF7A77F62C183F65364525AE9E84511F4BB67ABC
-164068BA9321842E23882000D27069B07181EADBDAF4374F7FE019BD6D9C88E2
-793462102092A647D903EDE28729B02369DF181C898DEDEBCACB047E79B284F8
-CABFDC5B460D9CD7C3D0A7422E6268DC3CB573DFF7304841C3557355B620DEA6
-74A36D5AA575719613
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMMI10
-%!PS-AdobeFont-1.1: CMMI10 1.100
-%%CreationDate: 1996 Jul 23 07:53:57
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.100) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMMI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMMI10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 60 /less put
-dup 62 /greater put
-readonly def
-/FontBBox{-32 -250 1048 750}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
-990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
-6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
-DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
-59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
-D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
-8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
-6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
-1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
-03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
-95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
-74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
-3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
-47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
-AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8
-42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8
-40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837
-B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53
-95601766777978D01677B8D19E1B10A078432D2884BB4F7B8C3293B68BB78100
-16724E495064BA0168CC86D413CB48560D6D318357397832F7A858CD82030C7D
-8A4A1919716E8B26AFF8789AAF489EE4E0A88DC477551A87C7DF2856189E4596
-FE015956AFE5CC019F5CA6323A12B763B7B08B92C1A2940D3C566C43729E5482
-63C6DC5E834AEB4DAFB5AE8F0B8931A4687C94D11587B9071C8D81DA14F12776
-53A1985A3EBE37827656BD4635E03F09C3231F906874645E7DB3E59045A59D67
-E745D8487CF73FC50F64060544F624F357BC998A87FBE468DEBB38A09449EBCA
-D041D7C29225ACD16CB8A59E87924D15A9125F064710A6CCCA3AD3103D8FCC94
-CC3571C6F9192774FCFE5BB42A14B27960903144D28BF047BF4C77646EA7BF6F
-440D4EDEB712C63F2E8080419E42D1D58EED685EB5CDD49F80DB6E5553B519FA
-C6A39A093155802F3EC607721F390307E91ECB597ABA60A537E3F8C045BF5DD3
-D88CF6518D37FCD95D2F295D902D617440D23516D962F47750A682A319ACE1
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMR10
-%!PS-AdobeFont-1.1: CMR10 1.00B
-%%CreationDate: 1992 Feb 19 19:54:52
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.00B) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMR10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMR10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 11 /ff put
-dup 12 /fi put
-dup 14 /ffi put
-dup 18 /grave put
-dup 19 /acute put
-dup 24 /cedilla put
-dup 33 /exclam put
-dup 39 /quoteright put
-dup 40 /parenleft put
-dup 41 /parenright put
-dup 44 /comma put
-dup 45 /hyphen put
-dup 46 /period put
-dup 47 /slash put
-dup 49 /one put
-dup 50 /two put
-dup 51 /three put
-dup 52 /four put
-dup 53 /five put
-dup 58 /colon put
-dup 61 /equal put
-dup 64 /at put
-dup 65 /A put
-dup 66 /B put
-dup 67 /C put
-dup 68 /D put
-dup 69 /E put
-dup 72 /H put
-dup 73 /I put
-dup 76 /L put
-dup 77 /M put
-dup 78 /N put
-dup 79 /O put
-dup 80 /P put
-dup 81 /Q put
-dup 82 /R put
-dup 83 /S put
-dup 84 /T put
-dup 85 /U put
-dup 86 /V put
-dup 87 /W put
-dup 90 /Z put
-dup 94 /circumflex put
-dup 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 102 /f put
-dup 103 /g put
-dup 104 /h put
-dup 105 /i put
-dup 106 /j put
-dup 107 /k put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 113 /q put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 118 /v put
-dup 119 /w put
-dup 120 /x put
-dup 121 /y put
-dup 122 /z put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
-87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
-D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
-92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
-295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
-409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
-4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
-2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
-0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
-B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
-24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
-43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
-D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
-5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
-96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65
-0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830
-B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D
-AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007
-97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8
-FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5
-20759B6A4C4466E2D80EF7C7866BAD06E2A1040FAF2DE1FD6AFD5FD97EAAB614
-956897A7BA8B194E613047BF469C7B4261CACC1DF1648E8A86E926F8702B5ACA
-6CEB4E3E85EF23EF5C9C53097F3BF17243B8D4BF0E6B0C5982FD14E4E916D363
-E265322DF0823E9990F966A842ED69BADFAC2CD1754FC84C0FF6750D2373F997
-362DDA16A0D73B178FB7B67307204AF174AB871C254B8E7CD77058113B702B2C
-13F341A972B67756D65C6A9F553C365E20F0BA59F8537C88E0C13F87CEC69C9E
-0775F760C4EE10819388782A2CC2E9C000DCBA76E4EFC7B390E50611F3D4F6A9
-CE60FC3B742F046E84B4A302F5DB51092CD59F103DEE2910757696C3F131517C
-416687E6DF671911BFEFE08D1C5D0B16F9302960E29760EE101C5BDFBA4176A0
-260ED46500F88BD388506DA361B0E9FD796196E66B332C82CFFEB7974F9E4428
-B82C64ACBDF865B4356C4E2C8E6ED840AD52C326F7D4869F5BFCDA189FE81641
-832D1FDAA78EEEA4F41976945501F32BB383455467D217777DB74219F49EE8C7
-89A9BC7F63500C8A735DF316A6823E6ABD3D815E7369EBCB3C06B404819E48BF
-00F1A4AC2AA9ED69D6A974D6BA21C4923B7B93F52AEB5D7015E7FC8611A4E0F2
-A5242C167F9F3A9DE6EB0786EB41F72EC2051BE8C69BC1B1B47F21FA1BEBF913
-0D7EC2A3169AC17909A5BBAC615E64359C00C372BEFA892491D23712AF8C81CC
-E4FA41958C4AC483487725FEFD17514840A8DAED5656D30F6676EE5B168F047E
-593111CCAD76A790BE700F40845719C742C604416C9BEF74E50B7FB02CE92C8F
-5E0304486FF092FDEBC48FE92F1F52FAE037C4B1732069467138960FC946CEC9
-B00FD964782929B9AD606B2AAEDF7500359B651D48580BD33330FCB2407ABE56
-D006C8BD1BDE90C70ABCC7D3B6186DA6BBED163DF48D7A8B32CA1902B754E7D9
-FC214E64D31D5AD5AE0B3173DF92DCAE433F2CDE165599A1C215236AC9534751
-86BB44083AEADAEA87780CADC3AEBF28597D3577B2DFCC3322B4A0C8FB994DDD
-A42FC7D1E078FC6226E7E00E79197F001EEFE43DACE61835F9F2B68009B65D20
-582467F445293736BE2E3E2C0CF247224ECF9FFD37BCC76EDFD31368D2F26B8B
-5EB0322B44FF635A73A6936F73859582F33AC1160F6616E30499ED3896F2C687
-4D6C2CC91C1BB8DB13F27E1CB8F68A2E38A842C7467137A3435F71A463998130
-CD5836CA448E139EF8FFD2E4F5F8D7C0250D45A42B2419EC7A7B3B0BC09305F7
-CF0967E85B2F51339FAD5776CBFAC932048FDB039C9EF6E90A79019FA9622A92
-3A5E8EF2336DD18F1B504E989A98F4F9501DCF69FCD920AE53740A9F9D70195E
-C25A9858529B445A93E3A2E9C542485F86983F69F2D314B33AAFF216180EADEA
-AADB62FDC1625F363D784CB1E372FE3BBACA8E9942D43400E1CD716E472C288E
-DF4AB8FF861F2635E835B3EB01BA56E16A9A50BFBB44CA544C1F8E8B4937809E
-EFC33FCDBF9B0380605BB91032980A58E8451B04C9C5771E2A2E80F0F0980DD9
-505F6C8B216B39CBA66474ACDA857B80BD701F6AA093E2330D2F7D6CA6A129AD
-911EAD4E5FC1818F6A4EEDAAB5FCB6CFD6582C82A5328A129014399BE8217004
-EF372A4976AB13089DDC03C0061932C2954E3B3365E4FC98747CE4E05779D38D
-BC544D15C2C0ABBAF5D0374F4751EC5A6CD6D7B0A67E51EC762805E5587BF103
-3F9B3443959F5A9C1CD11891DC55FA47FE954C1FEA592BEFC735A2318BEC285D
-14F4C4EBACB91CA7C4C3E0F076C5E0310C357657628032E94584B384B19FE322
-5EDAC73733EC192187F028F3F6D9AB27140D799D45924A38683D5F92C8C6285C
-9DE66A0A9ECBC9F59054D9D03CB913E899CDD5DDD755566EECD5180DB6BA4510
-FC244A395EDB3DC1AA44F88E7AD74983B06C93F19ACA5D48572EE12B23BBB1AD
-6A6FEA136FB1294B0E12F6DF56A9A0276990E3E4E7027D41DE471FFAF8117FE5
-3DD9941E02B6750797BA878A153265967EB0B29244729949C39522311BA05F38
-A0AACC9E8978BAA786C7F85D3C869707364D7FEDC5737126406895456839A067
-CEF34760D0ADB87D95FD034D026683B786E131486360D8FA0E9573C21990A666
-CEA3085429F1D569FEBA7F02CA32B3A8A65885FC25ADFFA3165CB97DF5E00730
-8F32E045C7B2A5F96DC270F846FF246662864F0EC43AAABD94006F5355AB2C1F
-68A8284D6CB8974514BE0DCB823A943D67D4ECA2C3DB223341C9CB09AD81DF89
-1D8158CD2563121708A43560AFA3396D61285D2BD9043CBFABDF2A75B91DAC3B
-FA2276677EE444C08EF8F25EB68F625252C73B6E57B1823F0B7E3B0539DFDE67
-92D7A8B391B01B53497D4A5ADC5DC56D6CE71E37D93D1F246A7544A19B266593
-43898136491179CF62265CEE84A98984C40FE94BADC196EEE5C2988321E8AEB5
-5E6D5AF54AFD6B1147E4950F9D6BF4D732DDFA4EC5867EDE061E3CAF13DF2021
-96D14A9BB98A6EE506D001069DAE8F592CD7B85564B435F0B1084C1CE10D88EC
-88A74BA11029B60A80FF7A0C3D56C1C17707DFC270837C6C6D85DE9D83994D17
-3976A7E98C34A11CEF234FE9EEF6DAD47997596841AC39AE5E18BAB55972A5B7
-0DDB5BCB504035380E2296270A47D69D7A31911CC590F71C776DD313684831F7
-7221CBC90AC921247C320A48A90B387924D9FD599049C421032EC95E9482B010
-944BDE291FE248231FAF0B13E5139646142216E116C57F5F3496D7718651E19C
-57EB0BF3C8F0CE8B4E10D5EE6BF9B36B9DC87420973E17B3A05B82CABD297239
-80D7C6EC0C13AB1B1FA48BC6F119C99C90C725677AE4015900AF6B1F634E461D
-C00C07AA2B22CDA45C159A79DA4168112FAC556353A31259F413649F77B45ED6
-4189237119A17374C20CA37F477EEA80922E6E22E2A575C481A8129AC41F4654
-0AAF818B4CAAE9DA11DCCF531C7C9ED757C33FB40363BDDD80057795E259DC14
-5FA1BB9A5090B21C92782C688D6628BAB06C516EFF0DC3FE6347146667868672
-415B8A6A89172FFF885E5C9A2F01D8BFFD5F057945D2C3D9A6AAD62735739AB6
-A340BBADD7C15833B367957AF8F44DDFD6FB691F0F1E4D85F84D80BF2EB42066
-0B67031382586543D505599808B1D46132BFA5B77FBFE9BC7B689ABB6E899B1A
-00D56C8AA184A7C734911F19DB34E935E2087BBC0D15BB529036BD73C24AF691
-BD3242631C7541421DDF84AC7E9B7349DFFB2DD5AA11C917520DA78470C46542
-1E9E0011C970C7DC4E65861747B9C12B1631B157A0704B91A02DB671EBB5E386
-940A6F5939F20CBF99163DE8BA963BEB22161F612B314CDBB6334213489B96AA
-621444217A5D1435C143479B47FC5FCE3AB0788D729A4A1F029DBC94AF166731
-B20673550A5C9489DE639CDFF1AFEC92CD5BCB00A0406230263BFF12FF2E0157
-C27B3C331D859E29EC39BFBE3076D9B159B269C71C110901CEAFE0B3BD833029
-2A4692ECC37ABC5F3805E7CA3653C677C95E59456724F6562A24624DAB7C57D5
-7A34BE46181B52DE1D01E2A2DA8222E2D31BB40AFB3924D79354973F7A67BF38
-BC4391960D23D0F317FCA92F0191E51ABE703BDF07DCD28E2FB77494F6EA15ED
-38032FAF4E90CB4F75F7BD02E2A8E79530F76B4F0F02CA602F31D7E5031A8953
-C6F3C38D25AD19EE77A0F4D3CDC17BBA141E72DB6EB331A3B0B50A4FFF737D8B
-455F934A56F51A5A4D19ABA0C3CEB3B574AB1A9ED80F40BEA61B2AEFF7EB98CD
-4B6A7F2E414E89EFBA4CF541C1BD3C0697C39C7338B6873D4146013AD76D03B0
-6586C68D4FB8E60B7A4C3A40AA6FC93C39CD37577B72DC97A150674BD92349E3
-30EB87559E38082463B3ED0203AC8873F113BB08F681DEB4870075F46B620343
-6A1953AC9EC496BE435CE6DC593152EEEA6331CB9945AA4FE008937E16A9F570
-3E2A309C5171F683CFE26DF6836EE5FE3A4DD04C4BDB109D56832915B9B32F97
-F3B44A5D327125246A5BEB3FD21BE265ED7B5B1674922F26DE19C9F7F6495444
-9DC6F6D13F371C756A2B862AA499032BDD961BE5B4527B45C3C4D74E23260CC2
-944798F5AD2DA5DF397047D040940B8C916E7F272B21734BE30CB5E59FF211E3
-7EC389FFF7D3EA7358DECFC374280D67495C695C6EACD289C9E7B735D5DCCFF0
-36A614F61465ACD63DA0D2FFDFD4FC801E1C93EE257A04DC26AB406B149815F6
-21870221DF60CA8ADF2311C293B41CCD15E75A0433F057070C25F0D2EF94E4F4
-ECDF23A7D617EF72B213A03730ADBE66A54B1BF76049CBC3A3F035D31BAC2898
-63F269297D946552549A259B9C9601FA72E45AD8F5D0A7FD4DE2D32211C92A41
-7E764DB6EFF62D7CAC71DC4E92BAB291585199A4CD51431DA91429CE4127E30E
-EE8FCF90605AEF343296596357A978DFC772DEC9439BABD866E794CBA07FD9B4
-F64283A6EE91E42266FDFF7CD69847A940FE7C0181F77D55A07A16ECD9AE83ED
-91435DC75F6D7C5AFF4DD7A3C20EE0DA4BA99FE2036A7B7456AF936659D9FED4
-FD1939EE0AD25B550E8A655AFDA23EF4DA39777AC2A04890F29C0BC97DDBAE9D
-D6347B5469A0EA8721773CC685F7066FBC2E8A1574559E8F2955397CE23839A5
-7E99457317916D57AA5B35FECB0706FCE9914535A0F487831925E4AC4335EF33
-66890184550188AE57854F3ADD15A0991E45EDA27974C06E74FE12FA49A5C2A3
-F276B5C2489FB288F49D072C468FCD9037E4D99E1C40F18D80D1E63FDFDC427B
-660E4E36851A5D4A90F0E5F2D5FCBD2EC830242703F36BFFE66D61E50067A882
-A10E0CB20C81B0792A5B8EFE9302969644803E04D7DE8A7C24DDACB4563B604F
-2FAE7D6F5112DF03C1F462E4154EF4BF0D8C09416E3805B036ACA990D432DC7C
-7C8261DC2118E6E9921AADB908048076A12EA72E4A09C1C0916C88BB39677A04
-4563356556730E59164F949D62257E34B3036B22D454A3A61409F21CAC5544B6
-D3A94ED495AF043EED3EA880BFE5382B6C6D0B2A84B07F4DDBFF7B9A9F06A305
-A5227333C1A529E5C968E0E82E02622EED266332A6E033839A194FFB188B1947
-67AF109D37A85041C61A185E5A1023CCCF3D15BED794D8EA7666D35169031B0A
-83A96D05B5E7D059BFB292452EAEE5EA78201B3A698086B3DFDDC56D59C0895C
-7414F9CB0FFF74536B9E2EDDBD8D56357CC66EB7BF793C2CDFCD84B573378D4B
-7D2F6E7E9E4890714FCC9FE519D33171DDC13689CCB9C6E08D6D4ED46EB6794B
-D77251233A6FC717E811D800480690DAA62C8ACC2B5AD4958DDA02408288147C
-19D919C3496BE7B150C321791081AB9EBEFF8FF49D2F51728FB366309CDFD835
-D0EE508C80D162DD9D64028FFBC05E8F98CE0253A8BB2A4C5D3EF860372B08C9
-10D9C2976E41B0DF1BE7A40B82078414AB72F44BE8D34347E10CC21A9A960FDE
-9F8BA277A737A8B18F92D066911803886463A96BECABC509FBED1F053F58DF79
-27CF6A1BB379DF14784B2EC04A4E7D8DF6C3036697CD6285F02F23F61B3EB6C9
-2AEAAE6ECD0DC3FB6BF56ECA9678770446858BE8533EDAFE2D4CCB5FA1DD1B8A
-7C4957E1FDC355445D79897FF7CC04DF352E6D87B8C72AE9635507B10B626EAE
-FE63366EC0F60767E0FC4DD0C209C37E82D0FC40C3B36A2F5FF778176884A376
-5B8EC65A935F3326A9B2C27D8F27EF544D823E864AFE7CC3E399FA2F2E563097
-3D9BBF566FD818EA4305647A74A874712471D15108027C8881D9795177530DB8
-94D463FEAF96809727837C8CD9696E0D2BF53DE8D57A07F6D85A9E750B157CA4
-F4AA6426346ED5B82001E647B58614E1E76D57EAF6455617C43942D4B05DEBE7
-B6C682F9F567ED835EE288D289751F359AF7BE222268A6A3992699DF1C91C0DC
-A04CB2840C4DA5AE2CD0A12EB0CE03735640EAF0AD9228EDD2215831550B6D33
-C4CDE9DC1A15CCFEDBFEF5CDF6114D99E3C558C01FF803B4C21805A4525E18CF
-238164756D0F1BCCE87DD8077C8FA13C6AD8C761B5D76A8295806E530E5BB17C
-8786E0C335371447342AAA37FF1B887958B720AECEF39D3DFB0FBADB7C9131F7
-A960B7BAAC9E37B76A85ADAE8B9261355A27DBAD91E00C301064C9883FD76985
-F58AE44E71A981FF35256D93B68260DCC27BED91A7C28C804784A04EFCC8A934
-A4B30BECBD9AE562F6EB682BE9F98BF17FE8BD62A64053EF0A0F211D4E7C9F8D
-F31E5DF5FED9C2ED9F3B975C8B8026CC85B94EC649D76538B2757E08277600FA
-0EB1607EDCEC8CA2634C58D4DB7F1A1233D3321E19097C8E93295876C0D5EE44
-5EC69BF603205FC7A32EC71382D6BB7D119D593EA158DF5BAD228CDB66C6F6B8
-2FB03F1DDC1B3FE3FC644E7C6072993BF25FD5DE26A114A1E9145D638C8A95C6
-AF48BBEF411D550085F04BAD83701B754C8B7FA377A00A59611D042732997CE2
-913727947DE68DA049D61363519AAE1F608EF8B06DD1E4E5EB9DF23219A98D56
-8D5C93AF071CE20E738255E965D39CC1821CF05928A21D66E662BDB1E6089A8E
-D4F32DAB2AABCAF118C85FF17E8AB3B735E91E90FC07F84842C1467501B623C6
-4297CDC14D3D6F311C1B03C3E89CF6C02126BDEA141075AE10C7A6FE9164837B
-ECDB43216E61AFE41F28D9A2FFF96412AA7DD7D621BB96A834676EE18BD6D6CC
-1279613EDDF8191641AD1E5D65C77530A1C553C54C272FB12D34C6767FB8981F
-C39A3588D4A3BB12CE53AA32B141493F49D23105F94365BEE1F5AE81B91504CE
-5324CD2081E72CCB8FF5D9A0EE95A4A44EB358437D2CFFEDAA7E2022BE555810
-BCB2F1F321D87BF06F840C73FC6FAC2C8116ED530556C0CF5DA5595E10229A58
-C89DC8ED385A0A64FFDB5AECEB502354D9FF152C047371A96C4800CEEBEFF331
-BD0E4F7BFA507C6676B0FC809283DC4F2CD14C6490916D07FB2BD35C784C0AAB
-A786064E65B87DF2F71FEB03ADC4750633F8493E16152BE1A3127F16AFACBA96
-32B71CE871E3C7AC466EE601B4119AF454B7819E06D400A017EBD36DDB4CFE93
-9CFA6D66C95F88AC649D468FF4528652949C049CC93C681D5F4D79501C664FED
-4FF3CCF1033BFD65F94222F45235A0606524CCC728EF38906DDBF57FFAC469E4
-DD554A5407C8169C47E954FBA8EC7CCF65278F833AF690F191608E507417CBC0
-7E938578EAD15C2745526608B71829E327C9A841B9AF6CFC373E070BB6D45E6A
-9CF939CA5B6704D3581DA8D0125B07CFCB1D3C3420242D77B98DD728A263F898
-C89FE77D8D6A60DD6A56486721EFB4C19A44829DF70DAB6EACE3CBE46EE6DA76
-2D6C5C6A8978AB1EDBE79B3654A1F45D1F5D28E7E28D631F1A1ACE0B065C1B6A
-906F3335A11759333FBFB454DC2D4ED0E1E2DC6CD4F2400DC384A059FC3C9E05
-279154B5456FFE9AF248C5B9B3FF3B051DE80C0EF51F70D48A7518D5954F90A7
-18E633478D4AB1758BA882F9027A3AE05A61BFA2FCB1EC5108E416033E78166B
-F5CEB7FA00B24FB99D6A8F4D1554F9B36D2E65B1C13FEDA184C21962C81C9AB8
-53312F75AC7DA7BCDA2749B5C4CC6BB13F259A8148E3DB5F54821C3FC7D201E7
-3C9FDC0D4D174B7BA121E3FA4FCD2F7BF0572C9C02CEC4567F13FC51E191EA2C
-DCEA62F78EBAF4A6253ABE48B0FFACECD1EBD686556D37482A5264E10FC183D4
-318C62D02F83B6365968350625FE1AF810BEFD57A19CCFBFB98BEB52FF1D937C
-821A47DEB8E32047A92D9B687E147BCF7574CA5C6986450213E09152818F5311
-451EFB7C35AE79B8796BB8044839FCB5CFBA818C685DFB969EC60CFEA7D89045
-78FBCB9FB388FCE88F6DDF752DED634A4695B7CFAE70BA244373E63F6BC966A2
-6CFE08A09400E99E5ADAC8E6E11AA2DC438A37CF2D6A76C264B0744734D9A333
-BC478007283D9E995C163066C9AB0AF0DF2E87E44D71FFFF528817E48D75B615
-DAF8B8077A2B89192FE3FE3562D2DB1BC90BF21817153D68F47FF99FC59E888D
-E96F639852110E20E51AA0D38E6B6EF7E52709073A1543EF3F90DB8A3BCAFD25
-94253612B08220345B015060AEDDFA5C04723F2F404D2BC4FC05CB5B050CC48A
-E0103205372BB9C2340EA48EE063E19F3FEDB608A88000CE31BAFE3B46C70E9F
-D12E73A31F2F2C619791EA73EA25416E21832E3013B0D2E41EDB25BECDFD59F1
-C2B25AF3442F6A5932EDEC77444C98802C0CAEF592452EB8AE26CBC4287C4920
-2F2301F3325DC2436C820D00C3AC29A1D7C0E7C8AD36EF205E3E01A61E2EBA56
-9BD79E674AA28AEBE93512EC76BFC9050524FD0170EF7AD9AE841F23054D7D4E
-C201CD6C410DE13B7E6FE62385D647EBF0E725C098215DB60E8B01C8A5199CEA
-BC6BBD05B3438EEF8F078E49758AC7F89C56509ED0873F89A811BEAF4FD29391
-0CC11DE414B07372559A27496C5F6DC4E9C36BF610E62FA696015FA98E8FF19C
-C9CDB89CAFADC73493EE09CA6C1A632D8FA74CCBE0665655592F74B3472A7FA7
-2F577472D31923EF5B522C0CD76B81FCDA5F29659381EB7CB7631643298D2DF2
-F0B4B52E16551CDB0A0C1568ACFD00AAA39AAF18A2ECCE85CD763A5A7D792ABC
-96C3DC5E42103389D88A50B54B300AAC071CEF2D354BC2E0CC6311EAFB22D0A2
-B71D16408EE497CB67C78796D1E9C294B88632957ABADB2B0B2BFCDED25819A5
-93FCB13ACF15BBF42234B27AE9ABC68573CA90DFCBC40F6463BA4C68AEAC13F7
-76093C87BE8778E48C7226B1DAF7412972FA7B5DE9A4312EF26B6453850BD2C3
-F0323DC1C655CEDACCB4E87213F82BEDF619BA12AB5A40129BC9E179579937DB
-DC0C8FAFE50906850AE32D086DCADE33248C3381345A6474EDADFDDE24E0DA67
-05F03E822CDAD8A958ADFA7FC1EFC7D03BD31582FE4EED7A768EF13550937C1C
-3478C937ADB7FD2776D75797B8748C5DA78C097A114ACF556037F86C5382B33E
-8307CFC43B5571B5CD5EA192263B287397EEB9C277B0FCC88E140F58569B3255
-60DE9D1916480549168EE6E23E2DC616602E8F0E14FE938408EAFF0C8DAC948A
-666477512E5375B85B3AB5B5254B948CA04CD71562E5AD6493534C0A47C060D7
-4FC6632A43E59050751751B5FB9EFB71D259A7D4FE08CAB2DE97DF71FBB24156
-4CFF70E87AA9AAB3C5A00198E6B9D12E7BE079B1CBABBD4FBF5A297EE121A18F
-7F154782F76055C3F9742F4C193E0F958D04D1CCC929DE24F56FF2AB17D05DF7
-418F0E0000E5521A9F3E03D6C1E8A1C6BA04AFC719C418C8BF41F2F489EBC2DF
-7AC5C115938B085F94C4A5AAFEC2694F360BC2E509E8967426D8BB92C3B46E81
-5D23FBB6F8654BB103565967C9671B0D0CCC30406E729EAF5447AC65B9BD0AEC
-E68BC9CCC4F58051A993BBBEF40145FC3E85D3AD817AE74C95C2F777F5DA2814
-6CEB79BFD601EBD0A1C72FBB67B73266D6A0ED656F93ED61C44EC7DE891D28A8
-4B25729F58DD478932367018AE6C63FA5C5FC7EB2EA175CDE388750897A798A8
-03A92331596419241961FE5DC38DCEA02AE7962D68C5D6667DA0BFAEF3E816EA
-D3DC17F8B1708D1ED52C3F4A0244C63A3B639C393C735F0FB332AB0B7848D0A0
-C94FF616B38BE032BBD0A450E101E8592C804219F62A5A675365A56265B93881
-D66BFC01FA08FF58C502A7D3CA28BF0DAD846E836A1E520E60C2C1ABABDD2DF0
-6FB012B947E376BB0064CD07691A26CC0F5D1AC3F48FEF04BADC4DA29B4412F5
-5FAD7FE00E477B22FDDE54F922BFC45029EF69BACEE71A9DF13C0508095FE617
-9CCBD486080DD2650490CAD32D201A05E71F43FAC32C97C07A74DE38CC390040
-141F33F809E3407FE2880F0F6763247A3E245527113676B8DA900777A79B21C0
-C891D196420C52833150FC6EFC62387AFB1E402DA2E556AA19359D0BE0A75593
-7C66F47D6DAC7CA25957CDAFD550AD5E2A33F5021F4D81988A2A4D90FA11C9A9
-45E2B57705A81D89F0160705E0FB4CB4EF5793704A3EE8C6491CF3C6F44242EC
-42836E7125E349053B034C181E9AD0C71C56E316133E58EBC1751862B9302994
-351FA8A4FBBD3E681A6D9BD40C0B415B1E6E17917D229ABCA18BB2B0825D8BDF
-C69AB3D2CDF0C9E3FB6500C9D58A6ECD17E882DA0A0B150482D1EB95FD491D59
-7F82C6051BCEE0AC84C2A85AFE67B83D71D2769E8FE0C5ADACB7DB9AE25926E4
-8D80B9A1B949C4443F271983D0DD52EFD327AC4283B7FDB6957BC7EC2D335619
-9A78A6CCD89454970CE1DA66B35AE8573100B338DF0C8C5476A6B78418BF9E20
-8A33D3D7D725BA7A23C1273ED7F731BD7392D8AC0194D67C61B8C334CCFC38B7
-FF9F3118B5C2751EAFF59A191C2E0A8AE8364CC560BE42D88C6F4DDE4B61D02F
-6C10C010B55F27AD5DBFEA393202663EAD9D3DF5825E5CC91C43DA4CF1AEC0C6
-DF07F1642005687C63BAEAB5EE6744CCD0E6FC73C1FC22E0B5888063E3120618
-F788F234AE16821CF04E5791335C82225921712DBE75C540AFC913A501F72E0E
-7BE4ED1B412C91329B707D61F2650EBC2FDD72B3930ED5F1C886737C0D6956C8
-F1C2765A9533919FEBB984527C7821CB5B1297C5963EF29F19F8DDAB7BE15B76
-9FCA6313E60D34D8369880F9526242FC937FE3425324AA3A9714809B142CC61F
-39831558321DE167C4DABD38F10E880FBB15623E8296350C84510473A6008DA4
-24CC989D0ABB7A8DD597ED36A171812D48849BAF64F6F441BAF818933D3F9986
-E8C4EB771A96921349DBE1E92CE009CC5C67D7BF9132D569F645D0ECD44BAEB1
-590FCBCD3706FA20D1872A1ED643503A3966676DD0A816056CFBAF9151B7D841
-335F94557872EC441BA4505C65A7F1477431805C7DFED9CEBDBEC7EE49E87D2E
-1084BD0DA9B891BC23F3840FB44CDAE8E7DFE6C06A92A11FD13FA19C78F38B6D
-605D03A4A6C62EED344B590BBF935F4D51BF641FE8D2D10529D7A7EFEFC2F0B7
-B8D42B6A17A6D3A87AC8AB15BADFD2BF2839AB869D3EA978DEA0044AD7BC0E9B
-B6CC856AD362AEE4673D9C1DA8AEE8F084EBE1857A22EFFCFD8EA111D073C6E6
-CA63E3A78EFA85F24FE4BC1F382A48B8922D09D6231CC3AEB3412E8040ABBE80
-0BC85CEB792A99115DF49286848704B00BB1A8D25148FFDA511FDA7D9B3C527C
-2277FBBB031CEC10E41E416875FCB893C94588B0FC2C2F2C734068F500C5BC78
-485A960F3C7ACF3DB22810D5257CD74EAC2AA6A30E870A38241084DA09FAA76D
-2F00C09474A4B5070ACD2B027A0718F0B8E8BA85089C2D63EF04B6CBA6F22D3C
-BD0701F7E05EDDC1C54220CB8AEECB99581B77062FD897731CD4481FF512C4C1
-23C2F7442A2A6E21EC05B2C9874627A1B4C552286F91D172BC5B47ACDAEDBAE8
-F001525DBD896E2C07E98DE32057A257590868DF95715577B69169DF9637B00E
-A708AD09933515D26944A373FE442F64D488A91AED5C8F8EDD54A554EAD49218
-CB22C6196D32FF0EE679CD0259036452AA245BFF051359A8A2F3A9D06BE188E0
-7421CA5E3D070C565AE3A70AFF0ADC3A517330CFECD29FF5B3940FA54F187639
-D37091DF4BEE09D29F2E52A32AB5AB9AAC098E0BFAB4B7B706726038E1CFE2CD
-D83B1FAEFE1F4234182DBD5BE8E9AC7B2B887E01CD374A825C3D764C3157CD92
-64DA53FB9A596AF2E9C3F3D86A5D73850EBFF025A4D2D1A4BC97407AE88ACEA7
-DE8ABA009D7359F2620B4DFEADA09CB8EB68104E65B22F054EE6FE649F72FAD1
-B2F00BC4435D55EBF44035F5934A35A2A0621A5FB4F93C9615C2421A5AFB510D
-D1260BD366D5CED0073ABA8B7E3D0C59C63F5C48C2E3C77553B91AAFADE691D8
-D8ACE45C20166C35503CF73B48434A90A516B24C9F38700652A96F41E4AE95A0
-2E5D31470F2ECEBC3D75C6AD794F66494ABE216CC25A1E385D5B9398CF4ACF5F
-3705DB2A8FAA799803538AB3F81E1F798EE3EC152DE1CEAE132555D3F55F7F90
-B94FBD0889CA3B0BA1AAC8DD6C3B0CDAD21B799F5478A789F9A74EC7127E4259
-FD98E4EBBE489F471E799ADEEB0613E92EBAE7E0F9E09AC03B342ED5141D5774
-5AC364916D8116EB103E6C9E1819E19832ABD66F6452753F7F6795F274D82D83
-7FE689CF8A181CB425833B97F2DA9764732AA0717F0CE55DE70F938A37689301
-6F1A1586AF803C0AE64645D97B1A9AA141A24A9B997040714330351792616442
-70C8BA50FA4DD5238E2D7D6A16C9B5DE3F8A7FAB2F4E5655DA00481EC4B15B48
-E047AC737F5C380DA17F57A835FFA2D01B8EB20C0F3CCE270E208514915B8058
-CE3C9C8888F53CD8952492A00674F53D94C4B8A68EA98E34D37CE574C3F312D5
-D302E1F5218CC62C9C8D75092D00AE3F603E568E95CE6DD81931B352C8D8BB15
-AC9F11BE312D2729F0BDDBA215A8A0CDFFAE68BDB49F696DA0C3EBBF349B5273
-3D4A7A36CCA0446F7D16A668D51B5165D70625E3E96758387E40A330BF5787DF
-73C781B1F15EF16055DAB842029CE24A9677CC6E981A57A0209DE6EB62328DA5
-A05486E785AB73C5302172A5730586EEA3706801D39C02AF42B3C37F918AF5A1
-EDE8CBB0ACE44EC34B1BACFCFBE962549D05B30B572658B677C4B7D56E5FB7EB
-D2F632888454FDDD3B8A4DD6C226284B56FBFDEEAF915D6BC129939729AA95F1
-B0AAEE02C119EEA3756BB7AB638DC15185D7D1BC5442E4E2037786DFC19E06F9
-5758344DCACFF12EA0D465A4F1AFCBCCA6B22B07A96E5433CC81475570A793E3
-6899A1F9BC3750C9EDA5A5010D7CBA24970D19555A6613E1C0A20B2CA1A2305C
-6C59C11DE0E8DC0F51FE5F58EFF84F2DE7F18ED0EE7EC3C508951BAA11816F45
-53ECCE80B0D09AB23E189B890F3C9A4CEDCB7F0AC07E1B52B2CF8B6ECD6174BF
-D5E66D5EF94326CA6BEBEB2D04A2F5C87A0DF0CDB072318F0329C49E799458DE
-A2B772A5CE622C262F6294A8F691D83A188A377A8D78BAF59F08790BFAE3053B
-85DC75CD7AD0E641F0C41202EA3CB49848C5269DFDDBE3EB5C9764FDCADF7E6A
-2762909FA8C166070F69E0AEBCB03C8F97AE8DE40C7802FBD751A030425BD053
-161DEEB4A6FB85FFB9CE609F06D425C05EBAB2D4820FEBC450A3144341C0F597
-88B4917D4F9FE6D4CAF30D06E1129488AE8EE622325F21789B1CD274094CC311
-19819EAA3DE9703A5002BE9DE1BCA7D769A3069EACAB8261900A2A9E8A9444DA
-D7A922A26CD7BB9CC9942DB574AFF1411F44208538967F4249A3BF4BBFE81B81
-92840607C3F4C8E804FD630403D6C6DE60A3F0D0BEB9635A28BF4BB3A789D090
-E754F4367E29F13DF28304F2178275A71938185F6E680782AFC6BC35C9FD842D
-73EB566DEAF118649070090E43FA7E572036A606FD3FF47578B9594FBFE2C56D
-35AC38CBE303AC04F36D889113D9CD423FDCAE23D8A63AA3C6CC2F6CEAC37032
-B1AA79C500AE5DF39CBC57BB4C8492B1EF276BC4D2864F67CB09C14E6E811F33
-46DD35E4899A072C788BD80D5476648416FE383B9FFA64BD69D5948A5E10C8DB
-6774A701585216700E825306A23996B549A865255DE7A565840CF8F86EA30177
-E1CE3B1866D2F94AC553A0D4DB307A7D633D8CFB67D621294C32E8D4D5F48459
-994EC4BD53794F2FAB1B95431B0F40690CE80ACFBF249249FE6A070914080BB4
-8D56F73210F053B4DFA0403A2A30E4CB0DCD0E721E4143FC1EB918E6B7C2D977
-26D86B1B7F1D652166F169A3B058551A8BBA687A391FCBAEF337B3964CEFA7F1
-0A030C097F440A1D16FC14D9AC1243ABF8FE0C4572C14296FEF8B8EC6E859392
-96EB8291718357C6EC7422D8ADA872CB672AF4637086BBE35951C61789A335FF
-5B904F17DFFE9F4E60523D427DF645C22377E1DE1407A41DA9748FABB258B3A0
-14E168C2A2373900246A6BD88F25D3FDCFD2A91A5197B63C1CF59AC4F26C42CA
-B1958989A1B36641B51A0E91FE03E90BDAF96A7504EE3193728FA8F86B1F0665
-39A56B4283E9C789309ACD9445483EC16BCB5331571D67F2E6135234A855C65D
-2702310B488CA8FDBEE958C382E40B96C543F58E2065D5385558D2DC2AF550A6
-DBC437EBC53BB1B3B8563195B5D1198FD906DAC9D906CBF59B7BBEB92BD29131
-B42F42B6B0B4656E0FD8D18BFE640FB479447BF606F361108FF3C9A9499038EB
-87A370E44E8AA019689A900F20992619915ECE3FB679F5834F1B0EFE293595CA
-0D37BDC0ECFC4D8528D52A14E40F8D3B0FB3AE69ED29FC7EF377F6C48A5E8ED5
-9EAD17923AA47F3A6FD58A19889C31DF0B8FEDEE49EBBE4749746C54362547BD
-678CF0153BBE1A8BABAE7046182A542A9E91572F980E33B2D8AEAF2945E0693B
-870787BF000663167C0084EDF0C35E055F3208A331F34CE8112D63EC8A71D129
-2EA41C7079AA2CE261F2C3E47E051635E5177AEA3626D7A4D7B5E42F66986E4A
-BFB5FCF022A6DAB4DE877AC2DE05D1BAAE32B6D5CE1F24E570D1A123F8D27C53
-7E166783BC7A9437F9C3B6968C5386E9240DCF5EDA0BD2B2D91BCE2DADBE00B7
-20C262DDED733040979E62454C5303F01DF1CA7EDDF9E158E62251914918CD4C
-88CB370FB1F68866CA2370CD9926A54BE41E1363236189AEF679E6560EA9765D
-E5B44C035CF0378A4D684516387CDE0FADC607F86962DB50E2C82126391A8E87
-DB03285E829D39FAC94FFAF70123C3AD7F083D93A066B6E73186EFFF1CB951B7
-E746E52F54B0EB268EF21109CECBDBDCC99C59F5B545A8E93C6CEE6EA416D3D5
-5073DEEC1C4501BA4CCE7AF100C9F0ABFA5563B61F0DF4A1FDD5484B49D13032
-BBA269116BEEF5EC05650610408544C375DB8C4DA370941BF2AAA1ECA9BD4AF9
-783F2B651A22B51DE953BE94FB5A296E6EA54E9FDADC818BE4743EB53913172B
-2C2411BF4D60D5ECFB84906F4ABFDBD4B70327EF53F465BDEC2506FC278CCEC6
-8A89151EE4616DBFAD66CF4422DC9F0E15D9639E54E1B47BE6648059084D58CA
-110F38D77EF76775570E085F2F9496A4F2646EEEC6C269EE35DE9F756117850A
-8E722DA4B8C26B836B428520A904EB109F4EA09F47FF99CA22F86C951D24B873
-83B9403DDB0720DC3FC4BA6C33478C13370509EF5C7CD49C10CD5FFD25043AD8
-1DD09529FF9C91157E9006A017B2DAEE542B39AB665EA760F6D24A9460FC0A6B
-5C3964882F4471BF38E858EBA3BCE70230CEA3B511DADE4E892451711E4C41A9
-679CD4D9067575783774FCD8BF7F20B53D8B19AEFD81F44ACB4704352BF0D25F
-F8B14D5D0477925D6792B93E3395089540C5BD082D7A718304B12AC0B99EF0D4
-4588EDE56AD2CDC1A23AF9D2B50FA87319D0A0610D04B69D9CE7DEEEAB2B7B88
-45097DDC86E8F91875F259B8D033C44D1C966262A5E9A2DF0C9C16858E97D4D9
-3DBC278F765AE2DFF9191DFAD87577F7AE031045AB54BC67FB0C54199738DC50
-D761374A1F6CD36067A595D5D052EE1048CD4F6C3C1A093B04FBA24FBA7144E5
-BCB6438235EFC35F222EDCEFF7940C1F91FBD93525F8B9D3CBC3BA58DCB29043
-E720B4C7300FD78BA24C70BFBDE3398AA91F00BAE8A4C04A04C9ADB9EDAE27EF
-6C6CB5DB6FF0E4FB3127901F0CC575A8D8A492EE03AE4E8ECEA6E55D60563015
-4A157433C362D46B61908BE9445CBC25E50EB1F664072ACC5FD11B24449E6C29
-296E9AE446A63956BEE6A25607E2EBBE7F4F4D4FD4C98FA3A22AC043441F3140
-5ED2C4F32A54F05F1C3CC03B638FE8744F2C053FDDF6F0F87861298971C972D0
-EF6429BD3C44D3606D6A10AEE77E32B88B0648519D6F2FB2380290F7C873451A
-C378B78290346C03047129A7F529018AF6B56057FB08B40B13AF74C7257C15CE
-38810F7D912FBC3AB457B7018C985F31EEB76FDA63B95BBEB1F8950E5BA5926E
-876F0FE954AC8D5A7E5778B3598D4661783645DEE64AD6CE7B7D027D2DC61298
-27C56100FCDBF2ABA512AFA2DB1EAEEC0DC39551C5EF23334FA516B9C10A6FBB
-34A23712A73876EF7C71AF2A581B68F618C32DFF596CE1069B3EC5DA24451225
-A8522AC59A84EDB613A4B00D2AE058FDC9E1AF8DDA2F29C9D4954DD815FB4372
-D7C07781E7AAAEB3DA9FA9CC3721C870076F01787F31B455E68082BCD1F1C3E3
-84126C4B5668492DFCA2531A2DE135C588F328470497CE27EEE7FCC2B74C1BA0
-30EF399E8BA5C616A4D45BEBF2DA0BE55E96936CA2B9BDFA632A9725B3147B59
-C74FDB36D91C92B60DF2F7111CD4C7F59A47E43C0DB5A440C727BFCD133EA099
-7B8A5B801ECD69A1201134DE7C6B6EB80FAE9C8DABFC970F6DC03AED9A383C73
-A463FD3CF42EF5873F9639D55050FEB92D5C74BCB69536D645D763BA62BA4771
-9830AABE85B84CD6ECC2B2CFB4501480B5DF833C836804A0B463F57CE5AC08E2
-15480D47EC254D02391279E72A146A0834988FB0F8EF95573A359A4FD262E44E
-79FA3F29C27CF9934B03881A8561C3943B2928967097613921B68E014BC60C93
-012446D334D3C539383A01371CF0CB6D3FE6E15955ACDA7F74C8E0F1DF3A2FB8
-D741248FCFD64378DF4DC90DE0256840826A6E0892A17E7E90AB1851A26D3D05
-F4C4DDCCC2A0B758B90C236C0BA05FDA098BA199228AFE1DBBCAFA7DA390E07D
-61250CDE484356AF8B6A29E4595A98D0FEC0770B2A4ED9E5566C7FEE4E9409CA
-99DB69F7353F599AA573A251F8BAE3D6A6ECFACF07CADBE1B63A5E55568C903D
-0EF6B59B3484B13321C3ADD862A135F4305F3F2F21D188D7F1CFEDAE964AC4D2
-0250A68B5F36419E41AC852BC8E3FEE7259BDFFE250AA71009240C138C546574
-340F7C6395E904AAB07C05032FCA7BB333A9F95ED35B115E8449C26E8C6D8CA2
-99C1C38D652A5E14BD7E8F4B4F89D0EDEB082BBF8A0058E95934FBFEAF63A99E
-076DF6A6259389002B0F4D44BC0D54FCAF8874606138F4DB1C39DE366938F12B
-0018E1586F0284619962950D8A17343E
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBX10
-%!PS-AdobeFont-1.1: CMBX10 1.00B
-%%CreationDate: 1992 Feb 19 19:54:06
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.00B) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMBX10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 12 /fi put
-dup 19 /acute put
-dup 36 /dollar put
-dup 45 /hyphen put
-dup 46 /period put
-dup 49 /one put
-dup 50 /two put
-dup 51 /three put
-dup 52 /four put
-dup 53 /five put
-dup 58 /colon put
-dup 65 /A put
-dup 67 /C put
-dup 68 /D put
-dup 69 /E put
-dup 72 /H put
-dup 73 /I put
-dup 76 /L put
-dup 77 /M put
-dup 79 /O put
-dup 80 /P put
-dup 81 /Q put
-dup 82 /R put
-dup 83 /S put
-dup 84 /T put
-dup 85 /U put
-dup 86 /V put
-dup 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 102 /f put
-dup 103 /g put
-dup 104 /h put
-dup 105 /i put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 121 /y put
-readonly def
-/FontBBox{-301 -250 1164 946}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
-7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
-77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
-2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
-FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
-DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
-7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
-9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
-CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
-6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
-E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
-8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
-3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
-EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
-0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
-4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209615BC08173FF
-1805BDFCCA4B11F50D6BD483FD8639F9E8D0245B463D65A0F12C26C8A8EE2910
-757696C3F13144D8EA5649816AAD61A949C3A723ABB585990593F20A35CD6B7E
-0FA0AD8551CEE41F61924DC36A464A10A1B14C33FAFB04862E30C66C1BC55665
-6D07D93B8C0D596E109EE2B1AAB479F7FAA35279ADB468A624BE26D527BFF5ED
-E067598E1B8B78188FA4BCFB0B51692D07B0BEBB930C6F0997B437E2C51B876B
-61A563A2673932C2045833FAA35DB22ADE12102335D5DC734AE3AC5EEE6658D7
-92EB62131E1DFBA441F53EFF9021D9D4C491F26BE8F54C61165CAD778CE8695C
-EEAF70E3B20C64D4C2B34A084B5770BAB2A8B7069E84EE1039A2E43E0DECBBEF
-93189055A49EE66B5906996FBA7A2F052D44A9EAAB6DED6ACACBD4742887E4A8
-FA3D14EC60A2413277027F80FC9B4384EE6F9A1528F7E58A9CB23E3EDE43B06F
-E978B03C604B50A5F91C47346DE482B3A922A5D0236FBC7C8B46BB2355A1E805
-C6E30E5B2156F4C26F2C5BEE2DB03051D5824E81313B77E67A9C745F9F696E81
-3BE9158CE6330EFB07FC15E8618153D1E4D5E46141140D9ED2D64A1706E81687
-7BFF07DA3877D7DAEFFD70643D1A32AEE36CC2C0B376F888AF34291450DCA410
-6A49A4D5E8C2D1CF884B6A975FCC00E143C634C2CAAD10F354EA13055C6C7F35
-65B4A26C6C28C08567BF5860D0930D7CCE02B8A16F7DB74AF6D8B7A401DF26D9
-B605F7DA453F60E8E89DF07C2A11C0E1F89B02D061B7C9EE6274B3669D367C6F
-F13C336537B67F235795800CA8EF1EA8591DB59BDAECC087BD360B3B50F5CAEA
-8BD4F3EE074773D8C969DDB7B64C6A7BE3956ADBECF9836714BC6E754FC09E57
-DFDD95F1A01A3106AC80DB85CE663658EE74C714E6297496EC70890CD6EA37F6
-148CE94413F1D6CE5A3592EF3F99297874E13A7829B3C18BA66F9D093C3DAAEA
-AFEB3F714A5449DEB7DE2F19851B4E65DE0679B74D83F1ECA1FEE76D0AA42B5F
-5DF085720F44508D5782551D7A7978F3681929E6EC093D73DDE8DE8A938C149E
-7E436F574115EB02F9CBA61AB32B9F27625CBFF17E3AEDB5195B493A149B1449
-5EEE848F16BB2EA1457FB44A45453D9990FA4F9FB258AB55FBAA37CE0AF7AB18
-8C46E921805055944A406128C21CC380EDD623BC1FC5523E9FE0F860F4D5E543
-1E9615777533FF7F92D1F1233151D7EACC678C1448D79712A58F2ED9C68137DF
-777A3403B563AA12F66BFFC69A9213D8E0990F3D44409A0F041E1F33662D0E2A
-7ED134E654ACEF0B5F8C6FB271BBC84A300794A6EA89E6058A07F4A84C33DAE7
-967153F4C4E65357C34143980E9EF1C04FFDB7A683287B101AC4D7EF91B7D648
-141E4DB0E49806215706B1F4A5174C9EC19AE3C55E3191A9D7EAD3294E77818C
-EC06549E92C90D62BF85EAEAE51E4D7B7D66B4481823B60F897D0DF74FA1B72C
-6FC4C10EEEE3A3B686AEAF763059525C69BDE039B398A8115F5C53217FFA8280
-DD9A35A85E0DF9D40780E0E6D62E9AC1BF6BA810B780AD3D79CFE274CEFE48B0
-40F7B2369A722FFC2D5292C5B5CC8D29CB56B98AB182463EE08956A36219A079
-7E92BC33856ED2F4DD53ED0809CA4F368E41C1210E655BDB2E58BC91D520289A
-07B72F3DA93330C41876A4F13ABD480EDCD34370F71F9BFE330C32D011AD62C7
-16DC3E93BF9AE378B09A0C3AA2A43A1C61B02ACBC9061C116C0AB42EB60BE12F
-F80FC95C5C51CE79794C620B420C9DD83667150F6EAA923D0CB79A60CEC8B9F8
-3E7C0F58421A0C349525E14A369FC591BA86A3748B4618EA8BE788D5227FDA5F
-AB37F8302DFCE43E3800BC945E9A96108301AA65DB2DFE6E371F1D24AA406458
-C3838FBFCF37E7F1B589D820F6D54818D2A0224D8A76A420DA12C56C7856BBC8
-3A3AE827418D1F3561CE924B03E75EC9E1318767385C09EEDD5152CD0932818E
-5B5D087D070E53435F5A3A63FC5C25CF064F69AD37837C7808597FF974708DC1
-7ED44F6CED31A17EE951B7D86A1728BDD8B0D862601489A7140F932EFB90BD98
-4FC42505AE9F6CE40DCD06ACEC02DF178935876CB42DA115A08F9BD7DA700CCE
-3B11AA257116B2E1FCCDCD7D6D692D3912D23DD521AA0CAD0A040ADDF0E27259
-40F6A9FB2F302732594F8ACF5369209B553ED9DDEA20CA52E42FF30569D80212
-01A544C966EF2F1EA5559CF516784B964A5C4668FBDD158DE9FC0E8C8F5A66EA
-1CD364F124CE3569AD8CB4BAC0A9B9758AC7A9ADE015CCF6BEF9ACEF00F0DB2F
-A9A7C2E5FD498FC0033CE4B5764D0B2B6BBA47D9927FB015152AE37802E598F3
-5CA408DBDBEAD7A02FB943460B80F02AF30FE483134DE7A89A70569E590BC20D
-493B2EDDADE1CB532D51C268CAA0F98CAD9DCF4CD3F5FBBBDB16A2D65B415CC0
-59EDF3602478BCC8F7D2313203FBE416AFFB93D61871F5A9F10A6549DCAC851A
-4FFDD7F922D1EE32F6F67E53967D7C12178F5AD3B8B483AF98E6A8959607562F
-22CB9FB8EA545F007C34F3A1C7D3D560545E145A8E57FF58BFB486B844037C09
-1C219D212F4C13A1736AD7D55100BEB709D110C4B95D589B1471CF7E074CB3A4
-72C0E75E5CB831D092D7D872A34E373415A1D7DF6C0B52D9F1535A852874B282
-9BB014AFA74EA7A091E2FB1F3B3EF01D6F86C3F46AA79FA519489CEBB95AB5D8
-BDE011394DDAD57A318199FFF087A8C495D3D93025285FD85947D5297DB85333
-575E25F03FD37F8F85AC0A082B8E62CD160D93840EF8AA09F90D0BAE848C08D6
-DE2FB5F5DE2D6C4462B82C19868CE9E969EA4DFB9EDD2AE3F83EC0F238FBC1F8
-89192A00EA10936B77EC8A9E64109FA7EE534C395D415A106F65E09F512D7A56
-F4FBF94178527775519FC4B96E8EFE5F4F3AF95502B02DE37A065B438653FD0D
-E4EA28180CF2C3C166070F69FFFAE746DD8E57B302DA740B4340222F597ADD7A
-E49E33AD526598C818E5886EE0EA7263871585DCE480770E3D8B4B8B13EEDD0F
-962C92E58088CAAC81A6A9BF7912485EF079D2DAED54A01635A4C16EAFC60FD2
-DE6F2EEB2DA95829A7028DB2F58983F4AFE39B58BE62A2A73B300B6732A981B1
-DEF8B09C43F22767946F11BCF1FCD38E32320B412D0BAF7E679ADAA54B28DE94
-9D78C58B0D4BC1CE211E395CD560A49D0F9A7A4329C9FCAAC6B6B84C46510657
-1ACB0238DFC93E208D389647E379A2636A640C00DD91CF5B4751817DE2958735
-F9E0EE7EF7115008A55EB83DC993CBA141888F4A2C9C51E888EE2F9D605DE520
-0CC0CAC86ED519F766C6A74EBA418A22647CD8D933F3BF23B75C96D445E57402
-BBF9E0302C546C094DD18372E64D85C42E6AC4D4AD13290BE6161314A56144AE
-02DE38A0019173F1AAD039B9B3E7F1E7D123A10677A7B3E38465CC6EC3D64BBC
-145275796055097F7176178F8872C20BB4CA7FF78D90090DBEC1FA708FAB9C8A
-94376FAEEE7FAD0CC8B47D82AC78BFE2C2E2CAAF47D7CBF1912708D4FFBCD602
-09779152E0A031921640B5E13A02857653E84718155DF220E0B92385FEC5B006
-D22F936A6B604B241769E52A7028089163507B81D5B6AF5E55B991789F2FCD0E
-60AA72063105ADCA6746EE997E9417A457EC9C9AFF9D1F82AF16F26051289374
-29340F530E3FEE1A93663D60BE0F64E58A669ADFD3259BC9C4CCE5825EA5C335
-133CC9CB740B6980FE711F77FEAF776CF5ABAFBAE54853F94E8F2356574555F0
-AB8DE9FB57768BB67C13D58DD33E2F176161164A48F628427EFC3B5F0A8F2427
-D58A7E8BFE8C7031EA69317676012924C3AFA986C3062BA67BE5A71359851EC1
-23D529291F51D4B9616C906D9E5EB72406D037B35AB82F5FA32068CE1B0DDB5E
-FA5DED13B4AC002FCAFEBA0DE4F6B9CDD9CA7BDED2B894DF5F381CCDEF003B16
-55B99D680DC6C885B2B33FC8F3BA106B0902EEBBD3237D18FABDE44FF2EB163B
-131578EBC15CE149894C5EE6578DF9D6708839A032490BCECD052E20A7C94367
-DB0F920AE0DD15372FD44423C4600A289060B39BB34FB0EA116788F9EE088D46
-172424C79482F2DD7F66FA5B01C9F5D0BE92456BFB89156BD93AED6EF1D7D891
-949962B3CB8D7D6273BE685CA811CC28B230782EAD939009D7DFC00E9285B108
-CCC7D9D6A43DCE13FF2059CBD423FBF87A40E694AED1CF6E0D9A12972C904EEC
-C425AE9234F026393CF082E3BA95FB9FCEB37C35DA6FE24EF295CCE723C55FC7
-F6F9EC01A8D464A390E891C572293A15D6DCDDB56EE751524F7F19975E9FEC92
-43313C65E41D8561551EDAAC6D5AE5EBFB7DF225A6646B9A185DD7955B87F880
-F919BEC708EE9B5D386D8BD82745AA3F03DACBA1F58A70E4C30096FA18ACB48D
-557FBD3763536FD5C19E75E150DAFBA4BBC3690D677FF20886F8836D53EC801E
-AAE0AABFE8903DFA95AE1E27962CD337BB39A91CC69BCA07C1B0C0A7F93244A0
-63C454846DE0FCD53DF32ECACAAA5589B06D218597CF2076D59B7CA9EB78A67D
-28B42DF3C1E286700D4AFD82A63D9BCEB2CAB1F1602DABAF1684328249F7B787
-1DB3A707CAA7C9EC158CA3574DA91F049A888053D64D393F20C52C30C15B3EFE
-6E87A1351D0839826E0195AD8A334607649AA0A9847EF013757971E9461EB47B
-289F74DFD982DF89019E0265FDD4A10AD14CD3EDD5D6555A9A6338C1CC83EA08
-CE3FDF7393CF854A9788CC31C30FF76918B9D694D00E746276EDA71AA2AF30CB
-82CC3931F250AEE451E196ABA1FAD6F21D2628F7B1D80CC88FAAD65B515C3FEC
-7C55048257F947F1D0F1FAE362D23BC9FA2FEEF3722744FABB62FC4AFBEEAD5A
-CB2E2CE2A38529E30CE60A3A5872C24CCE96A5D55E5094ABA181B7A0F847D72A
-BA111318B5DEF40B30BE6195CE55EF9DA4EF2823A58540951EF7F707DEE0E6C2
-993E63470DC417F365EA6BE16611E03CD04BDFFADEF0BD7F91BE48AD0E0E8B7A
-2A0A6EF99328287344684F5AFC534E01730826B6B80C511ED31F3D3B8D17841B
-468452FBB53F059624C5746659552EA69A4EDAFA627AC8EF574D996A421E4D39
-C62690AEEDF4775F150447EBC3FF6FBFFD853CA384864F2B73302B3CB72F3E2E
-7B7855C7A9B106238946B75C3A5807A597C4FAB43E624093C6AD508D3F105C77
-25D7C76F35DDCB1C01E4212D90A7AEDC5F1F2DE963113967B512D4DF995312F4
-9981987A4CC089BE75D34EE2DEE750C346D8D8ECAB28CC25D871B62AF82D2C1F
-0040F9D102F166E25C649E69F9D7CD31F2FD018956E6038692C57D849887F52A
-F06D991D0A889A07D3793A055A887E8E12C61AC168C80591F6789D8D1D68B395
-27219CC88670B013DCAD7EF948A7C1F7085621A397D35C3AED7C8C3B0D3AE829
-253310A9DDF1ED9F0A724091BA58E7B287BCBBB0542896EE6984BD224F413057
-1CDFF59B22C30E04E8C2F1521C01E3922819AB0D2812545688EFA078F31DD367
-C1F4E7730B4D1B6DD06E13AA4EF98FCC3FE27B38151DFAAB1D0246A90F19A551
-D098EBDBA701C465052C13AAF120CD03A3207383EF6CBF2475FB4DEBB47CE59E
-68E915611C92CB85904EDA1E5B9F221025C6C5156FEABC2D361DDAE74424C730
-9E5BD34D77784928BFB53D163BD1C7DDE31F5A1E391DA1218D99287B95A1732B
-316BF5FD63B237A3B1B7AC39522C41BCC109020DE6A8F683D856EF2E6D2F3158
-8A978267A0DCCDB9E6C4E4A793FBF2FC49647DBD6601FB7F59D77FF18DCEEBC9
-456A9F46AF2C3B5A4FE0ADFE49BD1CC6434B59415E6B783B079C94DB69005148
-1BC9897FE8E1196F41DA53F2261ED3CAB21D0EA3B3E85EE4BDB280F8740D2AC9
-85B0799AB4586E3B8B8D693B5975943D9D217B8B331E9DDEDB482BAA1121174E
-C0F93158A672DA9AFC520CFB4BBF7A8ACA2FAAB5714C7D182D09367304A6E0D7
-BEA0D00E7204FA4AD608B12E0A2C3708DA6E3BE762BF189FDD8781B6E647F8CA
-2E745B58CD65B2DEA153A707697216B6C1E3E44AC6FD29E71901D8E45E92AED3
-259A0434957ADAF00C28C3F1F7E31B25C5E248BE9659F0DC71FBB71057871848
-8872954943AECD35C954CD5C45A3E8AADCD16F28CCC7F06EBE7C54348A2D57A0
-1FEF1F7C6FF89001BFD7E90C17695BFD89EF9E1E4EF27DDCAA3DB1405CAD5D3F
-D93E8C76596EA4B5F3AE567D9EFA1F8A166D0EB66010FE8298DF313D55786E77
-7E249978C56096C200D53A255B0EC5C4BF9B9C1BBF40D114E8742BC16041A5F1
-CAEA142873E106E3972E6DB3044A5A0BD5C5F729991EB7F0CD2615F7526144A0
-CAF82F826610D30824A5A20A9020ECF95742E79F4EAB6DC0DA8B8C0CB0823A46
-14C71EFA8722F7E1B8983DA273F676080C3B37E9EBDCCF0FCCC552C0BC7DAB1C
-CACED3ED8A6E4F579B0CC2D6E83CF63BDF068E3750DCB74EB1B1D09A2D0AC2CE
-E5DE1E51A328687B1D40B7C011A0DF846C330CE4F038727C3BF4DE1CD061B5A7
-E5DE34583149FA8AE50EF5D016F5EF062B32CA4DDB1A33CAA9E8DF666E2475F1
-512A72EE0DF61AD226368A33F85E419E50A8E032293EB3925BAF909A2AE0E647
-81C9A413D670CFFF4F93E3F6F4775CE58E982B945329C30481ADB922C6E17274
-F7636E1789B101662F5689519334046F48BBC27479522BDE80BD9C5EE6D1BE08
-1995B10936BD8AC9D7EA990F51D9A96A1A5D7718B2A64117C88CAEFF73F60112
-993CB70B0FEE7DAAE9F6CFBA9F991DA740C041DCCCC4AE132DED46A45A4552C1
-808CC0FFB9A3AC893EF4EA85DDDA4E7651B617BC79088376B1D15F3F1B9154D2
-3AB2AE51D7E654F95E87070909087AE6B716D37A4ED3D8D359EA9BC211736C08
-6EE76436477578E23BC81CBE87D326D57EE33A172BCA70856877970E80114F30
-8E5F85A908352425B2CCDB5697CFE2EF90465642FF498CCF0FD7A6A77068172D
-9AEFBF70F58A3FB26C0CDB83C83255B6506F3012EA903F8E89B75CBE99BC3713
-E1FD46ABF2850ACA11561F9BBEFD0B851F953DBE273D2736D1F370768C89825B
-2994D3DE37E086813FC462F696902455A1A1A947DFB91629FB1C62531F01A4CC
-2A74FCD447F3EA20EF0418941C251190EBECBC87DDEB852EE693CEEE2B89E2DC
-237416451ECB9291D7F2C0E68F3447B72392438B7C42A1B921A742BCF5DA0B58
-836BED4BF5B234325AA1EB97ED9A8E6CD13ADD33DE2C9283CF46DACEDE73A35A
-1675EEAAC0D8F8FC0CF023581ACB1D0241B477390395DBADAC3C3815CC55B6D1
-DB62D7AD5AE09BA334CCAC1323802CA544A75CE8E324CDA9787255CB60566D6B
-6DC410F02C1357DDF54910FA24E6B8B53E4DDEC2028D357B0A51C0CE6A073EE4
-638C2C756E43D59269E67879CC7848C63ADD63412AB0EB9246DF01C8F85ADB37
-FEF0C7D637D6F40FCD92C4CE62B6F0D62292F84CDE1A70F596142B16F7E76407
-7A6ECA2F8A49CC56ED141963EFC7EFB72C02D04DD52CB6E865E94AA41238C971
-3F76D94EE30ACEED4321E70110E7F3A1595244FE7A9669C948A048D598AC0E65
-F6C7B52A5D7742C1B105F9C86C68E592F65D541CFAD7FA0085DA65F7F9B566B7
-9298CADC6B3921FC9029C5213F8834866A752E938D2DB8FFBB071A3F24CBB7CC
-99F5E3CD857A74D8974A443071B4E4C86CD7E700B6219C2ECF568CEA17A9DF39
-3B4FF618889CD94B59239C3F4F7C7658DE5421DF18CDA1F5854B73782651023A
-5F474AA8D6181E37C60C95F19A6990C4E4432D2336CB8EB361F9E5AAD3B7E2D5
-350959A1F309BF66A1A1569247407D9979F99BC85AFD41D44D8B8982F7071B27
-B31A8FDFA4D4484F6E3EDC218904D7B11D4EF38204AE27DC669F35F7CBCCB01E
-4B79845D084998E34B830F5600AF514E58D154557F13737AF20D5432BDDF5936
-D07F72C83FB5AE846BD8B083E0AAA5FDC73F4EF305ADD1C03CCA924CBB35C252
-352A845DF3D2159EED08E9EAB16647515E5930DAEBEDE91EF946787ACBA4BFA2
-BA898C60FFC0696A9764A51D01E31B6B39F22D289B4DD78D02D85D7FFFB3C3C4
-52CA50C8874F3C5557C22D7EC19236B0C25D89A6A9C64B2ED30932DF1D7D16FB
-278EE0F2F86B4F0130B5FA464C8257465F18F72FF723F67A438014D1823EB70F
-008077C1E6BC7D4E64D257E57A9891E052A5C2E0E8F03AEAE1FDCEE4D340F104
-583391A709680C96EA751B85951C99CBDD2D7CDEEFF6E4D747CE5D0D18599327
-AC37FE3AB145C19B76A511C0B440C98323B4F5941CE43979523DCC9640B346C2
-9C17C7C0D83D8ECE3D08E45267D3B4E2AFD78535ECD8CD65931D8E402A024C76
-6B5FADC434AD3D70E3538008BB3088EA45D7973E559581740258CC81E56F96E4
-E396A070BCD36CCF68623F05A817634D7C20BBD4313E36ADAFA35B412DD114A3
-87D0D92B6FA2EEB56779CF5A8038BBAF6C22A516C5D4CD09BBE9CD6F292C4F30
-0D078EE1EBD47EC7AF11EAEF72555F940B59942CE640BB461D529B3DD7DC59DE
-83B869FD97A69A92D01166B47DAEC3BA68DC8E314D8988F0A313FB0E971E20D1
-5C30A9225E2F537B23FFF0D9CE204B87A96E5B4E502BFBC67DBCA89E8C938F4C
-0F1712B956A6CE28D508359914E634DF70994A9430D90E9358BDE2800A05AD21
-3DA296BEA7E9C501908BD0DEA98436FE603B787FCB265AF2F69D0AF42A3F8D98
-AF22321E0CEEDDFAC5223B86E5E7E04FD4EED7ECE93255C2D546F8B423FF8DE6
-C7A6915AC6357A5FCD42D4262C9B06FAC29BC958CB7000F61B03C3C373295DE1
-92DB914B0FCC9D774E357A8B3AA97594D86484E056BCCE7C875ABDC6E04BFA6C
-F23CD3C39F7A5E652F9E7B1825258B791E840911685C5DB9EE0317229CAB1FAC
-BD966C2C1C947E84B9721A9C098AFE5C67EC3C0CD18E249D172E8F353896D153
-ECC2085BF67478C1A62C186283ECDD8F8ED860D88C72B3D84F116DB67AA63274
-302BBEAF09C4F5D04F2407BF9A43403B97FFB4672569B5E4A018CA9F412A7456
-728F70A0CC6A14E0EF7DA545D530BDB37CE47E65D836E211DFD18A0099356A35
-B68245F0ABB1D3653FCEB198083485B91F33C5C3D2AA2C5B3F07DBE2901FF1B3
-CEB2BEF981FE56D8554758720B4B984A509F8AEF743949ECB64310F87DA5B522
-A5BA72E3A5E1DB9EE74F912F1E70398D7D6699F670B0E1DC4C2F76D7B9D5CFFE
-E70B75564D3E930077DD78FCC47C55FB783B1E48901324CB5CF178B8583CB540
-BF03FC20E649F1C4BE64F1EE83B9722EF6E1447AD95F821378DEBBC0D846BDFB
-4D6F42800C967E6CBF3ACFE43A0A634F2F74DF741419344E838721FE98FF6C04
-79C8D8B5929D6D3F73E856F2085AE5C5CB4B028B091B211BFE3E9629B1C37772
-749960BFC86C941A4B3FFC4552D15B4CF9F2C9D44767CD34D134469FD2BADCC6
-77E651AD7C0E31DBAAA712A08080FE248AC5E592F8049A07FA1114A75C481DE4
-CD775562068C95B2B1D4B3242E5C43C5E5B7D6F5F57E1FF4134F8DB69F825F47
-0548185608CFE84477ABA83256F6B8BBBE668E8C525387D8D2448976E28BA5B1
-342148FFAF5903756F07F8F71DC9F323CB7448ED6C1FBF7CB916BACE2BCF1C71
-2C5DCDF9E344BF509AFAC07A0A48E819708927B36AB4EDA1D85782DF76D20280
-ECFCFC7003E60DE083654CB094F0216D7D8028DEB3C1F622EF341272FAFD9449
-3424D8428F4C8A51353F494C1E14534174F3F901C36E7743FBB03A665732D738
-4F78FB4AEB235F68CFD835818268C099317D49B8F794399CF8265ADF1120CD66
-75B2F9A5BAF86F4087CD1D18B168F3C555FC5C2FF0DC84CC14E6E4D92A366B66
-83C4E672E166ED8CEC9754EFC094AFDD263355A5FC1A81AD06ACA951CFF941C1
-93B4B036933CA8CE859C8073AD96CA9D2B706A0B17368F350F0BB90303766D59
-1D7551ADB6C952F499864B2B48790665243350A1294CA9FAE96DE3B4E160DDFF
-86E47810B8F00E46BA2008532C238525273C1EE87D706901EE95B73A6EF33DAF
-1DB033BAEC49324F2F4A26F510FDDF44F3F1884CD4D56751C144A2106EF7C63A
-C6D5CB11307FAB4C66D83D3E347DB503E3C98A49763B748B8EC5DA1C42167F5F
-D215865D84D7E2B01F94F62400F1FD81EB194CB80A4B33C1A5C5808164D8AAAE
-D261DDBFE916BE95BCE0D1B9936A36CC6E75DB412D4291EEFEB509053453FF14
-8D5F081E5FE7225C94D9627878D66BA4B4965DB12C1EB17ABB0A2D87A948292D
-D051934F33CCC97CC09548282BD24F04E37B724719138C0269DE4EC3E056FA2F
-CBCE254B977F1EA5B6CF56D590F5066911300AE3632E97B4807BD7947530D2D5
-1DE251686C5FEF4A851FE9AEA61BE752E37E5F5501B878BDBE054CA1516D0DB7
-54CEF32EAD3D936315C8702E5048B9109A6036FF5159FA3A0675A469CAA1959B
-A33B6322D0CC76A5B30546D41C3CF17B67B8E7FAD383D16F14620698749EC178
-80048C97D029E229BDF6227E4FC6666606FBF3673FB8205D5DCF3F5A83313227
-D1295134EE8C71E00DEC1487994483E9B81A642C53A8198EF57DDA9274FBCE4C
-6628EEC75C302F7ED41D10CB5F1B2AA4B12A5415E4510D25B1F576CC16C8F9A6
-5ADEE2248A1B46DDB499D779F8A63E09F674E27F74D53AB4642FBE6615094FF7
-B8040EBA84D850675C55AED0C9E1C4153428E1FC7AA8D9335B42BBB41C1C779B
-8717A00E96D2B9B4138DA60D818A8A303367CEEFB73A9DC01E24A7F160CD9AD9
-D375A71CAE6115FF29A61796418CC67255735BA3471D6542ACE20572B5E2C9A7
-494AB3EF0C728D7EFB42FE593A7F39821061B599A0772181D74438C5C7766CBB
-18D035AAA6A54F9922972E44D7AEF4AEC40CB0301FCEE83E1FE18196114EA8A0
-F7C91BC4339F87CD35A68ACDA8FC9F10E1386A040D910BAD5767C8DB06F5CC53
-35FA824C791B0870312C89048EA85093F0BE8FB4FD778BA03C048209D29BB315
-D601635271F36B8D38F83E8069482FDAE6C74249BF1CA70058C2BC8CDFB7C7D0
-9D19E903961561A4DE07D412030BB1748DD16F9DF7EE1CD8673B5DDC9CBB4DDA
-81716505A58E2C6E7EAEB44F7BC67FFA1A8C0583A92AB1710B618FE04312C778
-878DE8282AF5EE543222716741000EFD5267AD23DBB8D17B354AD4255D1625D8
-FE10341752CA2896F2E8A045B179A083595332706A62C34035AAF0D54F529A87
-AC9D67975E894EB72C5F15CAF1EA10B500CA39AFB32E3CF8A3332DBE41B41EBE
-3E0C9D2D68EADEC7F175885AFAF975DF62225114CCC3030D6D93F0C7FBBB2D43
-B4137595D7337DB70A5C763B9CBF597668A5BF3181473785A20D959750642B32
-04709F214C67F2E84943B39CBE069E84EE7514EEA255F5919750DB4A2D497AD5
-BCE3E4836DBF351BCC9AE7B05F8562B3411D3B29B807882AFDD951AB1987C040
-B21B661F8F9F37B724648CCE293CEBC503E812D03B366E18BD8E20F91AD432CC
-3A569F63867572311E492AD3A72B67B9DCE970CC21DF69492F2B60BF59AE176B
-24118C7A1350A243143600FF6E83C7762581746ED1D1FD64BA1A1E8DDB4888AC
-F2A2A33A81730F2E26DFE89631EE000C0D99EE8E8BB0E3A37614A4F8631ED982
-002CCC4DB0A2AAC85688A56D48D701C99321CFC5CE97BD3193A8925F3A4E19E9
-A34E7F53D9535359FCC9599BD30466D5EF6A64DD80F981BE451A3E34EDC1C278
-BB9305EFB756371853152D313CBE01808F60CAF2D894BF5D5905A54DA745D2D4
-29E3876D1E7A187BAE9D6207AA1F70222B7272A863F05EC0D29EA4562B7DEDCF
-66B369DA7FE7C7CF8D433A75D45486F864CC7BD0FBE940FEE9068C9F7B41ABF5
-97BE7ED06EBBE935C5135967A89EB2182457374C83C0D795D50A6ADC0384DB46
-BBADE8D2CE0A37FEB55F28425C25F26049590EECE560D135C8C7F5A4BFFA0AC2
-3ED2FF71A36867C426D8B9C9
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMR12
-%!PS-AdobeFont-1.1: CMR12 1.0
-%%CreationDate: 1991 Aug 20 16:38:05
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.0) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMR12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMR12 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 48 /zero put
-dup 49 /one put
-dup 50 /two put
-dup 51 /three put
-dup 55 /seven put
-dup 97 /a put
-dup 109 /m put
-dup 114 /r put
-dup 115 /s put
-readonly def
-/FontBBox{-34 -251 988 750}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
-68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
-3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
-59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
-51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
-DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
-AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
-45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
-821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
-96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
-9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
-26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
-140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
-1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
-1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
-377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A
-0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03
-5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4
-ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15
-FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CEB939AD2EEB
-4370BA2C96960CE9E6882316268ABAF1023ED9D2D13969EF9E53F52BC143383C
-AFC14F27A7530C1EF399707711B3AD971D9F57DE244315EED5A16F9CB6AC1524
-65C8C8458FB03FB8619B8A925DCA3AB2518F044DA696A4D6F8DAD182E1C15D7B
-C108C9538896A23A043EE66E18808902D215E82AEBA183D813D46B89A3FC847B
-A7F6E0082DE9AD8C0A83F521219955FE964A660826FE921E1EA12D7B34D65EAB
-B5E40E74A9666CBEBBFCB9A26A0526B72AF9F31F6A04305FA0284816DDEA6D1A
-5786756F613EF9040290DD2D2B27B88ECC0A1FE0DCC2035211919CBCD2DD7A8F
-35EF236D4E0749256874CDF5BA703F0C7B49EC0C9EB5C65AE1E7F7288452C619
-E013FCD5D5D5F8A517DA7305F04B4EE61B12A1A2A26C08A46982A7D1EEA07D01
-809552DB4B07FB6EE5A798324C57FC6C2A7D31D102E1BD5F296E9051464CA3CD
-F37695EB0EB77BB83F258039FCA21B8252F70CE5D3D9D74E452617B055E19B5B
-600B421C921B026BC7356AF63F2690C62B1CD9E479D62EF8F964D9BC29AE1447
-F096FA9ECF5E52F1F7E2FB34B02BDDE6C210D3A43AAADC40636AE8271DF2174A
-A63236C4BEA8FD7A6E841B4AEC2CADAA7FC481A16322BEBF01A31E4CD5A577C7
-EEA43211AC7C2C40A6EEEEE7BEEFA146BC3322E6A9E157641A67823CB2661C97
-07C1DE919CF5D1EB4550B08A8452972330B08C87A6AC91BB519667CF32F2885E
-71D69B398E7C59F815FA730BAFDD7F54260EEE5BBF6219A7A39D65B0624C9555
-CD34EAE5E7E9AA681B06C1EA575A6C41DD490E0FA258A93766707B6C8A35638A
-653E9244B25045CC2381F4998278F9844FF704AC420696AA6E18C8EA78D98163
-52ED5CDADE35979C4CEFDCA0B7C1A26211F04907D036016EE8A1F40BC4143093
-19D3F937DD6D6328882E40141CA000D42EDCD4D47A5516E5FD5205CB31F88D21
-8E855C79000D919BBFDBB843C29FE353B33833A36A6C76581DA65B8037DB5DD5
-1BA21BF81BFABEE02759C35002E9A0DDC78D460989B8948527120ECBCF5881F9
-F035B80F9269B0A846780272A15B14204B8C03A1A135092E31F162EE4BAF20BE
-D3C1EDC193FFDA52128313E51CD76189A911E82207A822DDF92F6E821A75BC5F
-762E99FD94B1148E71E873C01B46C0158170047A0E6BF5962863113893C71AF0
-FA1BB71520E364053B404B3D912E011D226A95C7ACFB4A1E7166F4B9BA67B4F7
-908FFA34D2C2199F7E5309E6DC0C76FC502D88752F6BEA537262DEC294E3CB05
-E511CA14CDF663D8745BF6703AC16FD61B43F7C3C6A903AE586FA783EA4515FD
-B3CC71B68757A66338CD91E4A09DAFEF053737D76A1A9B32BAC308021E7720A7
-8E0A341A4BA2DCAD4E0112DE60DE99539FA7B0EE73CE05BB245A1F5CFE242333
-8BFA62C67C95F0843B7369BD117C489DE934BB69D927069C072920398CC2DAB8
-62101720901D3DA6465303ABB9C19525DBBA151D0F1D8BAF70121CD368934EFB
-A68A210B8FD29391D25ACF6D77969768CF3C008DDDE81E2869083F86463FBE15
-E43370010EF7B374F3CBE74E86E80985B498014ABB6D28188DC087973B2AF56B
-71C3D7A500949D5950E745C3718317BD7E22F54D169EE7C702EA4C37AAFC853B
-2B6575BF17C3B0A910E47AB0F85C0F296B161F77E2D7E7967BE4951510732D40
-96F8C2B6D322DC5709576DC8F2E270822AE3A0C38DC54AE36A1D612D356C1347
-6E4A9C592787048C21E2D833263B65C8E4427B64AADD32C311361B018994ACC2
-ED31DE81A87D2944190F1EC792E28663DBDA732BBB7C1B39E0C9B652BC2519A9
-78AE3F205990732DB91653B03D317CEBACAB797FDFF3F01BB33C5B78B86D8783
-7AFF1ED5B3163983678D361A2B3CBD4CA1EEFDFC587E6FE91F62506F235109B6
-8E51CB8295F64F6C7E69CAE94466DE4B186B50D5551D51316DF9AB44EE853071
-B6FB652DB8B5C09EC2F4FFF2E231955CB58224DD864AB8D71468EEB44D967276
-7F048872912A3B92B0F54D5ABD5AD013B4BF2706D53FE5ADE3882F71C296F3E1
-35F4AF44A0B84D7840BFD29D466FC2D2F4E8C81B2B69C8EE5C2DAD4C1678F026
-144B7FE3A72CFAB5E1950EE2F8EAD198EED539DDCAB4840FB8ADB9ECCF6B31B7
-39B70FEE5F3BA9E758DFD9ECE3A627FB99495BCCEF3475FB360F235ED73DC910
-A787A5C59AE1AB0777ED3D08E5202A63E090D88B13C4752DC4D95113A259787E
-4C42D6C564AC849D5F9780D8EF59CE68268D052563C19581B06F7789AB1DEC3F
-EAC624CF6DDD2A821ED46B01F14A668F7ABE74A5529C94F086DB03C71EF817CA
-AD815C4D3588F99AB3A90B53EC855DDA69D299CA7C6EFCD2
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMR17
-%!PS-AdobeFont-1.1: CMR17 1.0
-%%CreationDate: 1991 Aug 20 16:38:24
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.0) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMR17) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMR17 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 39 /quoteright put
-dup 45 /hyphen put
-dup 65 /A put
-dup 70 /F put
-dup 76 /L put
-dup 79 /O put
-dup 82 /R put
-dup 87 /W put
-dup 97 /a put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 104 /h put
-dup 105 /i put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 122 /z put
-readonly def
-/FontBBox{-33 -250 945 749}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F075EA0A10A15B0ED05D5039DA41B32B16E95
-A3CE9725A429B35BAD796912FC328E3A28F96FCADA20A598E247755E7E7FF801
-BDB00E9B9B086BDBE6EDCF841A3EAFC6F5284FED3C634085BA4EE0FC6A026E96
-96D55575481B007BF93CA452EE3F71D83FAAB3D9DEDD2A8F96C5840EAE5BE5DC
-9322E81DFF5E250DEB386E12A49FC9FBF9B4C25C3283F3CEA74B8278A1B09DA7
-E9AE4FBAAF23EDF5A3E07D39385D521547C3AAAB8EB70549756EBA8EF445AF4A
-497CA924ACCC3DD5456F8E2C7E36946A5BF14E2E959895F7C94F49137256BE46
-4A238684D52792234869EAE1A6D8ADF4E138B79472D2A90A6CA99E2394CC20CD
-3841733046175B20CEBE372327BF13428EED6A3E2FDF84C2DBA4B0AD584EE9DF
-B51828D3B8F385846158C29C9AC3496CB9692DD10219697B2ED4D425C3957FD8
-C4600D76E045C561216EF05D38177243C314877A69A1C22E3BEC611A2EE5A216
-9B7C264CF6D1839DBBD78A40610F2C0D7C2FE09FFA9822FF55035AD52546970F
-83EED2D30EABB1F303091EBC11A5379B12BB3F405E371519A53EA9D66174ED25
-A2E55463EC71A97BE4C04B39E68112956117C8252DB6FB14AB64534B4BCD568B
-246DB833982B38CDE7268BBF74B6B0C18091E1B1F87D32D66F4DD023D1F10D2A
-7736A960F72AC01F733A11023832CD68FB6288A5977743F6F3F23E0C1657CF5D
-E8374835BDBD2DED3690C84A1EBB8E2383A5E49E610B6F5F0F5F5EC43CFD16FF
-24FEEFB92425CCB577E17FDE4EA6C50E1448DC5726A21888E25B6D6B52DA3D3C
-E4C4C6A73C176DFEB60B6B6191B336AC4F5BAA123E1B3B6FAE4B3FA9DC8F7E39
-335277EF2294315BE95F64EBDB1F393B293FD0FDB9DEE6C89082232013130D28
-9234FF12DF47D454558A1EE8603B2832772E5CA07D18B34A4763D5B890F7173F
-B8FD38B08F847FE570367C2500AA592E8561878A86491A611865254BA6BE10DD
-700C01A3F0D254A5AA0ADBC4DA708CC9909EE3B1692657B5A07BF14258EEE82A
-137F69C604328C9E5B0F08F0C2F9A9E805CB3B78BD67578F2468DA55B04C5602
-47A6191304EA7CD9C8E48C02D0DBD1FE8CAF94EB5A41EE79C5989E3DCF332E0C
-C15A728C039FE5FB62F6E38B496E9EB7FC4DC700408E90DDB5585FF577079F94
-B4E90C8CE6DC50C1AA95F6122C334614199AD3C4E665C978E487DD75504449BC
-51586C840BC8896F38A17B41614817AF7855558578F7C3E185C523E10156BE88
-85BF39E5762F3485EB514EA2ECC3636EC62B4B6A8264F2833247FF346CB2F9E7
-A60B614898EFBCF22DC8ABFBE9124AC221ADC674209C3E008F48CFF08950DB97
-A467AAFF342F299F24EE591282FE7A0683CAC644AD052C6AE6FEE2093286820A
-1B300A7B807CE97A8AE52914D5B59529AF3549D5D7E66A82D7D3FF2447922C1D
-CD5686E54BADBDBA8A6C7BB3CF398616A993058E89F4C1BE85696A780B0B9BF8
-4A4D713CCD7DE2B305407FF0B453507B3358443FA4218550A893CAB19E69B85F
-AA7E14C6CCAE0BAC75A8848420F36B2A81903CB97527CAB8958D5B168CFBB1E3
-3FFCE29907DE48683ED44B0682FD00C9C4E9160B324596E092DE8DA82D985B84
-7EBEC02E90C23EB9DDBC078E37ED09A882ED52EDF3DE1778D9DC0C6E23202F54
-FF45BB75860360C4A4A191014DF0D8F72DE57B79A7EDB8C52306217C11545A50
-28C9CFA7694C8523544E15E364E3909089872528B191CE387B3EBD9E5C92609A
-71C221C41EB2E4DEE5AB10D44746C8E8D57D5710F5E51D4C5ADADE0462CA1C6E
-798812EC34CD814C0792DEAC9822367468020311E7791FE7DAB1732EDE77F295
-72BB1C054A8997E3756C6DC7A2BFB7B0A703EA991872FFABD8F03DBD72017FF5
-6216FD51066BE58C345D713218D73A9D32E54931FC794F5F464F17D0F76769DE
-0A9BEF54CD93899972807164A286B6DDCF966646B26E93483B504C57B5106300
-DDB17C126CBF0C324F7B9B2F7E296AE4FEACFC248A55C607B075E5C265F00DAC
-BE7D3FE89941F270BC33DC1462A42A97FD5201A4AD94EC4C93B283E374C238A0
-D0832624C868FB36749A117030A6BA50F0F201D0F0C46FCFC1808B9B8D0E84B8
-20377A74E1AD9DE13FD281D9450467C5FC28EEBD9DC47F5180FDD007DC16ACEB
-42A2B2B8520ABFE8F89D2C54EB9AC77284FA19B6812999E14C4512A43A3166E2
-F6B46E8D9E021691B0C02969558B00714B0DB60BFA58D64D86707E7BECA25A89
-2BFD8ECDC6F009D2DB760E57CDF17579EAB32D86CC5657CEDE8D8753F2D5055A
-26C4F19519023FE8AA01BF84D0829D9C316F2061487CC5F4309FB8707D8F8FCA
-7340D30EAACEFFC78E7FC94E6D3BC634294B3DE805DA5C44BAA53056754ADA43
-1737E9EA0FE90D2AD000A6BCCFAAF21266AF7D81D878AB96C1367FF462022559
-6266E00EDCE370F06FC755C4D4F0B5EE3C2779D922EE3750EA75199BAB8D50F6
-F6D0AECD37440413249E41C339290C346EC53E530428592BFF99A43EFC69C784
-3F0B877A34BB0690DEB5104413E1B59C89070235212216DBF040FD1205486C69
-C673AAA2376AA7047124AA3508BB89784DE93A2E934533D5153235A6C5D23173
-B6B385566DCF0B313B59ABCD3428BAA592165389CE18E40E959DFDC17F88F998
-FA4D9AA18E98FAB3F92448B4A5D28B4102A4359770DC554BA58DE980F60D2305
-15C612737EAC879401BA470508AEC08397019C14E1C34244B0FE994843FCE823
-719EC52F6E00B75675FC3D3FC0B1F2EDB0B37BAAA2A0EC1389F395D3F4AD6EB2
-7CD220661BAC0E5438E80D8D64CD68230B07085DC27306B956F542D479EE7CF3
-FDFB6FC9DFA01C25792ADA79575324AF12F4447DA2947957FBE640092DDEB879
-5BE484280D01DD910B6D69282E772C9140F49B2742651DCA95B7EAAC55CE08B5
-13FD71F51B11F7FF7021AF93FEE2A6FF5A6223B155A4D1F92E99C576088EB402
-519C9189B7D5D345CFA9347845D916F2ECA2C6B4142EE4B33C13F86D18ACE6E1
-9CE6DAB6B6F336197E4EC25ED0B38D7DC087A45C32B520454E42E248D18A4F11
-DEDF9778A9BB1FDC30768B3DC7E5A39FD51434223B46716387F7A379182B21C7
-CAB5A86AC0AD2900E20EB2566190931E7E86C548F88DC1B55C8B80879E84E7E3
-0B5739D30B7FE204E59D281670EC90E986AC08BD38230E9A341A460149702565
-214704BDDC9176033F68721B3D0C6118484BC8D06B15CB3D8531E19AAC3B3A3E
-4F44BF226AA4770612D4B3537988141D895CBD36718996ECA4138F10EFBA52A4
-1F89FDB0450D353E0B5F2BA4BC42372B12DD4ACA8521EF5E9C1DF0A575C4AD65
-379F55A3725DFB5C6D8C14B7B8BC22AEDF86886F95E2CB00134C55DB9CB49981
-CF944A6F2B744806FEED501FFCCBEE919F6B1E2973881A0941D9AF8E6781491A
-0C32555340FD74545C59D6886619F873207E9961516E26AD9241C2BAFED73CF4
-9DB9995BBEFC11174B83DB92E3E329A7817DB69DF9DF73CC18B369F0C060EFEA
-B8D36C848A571210EE2A2AEC9B341F0E8AD42D99702FE7442E2DA2111DB02444
-E0C0C2BD78E6E6268EE7922FBE5202F186C0FF0FF59071ED4BD5E8E3606EEF7C
-302A5B8A4686CC8EE8D5D6EC6716103D156FFC7B8DA9D7180918EA1464543DFA
-96B98E10C561E05C6BC273B5C3B55D4A58357E1C6DF714F5345B8225F582D978
-793B743C53485EDDBFEAB2E2E8827FF86F1891AE4683EABBFEF7265B23254B57
-98FDEAD48C78800991815269E9F029A7A095DDCAA3BBF39D8186CE1A4F83463B
-A176DA3E3CB4AEA081BE712543BBD541A73671E44D7A6141AB3E629DE47EA084
-BB7D9EE21C8A895960FAA8B4EAA51BEAB75E8E08D4BACD3C0BD48956BE5DD244
-94E1C304AEDB176FF7D74D0E42F3475C9E500D4F6D2C49AEF88C3969A08DFA04
-C985CAFED0983FF889341CFFA5BAB503A33F21252B56D3AC1E688871A645BA49
-76DAA7AA27E605D1B6B3D7E3908A55D1579E700512C5E85FD4FF22F977063AF9
-B4906B791A6C5052B70B4CABAB353C68F6273D47708C871FB6D9B7AE2EFE1867
-830FE235F724072DA524A2B3CB4B64B40DE23C7700EE771F0E603E7C2321BE21
-F86601E481AA131BE8ED78F0099B56587F301B59DAD2AC84175B806E3B2FF14D
-6D3F7545B656173C68D813B22D6C07F9457FACEEB2B4524C034F9663E8DBFADF
-556CBF171715929F315E271F1E8F0828523D8CE00E875260FE7BF156EA661B37
-1C1ACB041A7145A2E7C9085477D60BBA7176892BA16A65F5C769586281F93629
-269BBA849FD795648D8A78E6F0B49758B70C52DE747071076D994972B2B4AA0D
-8308D55B2B70E64CBA7576D90C07D4D026255E70E7C1ED3F1D4B5E1FA63B1270
-136D2FA2AFED86EC1A2B33126B2650077DF2545AB0E93A578E846E9BE957350B
-AB6B4545EDAE7114C2043DA611FDC14EE57341E0A186E89A87BEB9AC325B68D4
-12C366E1F55F865C4DC08D6F495324505F54EF25FE095878929A1A12D1E9D65B
-B4FCE8F49CDE56B57DB3DB98239C05E4E3212F0E49DE66C60690021C4FD89E0F
-76936ABC611CE8BCD007093F0FD9BB44D3A96CEE2FF315F61757FD230D70FA59
-6E97772DCD8C97CA2A41B7EC8155089CA0ABE2BBE4FE34E23A817198FA9B9950
-E7FF865182FFAD297584F5B124674B7245B11F0262A605B7B113C4E64B5C90FA
-1FCFB30FE868A71B558DFE3C39BCB53FC058EABA5F257A467521096772B103DA
-320FC5C1F8C68A85537DE55B26BDE4B0AEFFB406EDACE2FFA3F47D47968BF947
-4B369F88DF79C6317AF228E8CA78E9372CBB935C7469C25B59B67653B188A06C
-49FAFE69BD5D933E2C4DE9B1207A7314931FD59C06C3A0EFF498140FF5E5A761
-F2E2ABB6CB4A9F8F25737551D2F5828649C64BD8C138528263793C663B9F550D
-CB4F7AF7E007F677A50E29891452D56F654F30AD5FB93C46A86E03CDB4CB379A
-4378C69E1C48CD65BC06918D149E529EE07A9DB2B9D6C5E951CD90CAF69C2744
-85064E6D9565F9F4C337E492C28AAB023D78B2A72AEC70392F89F15D69616FEC
-E74774C9E8995EB344A88B6B86ECB9ABABFCFAC17041554C30F1612B072E261A
-12326F2768BA7301FDF714039B7FCAE28D8D826573B48B9FD1A2F48A570C3443
-05D1AD4D1290773FDA57D3348D8D2EE3B13D587E7F2A5EDEC4D089F88633BF15
-1DE1907A9104FB30E8A06DB14FF31C6211D14AE824A8AC9D46ABEFA42CACD26C
-D9F4BE702C46FF3F3B916EA275E6B4BA5C868ECBE76728C3EEDCE84CB9BBFB63
-1CE927FE28AAE0925BE97C450FB410E63B0A76350559DDBFA5E61216B289750C
-DCBCEBCEEBAE0B9788760F581B4DE35184968D85F716BF65EEE3896DE814713D
-B0958CA9D120ABF2776830D3535DCB1866428EC9D01702F8372E27E5A2E57446
-0572381313C196FD1E86AEBB69E917D331E63C9DBB30E2D5F28360B2D3C002F4
-08F945B48D5F5B740071C39779ED7FF1AEFB8D2DE646EE0A5BADC9634CBD3812
-64615760C5BCEAC7F714A14682358B116855E098B007925A3E52D59DB0D18CC2
-FABFA3B8824E65C765A858EFA69AB3EA2AF6116937256D131D565CAE163E832C
-CC3C91102FF3487087EFCE11B21778F7CBF8F71D04C66B6314A6857D1FB7F127
-C83A5C9C2CAF3BC8A3663F7EEEFF0432AEDB16C77034088071026D5AD497D517
-40297AC8E77B69FD44FB1E2ECC96B5ACE9504C7C92633535E8AC8E186EEE1183
-A2ACC6E3F8ED98C0BF04E227F1E5EB273C28DAB32246F163BFCA0E1455831E25
-39D7AEAB974C4E1218973954E1A6E46551A9FE1334FA483E9DD671C2445EBDA2
-B9503AD86BFE89B4FF5B6F49618C835B82C0380F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-TeXDict begin 40258431 52099146 1000 600 600 (READ_ME.dvi)
-@start /Fa 152[42 42 102[{}2 83.022 /CMSY10 rf /Fb 135[44
-1[44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
-44 44 44 44 44 17[44 9[44 3[44 2[44 44 44 44 44 10[44
-1[44 2[44 44 44 44 2[44 2[44 13[44 44 18[{}41 83.022
-/CMTT10 rf /Fc 134[59 3[62 44 44 46 59 62 56 62 93 31
-1[34 31 62 56 34 51 62 50 62 54 10[85 5[77 1[88 4[42
-88 3[86 81 14[56 56 56 56 2[31 26[56 56 5[62 12[{}36
-99.6264 /CMBX12 rf /Fd 214[28 28 40[{}2 83.022 /LASY10
-rf /Fe 193[65 1[65 60[{}2 83.022 /CMMI10 rf /Ff 133[37
-44 44 60 44 46 32 33 33 44 46 42 46 69 23 44 25 23 46
-42 25 37 46 37 46 42 2[42 3[51 2[85 62 62 60 46 61 65
-57 65 62 76 52 2[30 62 2[57 63 60 59 62 65 2[65 2[23
-4[42 42 42 42 42 1[42 23 28 23 2[32 32 23 5[23 8[37 4[42
-42 3[69 1[46 48 11[{}69 83.022 /CMR10 rf /Fg 134[50 3[53
-37 38 39 1[53 48 53 80 27 2[27 53 48 29 44 53 42 53 46
-10[72 73 66 53 72 72 65 72 1[91 57 2[36 75 2[63 73 69
-1[72 6[27 4[48 48 48 48 48 2[27 32 8[48 16[48 6[53 12[{}46
-83.022 /CMBX10 rf /Fh 138[75 52 53 55 1[75 67 75 112
-37 2[37 75 2[61 75 60 75 65 12[94 75 2[92 2[128 3[50
-5[97 1[102 11[67 67 67 67 67 3[45 25[67 67 5[75 12[{}32
-119.552 /CMBX12 rf /Fi 140[38 38 4[81 11[49 41[49 3[49
-49 49 49 48[{}9 99.6264 /CMR12 rf /Fj 133[58 4[73 51
-52 51 2[66 73 111 36 2[36 73 2[58 73 58 1[66 9[137 4[98
-2[103 2[83 5[86 4[99 19[43 5[36 39[{}23 143.462 /CMR17
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%BeginPaperSize: Letter
-letter
-%%EndPaperSize
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop 614 872 a Fj(A)-15 b(W)l(OR)44
-b(-)f(Fic)l(hier)i(Lisez-moi)d(de)i(l'administrateur)1665
-1295 y Fi(13)32 b(mars)h(2007)515 1653 y Fh(T)-11 b(able)45
-b(des)g(mati)m(\022)-64 b(eres)515 1835 y Fg(1)76 b(Compatibilit)n
-(\023)-46 b(e)2117 b(2)515 2018 y(2)76 b(S)n(\023)-46
-b(ecurit)n(\023)g(e)2353 b(2)515 2201 y(3)76 b(Installation)2217
-b(2)639 2300 y Ff(3.1)84 b(D)n(\023)-39 b(epaquetage)26
-b(des)h(pages)g(PHP)20 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)131 b(2)639 2400
-y(3.2)84 b(P)n(aram)n(\022)-39 b(etres)24 b(de)k(con\014guration)35
-b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
-f(.)h(.)f(.)h(.)131 b(3)639 2500 y(3.3)84 b(Initialisation)27
-b(de)h(la)f(base)84 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
-f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)131 b(4)639
-2599 y(3.4)84 b(Con\014guration)26 b(par)h(d)n(\023)-39
-b(efaut)27 b(des)h(comptes)79 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)131 b(4)515 2782 y Fg(4)76 b(Main)m(tenance)2159
-b(4)639 2881 y Ff(4.1)84 b(Visualisation)27 b(des)g(ob)5
-b(jets)28 b(et)f(des)h(\014c)n(hiers)68 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)
-h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)131 b(4)639 2981 y(4.2)84
-b(Netto)n(y)n(age)26 b(de)i(la)f(base)50 b(.)42 b(.)f(.)h(.)f(.)h(.)g
-(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
-h(.)131 b(5)515 3164 y Fg(5)76 b(Authen)m(ti\014cation)33
-b(d)n(\023)-46 b(edi)n(\023)g(ee)30 b(-)i(P)m(ersonnalisation)935
-b(5)1926 5255 y Ff(1)p eop end
-%%Page: 2 2
-TeXDict begin 2 1 bop 515 523 a Fh(1)134 b(Compatibilit)m(\023)-64
-b(e)639 705 y Ff(Cette)22 b(application)e(p)r(eut-)n(^)-39
-b(etre)21 b(utilis)n(\023)-39 b(ee)20 b(sur)h(un)g(serv)n(eur)f
-(fonctionnan)n(t)h(a)n(v)n(ec)e(Apac)n(he,)515 805 y(MySQL\()p
-Fe(>)p Ff(=4\))26 b(et)i(PHP)f(\()p Fe(>)p Ff(=4\).)515
-1020 y Fg(PHP)83 b Ff(L'application)21 b(ne)g(n)n(\023)-39
-b(ecessite)20 b(pas)g(de)i(con\014guration)d(de)j(PHP)e(particuli)n
-(\022)-39 b(ere.)19 b(Elle)515 1120 y(fonctionne)k(quelque)f(soit)h(la)
-g(v)-5 b(aleur)22 b(du)h(param)n(\022)-39 b(etre)21 b(de)i
-(con\014guration)e(register)p 3083 1120 25 4 v 28 w(globals,)515
-1220 y(utilise)38 b(les)g(sessions)e(via)h(les)h(fonctions)g(in)n(tro)r
-(duites)f(en)h(PHP4.)f(L'application)g(fonc-)515 1319
-y(tionne)29 b(quelque)g(soit)g(la)g(v)n(erb)r(osit)n(\023)-39
-b(e)27 b(des)i(a\016c)n(hages)f(d'erreur)g(et)h(de)h(w)n(arning)d(PHP)
--7 b(,)29 b(car)515 1419 y(nous)h(a)n(v)n(ons)e(tra)n(v)-5
-b(aill)n(\023)-39 b(e)28 b(\022)-42 b(a)28 b(\023)-39
-b(eliminer)29 b(tous)h(les)g(messages)f Fd(\()-17 b(\()22
-b Ff(E)p 2441 1419 V 30 w(NOTICE)g Fd(\))-17 b(\))30
-b Ff(PHP)g(qui)g(sur-)515 1518 y(viennen)n(t)d(par)g(exemple)h(lors)e
-(d'une)i(comparaison)e(a)n(v)n(ec)g(une)i(v)-5 b(ariable)26
-b(non-initialis)n(\023)-39 b(ee.)639 1618 y(Les)28 b(scripts)f(PHP)g
-(n'acc)n(\022)-39 b(eden)n(t)26 b(pas)h(en)f(\023)-39
-b(ecriture)26 b(au)i(syst)n(\022)-39 b(eme)26 b(de)i(\014c)n(hier,)f
-(sauf)g(p)r(our)515 1718 y(l'upload)e(de)h(\014c)n(hiers.)f(Le)g
-(dossier)g Fd(\()-17 b(\()20 b Ff(\014c)n(hiers)g Fd(\))-17
-b(\))25 b Ff(doit)e(^)-39 b(etre)25 b(accessible)g(en)e(\023)-39
-b(ecriture)24 b(par)h(les)515 1817 y(scripts)i(PHP)g(sans)g(quoi)g(la)g
-(fonctionnalit)n(\023)-39 b(e)26 b(d')n(\023)-39 b(ec)n(hange)26
-b(de)i(\014c)n(hier)f(serait)f(in)n(utilisable.)515 2033
-y Fg(MySQL)83 b Ff(Les)22 b(scripts)g(PHP)h(ne)f(mo)r(di\014en)n(t)h
-(pas)g(structurellemen)n(t)f(la)g(base)g(de)h(donn)n(\023)-39
-b(ee)515 2133 y(MySQL,)33 b(il)h(su\016t)g(donc)g(d'un)g(compte)g(p)r
-(ermettan)n(t)g(les)g(instructions)f(SELECT,)g(IN-)515
-2232 y(SER)-7 b(T,)23 b(UPD)n(A)-7 b(TE,)24 b(DELETE)e(sur)h(les)g
-(tables)g(de)h(l'application.)f(P)n(our)f(indiquer)h(\022)-42
-b(a)24 b(l'ap-)515 2332 y(plication)j(quel)h(compte)f(MySQL)g
-(utiliser,)h(v)n(euillez)f(v)n(ous)g(rep)r(orter)f(\022)-42
-b(a)27 b(la)g(section)h(3.3.)515 2607 y Fh(2)134 b(S)m(\023)-64
-b(ecurit)m(\023)g(e)639 2788 y Ff(Cette)19 b(application)f(a)d(\023)-39
-b(et)n(\023)g(e)17 b(d)n(\023)-39 b(ev)n(elopp)n(\023)g(ee)16
-b(en)i(gardan)n(t)f(toujours)h(\022)-42 b(a)18 b(l'esprit)g(les)g
-(probl)n(\022)-39 b(emes)515 2888 y(de)28 b(s)n(\023)-39
-b(ecurit)n(\023)g(es.)26 b(Nous)i(ne)h(p)r(ouv)n(ons)c(\023)-39
-b(evidemmen)n(t)28 b(pas)f(la)h(garan)n(tir)f(failles)h(ni)g(bugs,)g
-(mais)515 2988 y(nous)34 b(sommes)g(\014x)n(\023)-39
-b(e)33 b(des)h(r)n(\022)-39 b(egles)32 b(de)j(programmation)d(p)r(our)g
-(\023)-39 b(eviter)33 b(les)h(failles)h(les)f(plus)515
-3087 y(couran)n(tes.)19 b(T)-7 b(outes)21 b(les)f(donn)n(\023)-39
-b(ees)20 b(issue)g(de)h(l'utilisateur)g(lors)f(des)h(traitemen)n(ts)f
-(des)h(pages)515 3187 y(w)n(eb)g(son)n(t)h(trait)n(\023)-39
-b(ees)20 b(p)r(our)f(\023)-39 b(eviter)20 b(des)i(probl)n(\022)-39
-b(emes)20 b(d'insertion)h(de)h(co)r(de)g(dans)f(les)h(requetes)515
-3287 y(SQL.)g(L'authen)n(ti\014cation)h(des)g(utilisateurs)f(est)h
-(syst)n(\023)-39 b(ematique,)21 b(v)n(\023)-39 b(eri\014)n(\023)g(ee)20
-b(\022)-42 b(a)23 b(c)n(haque)f(page)515 3386 y(et)k(rep)r(ose)f(sur)g
-(le)h(syst)n(\022)-39 b(eme)25 b(des)h(sessions)e(PHP)-7
-b(.)26 b(En)f(rev)-5 b(anc)n(he,)25 b(il)h(faut)h(noter)e(que)h(le)g
-(for-)515 3486 y(m)n(ulaire)19 b(d'authen)n(ti\014cation)i(n'est)g(pas)
-f(prot)n(\023)-39 b(eg)n(\023)g(e)17 b(con)n(tre)i(l'usurpation)h(de)h
-(mots)f(de)h(passe)515 3585 y(car)27 b(les)i(con)n(train)n(tes)d(donn)n
-(\023)-39 b(ees)27 b(dans)i(le)f(cahier)g(des)g(c)n(harges)f(ne)h(le)h
-(p)r(ermetten)n(t)g(pas,)f(d)r(^)-44 b(u)515 3685 y(moins,)33
-b(il)h(n'est)f(pas)g(p)r(ossible)h(d'utiliser)f(un)h(cryptage)e
-(e\016cace)h(\(assym)n(\023)-39 b(etrique\))32 b(sans)515
-3785 y(mo)r(di\014er)22 b(le)g(syst)n(\022)-39 b(eme)21
-b(d'authen)n(ti\014cation)i(d)n(\023)-39 b(el)n(\023)g(egu)n(\023)g(ee)
-19 b(et)j(sans)g(utiliser)g(une)h(con\014guration)515
-3884 y(de)k(serv)n(eur)e(W)-7 b(eb)28 b(sp)n(\023)-39
-b(eci\014que.)26 b(Consid)n(\023)-39 b(erez,)25 b(p)r(our)i(r)n(\023)
--39 b(esoudre)25 b(ce)i(probl)n(\022)-39 b(eme,)25 b(l'emploi)j(sur)515
-3984 y(serv)n(eur)c(w)n(eb)h(s)n(\023)-39 b(ecuris)n(\023)g(e)23
-b(\(HTTPS\))k(et)f(l'utilisation)g(d'une)g(liaison)f(en)n(tre)g(le)h
-(serv)n(eur)e(w)n(eb)515 4084 y(et)k(le)f(serv)n(eur)f(d'authen)n
-(ti\014cation)i(au)f(tra)n(v)n(ers)e(d'un)j(r)n(\023)-39
-b(eseau)26 b(de)h(con\014ance.)515 4358 y Fh(3)134 b(Installation)515
-4557 y Fc(3.1)112 b(D)n(\023)-54 b(epaquetage)39 b(des)f(pages)g(PHP)
-639 4710 y Ff(L'application)j(est)h(livr)n(\023)-39 b(ee)39
-b(dans)j(une)f(arc)n(hiv)n(e)f(de)i(t)n(yp)r(e)f(tarball)g(compress)n
-(\023)-39 b(ee)39 b(qui)515 4809 y(con)n(tien)n(t)18
-b(toute)g(l'arb)r(orescence)f(et)h(les)h(\014c)n(hiers)e(PHP)h(n)n
-(\023)-39 b(ecessaires.)15 b(Il)k(su\016t)g(de)f(d)n(\023)-39
-b(ecompresser)1926 5255 y(2)p eop end
-%%Page: 3 3
-TeXDict begin 3 2 bop 515 523 a Ff(cette)27 b(arc)n(hiv)n(e)f(en)h
-(conserv)-5 b(an)n(t)26 b(l'arb)r(orescence)f(dans)i(un)g(dossier)f
-(publi)n(\023)-39 b(e)27 b(par)f(v)n(otre)g(ser-)515
-623 y(v)n(eur)f(W)-7 b(eb.)27 b(Les)f(\014c)n(hiers)f(de)i
-(con\014gurations)d(son)n(t)i(pr)n(\023)-39 b(esen)n(t)24
-b(et)j(con)n(tiennen)n(t)f(des)g(v)-5 b(aleurs)515 722
-y(d'exemple)27 b(que)h(v)n(ous)f(p)r(ourrez)f(adapter)h(\022)-42
-b(a)27 b(v)n(otre)f(situation.)515 951 y Fc(3.2)112 b(P)m(aram)n(\022)
--54 b(etres)38 b(de)g(con\014guration)639 1104 y Ff(Cette)33
-b(application)f(comp)r(orte)g(deux)h(\014c)n(hiers)f(de)h
-(con\014guration)e(qui)i(son)n(t)f(dans)g(le)515 1203
-y(dossier)f Fd(\()-17 b(\()24 b Ff(include)f Fd(\))-17
-b(\))p Ff(.)33 b(Les)f(\014c)n(hiers)g(existen)n(t)h(dans)f(la)g(v)n
-(ersion)f(distribu)n(\023)-39 b(ee)32 b(et)h(on)n(t)f(p)r(our)515
-1303 y(but)c(de)g(servir)e(de)i(mo)r(d)n(\022)-39 b(ele.)515
-1433 y Fg(connect.inc.php)31 b(:)41 b Ff(ce)32 b(\014c)n(hier)f(con)n
-(tien)n(t)g(les)g(co)r(ordonn)n(\023)-39 b(ees)29 b(du)j(serv)n(eur)e
-(MySQL,)h(de)722 1533 y(l'utilisateur)d(SQL)f(et)h(de)g(la)f(base)g
-(que)g(l'application)g(utilisera.)515 1653 y Fg(con\014g.inc.php)k(:)41
-b Ff(ce)35 b(\014c)n(hier)f(con)n(tien)n(t)h(tout)g(le)g(reste)g(de)g
-(la)g(con\014guration)e(de)j(l'ap-)722 1752 y(plication.)k(Le)g(\014c)n
-(hier)g(est)g(un)g(script)g(PHP)g(qui)g(initialise)g(un)g(tableau)g(m)n
-(ulti-)722 1852 y(dimen)n(tionnel.)f(Ce)f(c)n(hoix)f(\022)-42
-b(a)36 b(\023)-39 b(et)n(\023)g(e)37 b(fait)h(par)g(commo)r(dit)n(\023)
--39 b(e,)37 b(et)h(p)r(our)g(p)r(ermette)h(de)722 1951
-y(bien)h(hi)n(\023)-39 b(erarc)n(hiser)37 b(les)i(information,)h(en)f
-(rev)-5 b(anc)n(he,)39 b(la)h(syn)n(taxe)e(est)i(fourb)r(e.)14
-b(.)g(.)722 2051 y(N'oubliez)28 b(pas)f(de)h(virgule)13
-b(!)27 b(T)-7 b(outes)28 b(les)f(constan)n(tes)f(son)n(t)h(d)n(\023)-39
-b(ecrites)27 b(ci-dessous.)722 2191 y Fg($adminMail)k(:)41
-b Ff(adresse)23 b(e-mail)h(de)g(l'administrateur.)g(A\016c)n(h)n(\023)
--39 b(ee)24 b(\022)-42 b(a)24 b(l'utilisateur)905 2291
-y(lorsque)i(qu'une)i(erreur)e(in)n(terne)i(\022)-42 b(a)27
-b(l'application)g(s'est)g(pro)r(duite.)722 2411 y Fg($automatedMail)k
-(:)41 b Ff(adresse)31 b(e-mail)g(de)h(r)n(\023)-39 b(ep)r(onse)30
-b(des)i(courriels)f(en)n(v)n(o)n(y)n(\023)-39 b(es)29
-b(au-)905 2510 y(tomatiquemen)n(t)e(par)g(l'application.)722
-2630 y Fg(A)m(UTH)33 b(:)41 b Ff(P)n(aram)n(\022)-39
-b(etres)24 b(d'authen)n(ti\014cation)905 2770 y Fg(POP)32
-b(:)41 b Ff(P)n(aram)n(\022)-39 b(etres)24 b(p)r(our)j(les)h(serv)n
-(eurs)d(mail)j(POP)1060 2911 y Fg(SER)-11 b(VERS)31 b(:)41
-b Ff(Chaque)26 b(\023)-39 b(el)n(\023)g(emen)n(t)27 b(de)h(ce)g
-(tableau)g(\022)-42 b(a)28 b(p)r(our)g(clef)h(le)f(nom)1201
-3010 y(de)d(domaine)f(du)h(fournisseur)e(de)i(service)f(de)g(courriel)f
-(\()i(partie)f(sui-)1201 3110 y(v)-5 b(an)n(t)27 b(le)g(@)g(dans)g(une)
-g(adresse)f(e-mail\))g(\022)-42 b(a)27 b(p)r(our)g(v)-5
-b(aleur)26 b(un)h(tableau)1201 3210 y(asso)r(ciatif)g(de)h(la)f(forme)g
-(suiv)-5 b(an)n(te)1201 3350 y Fg(sub)s(domain)31 b(:)41
-b Ff(adresse)23 b(complete)i(du)g(serv)n(eur)e(o\013ran)n(t)g(le)i
-(service)1284 3449 y(POP)1201 3569 y Fg(p)s(ort)32 b(:)41
-b Ff(n)n(um)n(\023)-39 b(ero)39 b(de)h(p)r(ort)h(TCP)f(utilis)n(\023)
--39 b(e)39 b(p)r(our)h(se)h(connecter)e(au)1284 3669
-y(service)27 b(POP)1201 3789 y Fg(username)p 1604 3789
-29 4 v 34 w(is)p 1703 3789 V 34 w(full)p 1873 3789 V
-33 w(mail)k(:)41 b Ff(Bo)r(ol)n(\023)-39 b(een)38 b(\(true)j(ou)e
-(false\))h(indican)n(t)1284 3888 y(si)k(le)g(nom)g(d'utilisateur)g
-(\022)-42 b(a)43 b(utiliser)h(p)r(our)f(l'authen)n(ti\014cation)1284
-3988 y(est)28 b(l'adresse)e(e-mail)h(compl)n(\022)-39
-b(ete.)26 b(C'est)i(utile)g(p)r(our)f(les)g(serv)n(eurs)1284
-4088 y(POP)17 b(g)n(\023)-39 b(eran)n(t)16 b(des)j(adresses)d(email)i
-(sur)g(plusieurs)g(domaines)g(\(comme)1284 4187 y(w)n(anado)r(o)26
-b(/)h(orange)f(au)i(momen)n(t)f(o)r(\022)-44 b(u)27 b(j')n(\023)-39
-b(ecris)27 b(ce)g(do)r(cumen)n(t\))905 4327 y Fg(b)m(ypass)p
-1186 4327 V 35 w(if)p 1277 4327 V 34 w(lo)s(cal)k(:)41
-b Ff(Bo)r(ol)n(\023)-39 b(een)37 b(indiquan)n(t)i(si)g(l'authen)n
-(ti\014cation)g(doit)e(^)-39 b(etre)1060 4427 y(outrepass)n(\023)g(ee)
-21 b(si)h(la)h(connexion)f(s'e\013ectue)h(depuis)h(le)f(serv)n(eur)e
-(lui-m)n(^)-39 b(eme.)722 4567 y Fg(CSS)32 b(:)41 b Ff(P)n(aram)n(\022)
--39 b(etres)24 b(des)k(st)n(yles)e(de)i(pages)905 4707
-y Fg(CHOOSER)p 1387 4707 V 33 w(LIST)33 b(:)41 b Ff(Ce)19
-b(tableau)g(asso)r(ciatif)g(con)n(tien)n(t)g(la)g(liste)g(des)h(st)n
-(yles)1060 4807 y(CSS)29 b(\022)-42 b(a)28 b(utiliser.)h(Les)f(clefs)h
-(son)n(t)f(les)g(lib)r(ell)n(\023)-39 b(es)28 b(des)g(th)n(\022)-39
-b(emes)28 b(\022)-42 b(a)28 b(a\016c)n(her)g(et)1060
-4907 y(les)33 b(v)-5 b(aleurs)33 b(son)n(t)f(les)h(noms)g(des)g(\014c)n
-(hiers)f(CSS)i(corresp)r(ondan)n(ts,)d(sans)1060 5006
-y(c)n(hemin,)d(ni)g(extension.)1926 5255 y(3)p eop end
-%%Page: 4 4
-TeXDict begin 4 3 bop 722 523 a Fg(MAIL)33 b(:)905 680
-y(TEMPLA)-8 b(TES)33 b(:)41 b Ff(Ce)28 b(tableau)h(con)n(tien)n(t)g
-(des)f(tableaux)h(asso)r(ciatifs)e(don)n(t)1060 779 y(les)g(clefs)f
-(seron)n(t)g(utilis)n(\023)-39 b(ees)26 b(dans)g(les)g(passages)f(de)i
-(param)n(\022)-39 b(etres)24 b(HTML,)1060 879 y(et)k(con)n(tiennen)n(t)
-f(des)h(sous-tableaux)e(de)h(la)h(forme)f(suiv)-5 b(an)n(te)27
-b(:)1060 1036 y Fg(caption)32 b(:)41 b Ff(In)n(titul)n(\023)-39
-b(e)28 b(qui)f(sera)g(a\016c)n(h)n(\023)-39 b(e)26 b(\022)-42
-b(a)27 b(l'utilisateur)1060 1164 y Fg(tpl)p 1183 1164
-29 4 v 34 w(\014le)k(:)41 b Ff(Nom)d(du)g(\014c)n(hier)g(\(a)n(v)n(ec)e
-(l'extension)i(PHP\))f(con)n(tenan)n(t)g(le)1201 1264
-y(mo)r(d)n(\022)-39 b(ele.)722 1421 y Fg(SUPER)m(USERS)32
-b(:)41 b Ff(Ce)19 b(tableau)f(con)n(tien)n(t)g(la)g(liste)g(des)h
-(login)e(des)h(sup)r(er-utilisateurs)905 1520 y(\(ceux)28
-b(qui)f(on)n(t)h(le)f(droit)g(de)h(supprimer)f(des)h(r)n(\023)-39
-b(eunions\))722 1648 y Fg(UPLO)m(AD)34 b(:)41 b Ff(P)n(aram)n(\022)-39
-b(etres)14 b(concernan)n(t)k(l'attac)n(hemen)n(t)f(de)i(\014c)n(hiers)e
-(aux)h(r)n(\023)-39 b(eunions)905 1805 y Fg(accepted)p
-1272 1805 V 35 w(\014les)31 b(:)41 b Ff(T)-7 b(ableau)27
-b(des)h(extensions)e(qui)i(son)n(t)f(autoris)n(\023)-39
-b(ees.)515 2038 y Fc(3.3)112 b(Initialisation)39 b(de)e(la)h(base)639
-2191 y Ff(T)-7 b(out)28 b(les)g(\014c)n(hiers)f(n)n(\023)-39
-b(ecessaires)25 b(son)n(t)i(rang)n(\023)-39 b(es)25 b(dans)j(le)g
-(dossier)e Fd(\()-17 b(\()22 b Ff(install)g Fd(\))-17
-b(\))p Ff(.)28 b(V)-7 b(ous)28 b(uti-)515 2291 y(liserez)d
-(principalemen)n(t)h(le)g(\014c)n(hier)g Fd(\()-17 b(\()21
-b Ff(RAZBase.php)f Fd(\))-17 b(\))p Ff(.)26 b(App)r(el)n(\023)-39
-b(e)26 b(au)g(tra)n(v)n(ers)e(du)j(serv)n(eur)515 2390
-y(w)n(eb,)j(il)g(v)n(ous)f(p)r(ermettra)h(automatiquemen)n(t)f(de)i
-(mettre)f(en)g(place)g(la)g(structure)f(de)h(la)515 2490
-y(base)24 b(de)g(donn)n(\023)-39 b(ees,)23 b(et)i(optionnellemen)n(t,)g
-(d'ins)n(\023)-39 b(erer)22 b(un)j(jeu)g(d'essai)f(p)r(our)g(tester)g
-(l'appli-)515 2589 y(cation)h(sur)g(v)n(otre)g(serv)n(eur.)f(Si)i(v)n
-(ous)f(ne)h(souhaitez)f(pas)g(utiliser)h(de)f(compte)h(SQL)g(a)n(y)n
-(an)n(t)515 2689 y(le)k(droit)g(d'alt)n(\023)-39 b(erer)28
-b(la)h(structure)h(des)g(tables)g(de)g(v)n(otre)f(base)g(a)n(v)n(ec)g
-(ce)h(script)g(php,)g(v)n(ous)515 2789 y(p)r(ouv)n(ez)24
-b(ex)n(\023)-39 b(ecuter)22 b(le)j(script)f Fd(\()-17
-b(\()19 b Ff(base.sql)f Fd(\))-17 b(\))25 b Ff(a)n(v)n(ec)e(v)n(otre)g
-(clien)n(t)h(SQL)g(fa)n(v)n(ori.)f(Le)h(jeu)h(d'essai)515
-2888 y(se)i(trouv)n(e)g(dans)g(le)g(\014c)n(hier)g Fd(\()-17
-b(\()22 b Ff(jeu)p 1573 2888 25 4 v 31 w(essai.sql)e
-Fd(\))-17 b(\))p Ff(.)515 3121 y Fc(3.4)112 b(Con\014guration)39
-b(par)e(d)n(\023)-54 b(efaut)39 b(des)f(comptes)639 3274
-y Ff(Dans)30 b(le)g(\014c)n(hier)f(de)h(con\014guration)f(mo)r(d)n
-(\022)-39 b(ele,)29 b(un)h(sup)r(er-utilisateur)f(est)h(con\014gur)n
-(\023)-39 b(e)28 b(:)515 3374 y(ingleb)r(ert@iut-blagnac.fr)e(et)i(le)g
-(jeu)g(d'essai)f(prop)r(os)n(\023)-39 b(e)25 b(au)j(paragraphe)d(pr)n
-(\023)-39 b(ec)n(\023)g(eden)n(t)25 b(p)r(er-)515 3473
-y(met)j(de)f(cr)n(\023)-39 b(eer)26 b(des)h(utilisateurs,)g(et)h(en)g
-(particulier)f(ingleb)r(ert@iut-blagnac.fr.)639 3573
-y(P)n(ar)19 b(d)n(\023)-39 b(efaut,)21 b(v)n(ous)e(p)r(ourrez)h(donc)g
-(v)n(ous)g(connecter)g(en)h(tan)n(t)g(qu'administrateur)e(a)n(v)n(ec)
-515 3672 y(ce)32 b(compte.)g(Le)g(jeu)g(d'essai)f(met)i(ce)f(compte)g
-(a)n(v)n(ec)e(comme)i(mo)r(de)g(d'authen)n(ti\014cation)515
-3772 y Fd(\()-17 b(\()20 b Ff(b)n(ypass)f Fd(\))-17 b(\))o
-Ff(,)26 b(ce)f(qui)g(signi\014e)g(qu'aucun)g(mot)g(de)g(passe)f(est)i
-(n)n(\023)-39 b(ecessaire.)22 b(P)n(our)i(utiliser)h(un)515
-3872 y(vrai)i(syst)n(\022)-39 b(eme)27 b(d'authen)n(ti\014cation,)h
-(connectez-v)n(ous)f(a)n(v)n(ec)g(ce)h(compte)g(et)h(allez)f(dans)f(la)
-515 3971 y(page)f Fd(\()-17 b(\()22 b Ff(Mon)28 b(Pro\014l)21
-b Fd(\))-17 b(\))27 b Ff(p)r(our)g(c)n(hoisir)g(une)g(autre)g(mo)r(de)h
-(d'authen)n(ti\014cation.)515 4246 y Fh(4)134 b(Main)l(tenance)515
-4444 y Fc(4.1)112 b(Visualisation)39 b(des)f(ob)6 b(jets)38
-b(et)f(des)h(\014c)m(hiers)639 4598 y Ff(Une)28 b(page)e
-(d'administration)g(est)h(pr)n(\023)-39 b(evue)26 b(\022)-42
-b(a)26 b(cet)h(e\013et,)h(et)f(elle)g(n'est)g(accessible)f(que)515
-4697 y(par)31 b(un)i Fd(\()-17 b(\()23 b Ff(sup)r(er-utilisateur)g
-Fd(\))-17 b(\))o Ff(,)33 b(c'est)f(\022)-42 b(a)32 b(dire)g(un)g
-(utilisateur)g(consign)n(\023)-39 b(e)31 b(dans)g(le)i(\014c)n(hier)515
-4797 y(de)27 b(con\014guration)f(principal)i(en)f(tan)n(t)h(que)f(tel,)
-h(conf)n(\022)-39 b(ere)26 b(3.2.)1926 5255 y(4)p eop
-end
-%%Page: 5 5
-TeXDict begin 5 4 bop 515 523 a Fc(4.2)112 b(Netto)m(y)m(age)37
-b(de)h(la)g(base)650 655 y Ff(\022)639 676 y(A)31 b(partir)f(de)h(la)f
-(page)f(d'administration)h(d)n(\023)-39 b(ecrite)30 b(dans)g(le)g
-(paragraphe)e(pr)n(\023)-39 b(ec)n(\023)g(eden)n(t,)515
-776 y(v)n(ous)23 b(p)r(ouv)n(ez)h(aussi)f(purger)g(les)h(\014c)n(hiers)
-g(attac)n(h)n(\023)-39 b(es)22 b(et)i(les)g(ob)5 b(jets)24
-b(de)h(la)f(base)f(de)i(donn)n(\023)-39 b(ees)515 876
-y(dev)n(en)n(us)31 b(obsol)n(\022)-39 b(etes.)30 b(L'aide)h(con)n
-(textuelle)h(de)f(cette)i(page)e(v)n(ous)f(expliquera)h(commen)n(t)515
-975 y(faire.)c(Il)g(est)h(viv)n(emen)n(t)f(conseill)n(\023)-39
-b(e)26 b(de)i(faire)f(une)g(sauv)n(egarde)e(de)j(la)f(base)g(de)h(donn)
-n(\023)-39 b(ees)26 b(et)515 1075 y(des)g(\014c)n(hiers)f(join)n(ts)i
-(aux)e(r)n(\023)-39 b(eunions)25 b(a)n(v)-5 b(an)n(t)25
-b(d'utiliser)i(cet)f(outil)g(car)g(l'erreur)f(de)h(manipu-)515
-1174 y(lation)h(ou)g(de)h(programmation)d(est)j(toujours)f(p)r
-(ossible.)13 b(.)h(.)515 1449 y Fh(5)134 b(Authen)l(ti\014cation)46
-b(d)m(\023)-64 b(edi)m(\023)g(ee)46 b(-)f(P)l(ersonnalisation)639
-1631 y Ff(A)-9 b(W)n(OR)32 b(utilise)g(un)g(syst)n(\022)-39
-b(eme)31 b(d'authen)n(ti\014cation)h(d)n(\023)-39 b(edi)n(\023)g(ee)29
-b(de)j(sorte)f(qu'aucun)h(mot)515 1730 y(de)40 b(passe)f(ne)h(soit)f
-(sto)r(c)n(k)n(\023)-39 b(e,)38 b(et)j(que)e(l'utilisateur)h(n'ait)g
-(pas)g(b)r(esoin)f(d'en)h(retenir)g(un)515 1830 y(nouv)n(eau.)32
-b(Le)i(co)r(de)f(d'authen)n(ti\014cation)h(\022)-42 b(a)30
-b(\023)-39 b(et)n(\023)g(e)30 b(\023)-39 b(ecrit)33 b(de)h(mani)n(\022)
--39 b(ere)31 b(\022)-42 b(a)31 b(^)-39 b(etre)33 b(mal)n(\023)-39
-b(eable)32 b(et)515 1930 y(est)e(extensible.)g(Le)h(co)r(eur)e(du)i
-(syst)n(\022)-39 b(eme)29 b(d'authen)n(ti\014cation)h(se)g(trouv)n(e)f
-(dans)h(le)h(\014c)n(hier)515 2029 y Fd(\()-17 b(\()22
-b Ff(auth)p 747 2029 25 4 v 29 w(dialog.php)g Fd(\))-17
-b(\))o Ff(.)28 b(V)-7 b(ous)27 b(y)h(trouv)n(erez)e(une)h(section)g
-(commen\030)-37 b(can)n(t)27 b(par)g(le)h(commen-)515
-2129 y(taire)f(ci-dessous.)722 2312 y Fb(/****************)o(**)o(***)o
-(**)o(***)o(**)o(**)o(***)o(**)o(***)o(**)o(**)o(***)o(**)o(***)o(*)722
-2411 y(**)43 b(Ajouter)e(d'autres)f(mode)i(d'authentificati)o(on)37
-b(ici)42 b(!)i(**)722 2511 y(*****************)o(**)o(***)o(**)o(***)o
-(**)o(**)o(***)o(**)o(***)o(**)o(**)o(***)o(**)o(***)o(/)515
-2693 y Ff(Comme)30 b(l'indique)g(ce)g(commen)n(taire,)f(v)n(ous)g(p)r
-(ourrez)h(a)5 b(jouter)29 b(\022)-42 b(a)29 b(cet)i(endroit)e(une)i(p)r
-(or-)515 2793 y(tion)d(de)g(co)r(de)f(p)r(our)h(utiliser)f(un)i(autre)e
-(service)g(d'authen)n(ti\014cation.)g(La)h(syn)n(taxe)f(est)g(la)515
-2893 y(suiv)-5 b(an)n(te)27 b(:)722 3035 y Fb(case)42
-b('<nom)p 1165 3035 27 4 v 30 w(auth>')f(:)722 3135 y(/*)i
-(Eventuellement)38 b(du)43 b(code)f(pr\023)-44 b(el\023)g(eminaire)38
-b(*/)722 3235 y($auth)p 947 3235 V 30 w(is)p 1065 3235
-V 30 w(ok=<fonction)p 1623 3235 V 27 w(ou)p 1738 3235
-V 30 w(variable)p 2120 3235 V 28 w(authentification>)o(;)722
-3334 y(if)43 b(\()g(!)g($auth)p 1252 3334 V 30 w(is)p
-1370 3334 V 30 w(ok)g(\))722 3434 y Fa(f)g Fb(//)g(On)g(ex\023)-44
-b(ecute)41 b(la)h(ligne)g(ci-dessous)d(que)k(si)f(l'authentificaito)o
-(n)c(\022)-44 b(a)43 b(\023)-44 b(echou\023)g(ee)722
-3533 y($errmsg=<fonction)p 1474 3533 V 25 w(ou)p 1588
-3533 V 30 w(chaine)p 1882 3533 V 29 w(explicant)p 2307
-3533 V 28 w(l)p 2379 3533 V 31 w(erreur)p 2674 3533 V
-29 w(d)p 2747 3533 V 31 w(authentificatio)o(n>;)722 3633
-y Fa(g)722 3733 y Fb(break;)515 3875 y Ff(Il)27 b(v)n(ous)f(su\016t)i
-(de)f(remplacer)f(les)f(\023)-39 b(el)n(\023)g(emen)n(ts)25
-b(en)n(tre)i(c)n(hevrons)e(dans)i(le)g(co)r(de)h(ci-dessus)e(et)515
-3975 y(de)k(le)g(coller)e(dans)i Fd(\()-17 b(\()p Ff(auth)p
-1348 3975 25 4 v 29 w(dialog.inc.php)p Fd(\))g(\))29
-b Ff(p)r(our)h(p)r(ouv)n(oir)e(utiliser)i(un)g(nouv)n(eau)f(mo)r(de)515
-4074 y(d'authen)n(ti\014cation.)i(Reste)h(\022)-42 b(a)31
-b(donner)g(\022)-42 b(a)31 b(l'utilisateur)h(la)f(capacit)n(\023)-39
-b(e)30 b(de)i(l'utiliser.)f(V)-7 b(ous)515 4174 y(devrez)32
-b(encore,)h(d'une)g(part,)g(a)5 b(jouter)33 b(dans)g(la)g(base)f(de)i
-(donn)n(\023)-39 b(ees)32 b(le)h Fe(<)p Ff(nom)p 3049
-4174 V 29 w(auth)p Fe(>)g Ff(\022)-42 b(a)515 4274 y(l')n(\023)j(en)n
-(um)n(\023)g(eration)20 b(du)j(c)n(hamp)f Fd(\()-17 b(\()p
-Ff(metho)r(deAuth)p Fd(\))g(\))23 b Ff(de)g(la)f(table)h
-Fd(\()-17 b(\()p Ff(P)n(ersonne)p Fd(\))g(\))n Ff(,)22
-b(et)h(d'autre)g(part)515 4373 y(prop)r(oser)c(\022)-42
-b(a)20 b(l'utilisateur)h(d'utiliser)f(ce)h(mo)r(de)g(d'authen)n
-(ti\014cation)f(en)h(mo)r(di\014an)n(t)g(la)f(page)515
-4473 y Fd(\()-17 b(\()o Ff(pro\014l.php)p Fd(\))g(\))p
-Ff(.)1926 5255 y(5)p eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
diff --git a/final/install/RAZbase.php b/final/install/RAZbase.php
index 9b9fa25..82bdba1 100644
--- a/final/install/RAZbase.php
+++ b/final/install/RAZbase.php
@@ -125,6 +125,6 @@ if (isset($_POST['confirm']) )
}
}
?>
- <p><a href="../index.php">Retour à l'index</a></p>
+ <p><a href="../app/index.php">Retour à l'index</a></p>
</body>
</html>
diff --git a/final/doc/READ_ME.css b/final/install/READ_ME.css
index 2dfba7c..2cfcdd1 100644
--- a/final/doc/READ_ME.css
+++ b/final/install/READ_ME.css
@@ -1,10 +1,17 @@
/* start css.sty */
.cmmi-10{font-style: italic;}
-.cmr-17{font-size:170%;}
-.cmr-12{font-size:120%;}
-.cmtt-10{font-family: monospace;}
-.cmbx-10{ font-weight: bold;}
+.ptmr7t-{font-family: monospace;}
+.ptmr7t-{font-family: monospace;}
+.ptmr7t-{font-family: monospace;}
+.ptmr7t-x-x-172{font-size:172%;font-family: monospace;}
+.ptmr7t-x-x-172{font-family: monospace;}
+.ptmr7t-x-x-172{font-family: monospace;}
+.ptmr7t-x-x-120{font-size:120%;font-family: monospace;}
+.ptmr7t-x-x-120{font-family: monospace;}
+.ptmr7t-x-x-120{font-family: monospace;}
+.pcrr7t-{font-family: monospace;}
+.ptmb7t-{ font-weight: bold; font-family: monospace;}
p.noindent { text-indent: 0em }
p.nopar { text-indent: 0em; }
p.indent{ text-indent: 1.5em }
diff --git a/final/install/READ_ME.dvi b/final/install/READ_ME.dvi
new file mode 100644
index 0000000..6563125
--- /dev/null
+++ b/final/install/READ_ME.dvi
Binary files differ
diff --git a/final/install/READ_ME.html b/final/install/READ_ME.html
new file mode 100644
index 0000000..8a5b4f3
--- /dev/null
+++ b/final/install/READ_ME.html
@@ -0,0 +1,447 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="fr" >
+<head><title>AWOR - Fichier Lisez-moi de l&#8217;administrateur</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)">
+<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)">
+<!-- html -->
+<meta name="src" content="READ_ME.tex">
+<meta name="date" content="2007-03-17 17:03:00">
+<link rel="stylesheet" type="text/css" href="READ_ME.css">
+</head><body
+>
+ <div class="maketitle">
+
+
+
+<h2 class="titleHead">AWOR - Fichier Lisez-moi de l&#8217;administrateur</h2>
+<div class="author" ></div><br />
+<div class="date" ><span
+class="ptmr7t-x-x-120">17 mars 2007</span></div>
+ </div>
+ <h3 class="likesectionHead"><a
+ id="x1-1000"></a>Table des matières</h3>
+ <div class="tableofcontents">
+ <span class="sectionToc">1 <a
+href="#x1-20001" id="QQ2-1-2">Compatibilité</a></span>
+<br /> <span class="sectionToc">2 <a
+href="#x1-50002" id="QQ2-1-5">Sécurité</a></span>
+<br /> <span class="sectionToc">3 <a
+href="#x1-60003" id="QQ2-1-6">Installation</a></span>
+<br /> &#x00A0;<span class="subsectionToc">3.1 <a
+href="#x1-70003.1" id="QQ2-1-7">Dépaquetage des pages PHP</a></span>
+<br /> &#x00A0;<span class="subsectionToc">3.2 <a
+href="#x1-80003.2" id="QQ2-1-8">Paramètres de configuration</a></span>
+<br /> &#x00A0;<span class="subsectionToc">3.3 <a
+href="#x1-90003.3" id="QQ2-1-9">Initialisation de la base</a></span>
+<br /> &#x00A0;<span class="subsectionToc">3.4 <a
+href="#x1-100003.4" id="QQ2-1-10">Configuration par défaut des comptes</a></span>
+<br /> <span class="sectionToc">4 <a
+href="#x1-110004" id="QQ2-1-11">Maintenance</a></span>
+<br /> &#x00A0;<span class="subsectionToc">4.1 <a
+href="#x1-120004.1" id="QQ2-1-12">Visualisation des objets et des fichiers</a></span>
+<br /> &#x00A0;<span class="subsectionToc">4.2 <a
+href="#x1-130004.2" id="QQ2-1-13">Nettoyage de la base</a></span>
+<br /> <span class="sectionToc">5 <a
+href="#x1-140005" id="QQ2-1-14">Authentification dédiée - Personnalisation</a></span>
+ </div>
+<!--l. 32--><p class="indent">
+
+ <h3 class="sectionHead"><span class="titlemark">1 </span> <a
+ id="x1-20001"></a>Compatibilité</h3>
+<!--l. 37--><p class="noindent">Cette application peut-être utilisée sur un serveur fonctionnant avec Apache, MySQL(<span
+class="cmmi-10">&#x003E;</span>=4)
+et PHP (<span
+class="cmmi-10">&#x003E;</span>=4).
+<!--l. 41--><p class="noindent"><span class="paragraphHead"><a
+ id="x1-30001"></a><span
+class="ptmb7t-">PHP</span></span>
+ L&#8217;application ne nécessite pas de configuration de PHP particulière. Elle fonctionne
+quelle que soit la valeur du paramètre de configuration register_globals, utilise les sessions
+via les fonctions introduites en PHP4. L&#8217;application fonctionne quelque soit la verbosité des
+affichages d&#8217;erreur et de warning PHP, car nous avons travaillé à éliminer tous les messages
+<span
+class="lasy-10">&#xFE64;&#xFE64;</span>E_NOTICE <span
+class="lasy-10">&#xFE65;&#xFE65;</span> PHP qui surviennent par exemple lors d&#8217;une comparaison avec une variable
+non-initialisée.
+<!--l. 51--><p class="indent"> Les scripts PHP n&#8217;accèdent pas en écriture au système de fichier, sauf pour l&#8217;upload de
+fichiers. Le dossier <span
+class="lasy-10">&#xFE64;&#xFE64;</span> fichiers <span
+class="lasy-10">&#xFE65;&#xFE65;</span> doit être accessible en écriture par les scripts PHP sans quoi la
+fonctionnalité d&#8217;échange de fichier serait inutilisable.
+<!--l. 57--><p class="noindent"><span class="paragraphHead"><a
+ id="x1-40001"></a><span
+class="ptmb7t-">MySQL</span></span>
+ Les scripts PHP ne modifient pas structurellement la base de donnée MySQL, il suffit
+donc d&#8217;un compte permettant les instructions SELECT, INSERT, UPDATE, DELETE sur les
+tables de l&#8217;application. Pour indiquer à l&#8217;application quel compte MySQL utiliser, veuillez
+vous reporter à la section <a
+href="#x1-90003.3">3.3<!--tex4ht:ref: sub:Initialisation-de-la-bd --></a>.
+<!--l. 66--><p class="noindent">
+ <h3 class="sectionHead"><span class="titlemark">2 </span> <a
+ id="x1-50002"></a>Sécurité</h3>
+<!--l. 68--><p class="noindent">Cette application a été développée en gardant toujours à l&#8217;esprit les problèmes de sécurités.
+Nous ne pouvons évidemment pas la garantir failles ni bugs, mais nous sommes fixé des
+règles de programmation pour éviter les failles les plus courantes. Toutes les données issues
+de l&#8217;utilisateur lors des traitements des pages web sont traitées pour éviter des problèmes
+d&#8217;insertion de code dans les requetes SQL. L&#8217;authentification des utilisateurs est
+systématique, vérifiée à chaque page et repose sur le système des sessions PHP.
+En revanche, il faut noter que le formulaire d&#8217;authentification n&#8217;est pas protégé
+contre l&#8217;usurpation de mots de passe car les contraintes données dans le cahier des
+charges ne le permettent pas, dû moins, il n&#8217;est pas possible d&#8217;utiliser un cryptage
+efficace (assymétrique) sans modifier le système d&#8217;authentification déléguée et sans
+utiliser une configuration de serveur Web spécifique. Considérez, pour résoudre
+ce problème, l&#8217;emploi sur serveur web sécurisé (HTTPS) et l&#8217;utilisation d&#8217;une
+liaison entre le serveur web et le serveur d&#8217;authentification au travers d&#8217;un réseau de
+confiance.
+<!--l. 87--><p class="noindent">
+ <h3 class="sectionHead"><span class="titlemark">3 </span> <a
+ id="x1-60003"></a>Installation</h3>
+
+<!--l. 90--><p class="noindent">
+ <h4 class="subsectionHead"><span class="titlemark">3.1 </span> <a
+ id="x1-70003.1"></a>Dépaquetage des pages PHP</h4>
+<!--l. 92--><p class="noindent">L&#8217;application est livrée dans une archive de type tarball compressée qui contient toute
+l&#8217;arborescence et les fichiers PHP nécessaires. Il suffit de décompresser cette archive en
+conservant l&#8217;arborescence dans un dossier publié par votre serveur Web. Les fichiers de
+configurations sont présent et contiennent des valeurs d&#8217;exemple que vous pourrez adapter à
+votre situation.
+<!--l. 100--><p class="noindent">
+ <h4 class="subsectionHead"><span class="titlemark">3.2 </span> <a
+ id="x1-80003.2"></a>Paramètres de configuration</h4>
+<!--l. 102--><p class="noindent">Cette application comporte deux fichiers de configuration qui sont dans le dossier
+<span
+class="lasy-10">&#xFE64;&#xFE64;</span>include <span
+class="lasy-10">&#xFE65;&#xFE65;</span>. Les fichiers existent dans la version distribuée et ont pour but de servir de
+modèle.
+<!--l. 106--><p class="indent">
+ <dl class="description"><dt class="description">
+<span
+class="ptmb7t-">connect.inc.php</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">ce fichier contient les coordonnées du serveur MySQL, de
+ l&#8217;utilisateur SQL et de la base que l&#8217;application utilisera.
+ </dd><dt class="description">
+<span
+class="ptmb7t-">config.inc.php</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">ce fichier contient tout le reste de la configuration de l&#8217;application.
+ Le fichier est un script PHP qui initialise un tableau multi-dimentionnel. Ce choix
+ à été fait par commodité, et pour permette de bien hiérarchiser les information,
+ en revanche, la syntaxe est fourbe. . . N&#8217;oubliez pas de virgule<span class="frenchb-thinspace">&nbsp;</span>! Toutes les
+ constantes sont décrites ci-dessous.
+ <!--l. 116--><p class="noindent">
+ <dl class="description"><dt class="description">
+ <span
+class="ptmb7t-">$adminMail</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">adresse e-mail de l&#8217;administrateur. Affichée à l&#8217;utilisateur
+ lorsque qu&#8217;une erreur interne à l&#8217;application s&#8217;est produite.
+ </dd><dt class="description">
+ <span
+class="ptmb7t-">$automatedMail</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">adresse e-mail de réponse des courriels envoyés
+ automatiquement par l&#8217;application.
+ </dd><dt class="description">
+ <span
+class="ptmb7t-">AUTH</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">Paramètres d&#8217;authentification
+ <!--l. 124--><p class="noindent">
+ <dl class="description"><dt class="description">
+ <span
+class="ptmb7t-">POP</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">Paramètres pour les serveurs mail POP
+ <!--l. 127--><p class="noindent">
+ <dl class="description"><dt class="description">
+ <span
+class="ptmb7t-">SERVERS</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">Chaque élément de ce tableau à pour clef le nom de
+ domaine du fournisseur de service de courriel ( partie suivant le
+ @ dans une adresse e-mail) à pour valeur un tableau associatif de
+ la forme suivante
+ <!--l. 133--><p class="noindent">
+ <dl class="description"><dt class="description">
+ <span
+class="ptmb7t-">subdomain</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">adresse complete du serveur offrant le service POP
+
+ </dd><dt class="description">
+ <span
+class="ptmb7t-">port</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">numéro de port TCP utilisé pour se connecter au service
+ POP
+ </dd><dt class="description">
+ <span
+class="ptmb7t-">username</span><span
+class="ptmb7t-">_is</span><span
+class="ptmb7t-">_full</span><span
+class="ptmb7t-">_mail</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">Booléen (true ou false) indicant si le
+ nom d&#8217;utilisateur à utiliser pour l&#8217;authentification est l&#8217;adresse
+ e-mail complète. C&#8217;est utile pour les serveurs POP gérant
+ des adresses email sur plusieurs domaines (comme wanadoo /
+ orange au moment où j&#8217;écris ce document)</dd></dl>
+ </dd></dl>
+ </dd><dt class="description">
+ <span
+class="ptmb7t-">bypass</span><span
+class="ptmb7t-">_if</span><span
+class="ptmb7t-">_local</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">Booléen indiquant si l&#8217;authentification doit être outrepassée si
+ la connexion s&#8217;effectue depuis le serveur lui-même.</dd></dl>
+ </dd><dt class="description">
+ <span
+class="ptmb7t-">CSS</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">Paramètres des styles de pages
+ <!--l. 150--><p class="noindent">
+ <dl class="description"><dt class="description">
+ <span
+class="ptmb7t-">CHOOSER</span><span
+class="ptmb7t-">_LIST</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">Ce tableau associatif contient la liste des styles CSS
+ à utiliser. Les clefs sont les libellés des thèmes à afficher et les
+ valeurs sont les noms des fichiers CSS correspondants, sans chemin,
+ ni extension.</dd></dl>
+ </dd><dt class="description">
+ <span
+class="ptmb7t-">MAIL</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">&#x00A0;
+ <!--l. 158--><p class="noindent">
+ <dl class="description"><dt class="description">
+ <span
+class="ptmb7t-">TEMPLATES</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">Ce tableau contient des tableaux associatifs dont les
+ clefs seront utilisées dans les passages de paramètres HTML, et
+ contiennent des sous-tableaux de la forme suivante<span class="frenchb-nbsp">&nbsp;</span>:
+ <!--l. 163--><p class="noindent">
+ <dl class="description"><dt class="description">
+ <span
+class="ptmb7t-">caption</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">Intitulé qui sera affiché à l&#8217;utilisateur
+ </dd><dt class="description">
+ <span
+class="ptmb7t-">tpl</span><span
+class="ptmb7t-">_file</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">Nom du fichier (avec l&#8217;extension PHP) contenant le
+ modèle.</dd></dl>
+ </dd></dl>
+ </dd><dt class="description">
+ <span
+class="ptmb7t-">SUPERUSERS</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">Ce tableau contient la liste des login des super-utilisateurs (ceux qui
+ ont le droit de supprimer des réunions)
+ </dd><dt class="description">
+ <span
+class="ptmb7t-">UPLOAD</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">Paramètres concernant l&#8217;attachement de fichiers aux réunions
+ <!--l. 174--><p class="noindent">
+ <dl class="description"><dt class="description">
+ <span
+class="ptmb7t-">accepted</span><span
+class="ptmb7t-">_files</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="ptmb7t-">:</span> </dt><dd
+class="description">Tableau des extensions qui sont autorisées.</dd></dl>
+ </dd></dl>
+ </dd></dl>
+
+<!--l. 180--><p class="noindent">
+ <h4 class="subsectionHead"><span class="titlemark">3.3 </span> <a
+ id="x1-90003.3"></a>Initialisation de la base</h4>
+<!--l. 182--><p class="noindent">Tous les fichiers nécessaires sont rangés dans le dossier <span
+class="lasy-10">&#xFE64;&#xFE64;</span> install <span
+class="lasy-10">&#xFE65;&#xFE65;</span>. Vous utiliserez
+principalement le fichier <span
+class="lasy-10">&#xFE64;&#xFE64;</span> RAZBase.php <span
+class="lasy-10">&#xFE65;&#xFE65;</span>. Appelé au travers du serveur web, il vous
+permettra automatiquement de mettre en place la structure de la base de données, et
+optionnellement, d&#8217;insérer un jeu d&#8217;essai pour tester l&#8217;application sur votre serveur. Si vous
+ne souhaitez pas utiliser de compte SQL ayant le droit d&#8217;altérer la structure des tables de
+votre base avec ce script php, vous pouvez exécuter le script <span
+class="lasy-10">&#xFE64;&#xFE64;</span> base.sql <span
+class="lasy-10">&#xFE65;&#xFE65;</span> avec votre client
+SQL favori. Le jeu d&#8217;essai se trouve dans le fichier <span
+class="lasy-10">&#xFE64;&#xFE64;</span> jeu_essai.sql <span
+class="lasy-10">&#xFE65;&#xFE65;</span>.
+<!--l. 192--><p class="indent"> Vous devriez supprimer ce répertoire dès que l&#8217;installation sera terminée car il peut poser
+des problèmes de sécurité car le fichier <span
+class="lasy-10">&#xFE64;&#xFE64;</span> RAZBase.php <span
+class="lasy-10">&#xFE65;&#xFE65;</span> pourrait être lancé par n&#8217;importe
+qui, et les fichiers SQL contienent des informations sensibles.
+<!--l. 198--><p class="noindent">
+ <h4 class="subsectionHead"><span class="titlemark">3.4 </span> <a
+ id="x1-100003.4"></a>Configuration par défaut des comptes</h4>
+<!--l. 200--><p class="noindent">Dans le fichier de configuration modèle, un super-utilisateur est configuré<span class="frenchb-nbsp">&nbsp;</span>:
+inglebert@iut-blagnac.fr et le jeu d&#8217;essai proposé au paragraphe précédent permet de créer
+des utilisateurs, et en particulier inglebert@iut-blagnac.fr.
+<!--l. 205--><p class="indent"> Par défaut, vous pourrez donc vous connecter en tant qu&#8217;administrateur avec ce compte.
+Le jeu d&#8217;essai met ce compte avec comme mode d&#8217;authentification <span
+class="lasy-10">&#xFE64;&#xFE64;</span> bypass <span
+class="lasy-10">&#xFE65;&#xFE65;</span>, ce qui signifie
+qu&#8217;aucun mot de passe n&#8217;est nécessaire. Pour utiliser un vrai système d&#8217;authentification,
+connectez-vous avec ce compte et allez dans la page <span
+class="lasy-10">&#xFE64;&#xFE64;</span> Mon Profil <span
+class="lasy-10">&#xFE65;&#xFE65;</span> pour choisir une autre
+mode d&#8217;authentification.
+<!--l. 213--><p class="noindent">
+ <h3 class="sectionHead"><span class="titlemark">4 </span> <a
+ id="x1-110004"></a>Maintenance</h3>
+<!--l. 216--><p class="noindent">
+ <h4 class="subsectionHead"><span class="titlemark">4.1 </span> <a
+ id="x1-120004.1"></a>Visualisation des objets et des fichiers</h4>
+<!--l. 218--><p class="noindent">Une page d&#8217;administration est prévue à cet effet, et elle n&#8217;est accessible que par un
+<span
+class="lasy-10">&#xFE64;&#xFE64;</span>super-utilisateur <span
+class="lasy-10">&#xFE65;&#xFE65;</span>, c&#8217;est à dire un utilisateur consigné dans le fichier de configuration
+principal en tant que tel, confère <a
+href="#x1-80003.2">3.2<!--tex4ht:ref: sub:Configuration --></a>.
+<!--l. 224--><p class="noindent">
+ <h4 class="subsectionHead"><span class="titlemark">4.2 </span> <a
+ id="x1-130004.2"></a>Nettoyage de la base</h4>
+<!--l. 226--><p class="noindent">À partir de la page d&#8217;administration décrite dans le paragraphe précédent, vous pouvez aussi
+purger les fichiers attachés et les objets de la base de données devenus obsolètes. L&#8217;aide
+contextuelle de cette page vous expliquera comment faire. Il est vivement conseillé de
+faire une sauvegarde de la base de données et des fichiers joints aux réunions avant
+d&#8217;utiliser cet outil car l&#8217;erreur de manipulation ou de programmation est toujours
+possible. . .
+
+<!--l. 235--><p class="noindent">
+ <h3 class="sectionHead"><span class="titlemark">5 </span> <a
+ id="x1-140005"></a>Authentification dédiée - Personnalisation</h3>
+<!--l. 237--><p class="noindent">AWOR utilise un système d&#8217;authentification dédiée de sorte qu&#8217;aucun mot de passe ne
+soit stocké, et que l&#8217;utilisateur n&#8217;ait pas besoin d&#8217;en retenir un nouveau. Le code
+d&#8217;authentification à été écrit de manière à être maléable et est extensible. Le coeur du
+système d&#8217;authentification se trouve dans le fichier <span
+class="lasy-10">&#xFE64;&#xFE64;</span> auth_dialog.php <span
+class="lasy-10">&#xFE65;&#xFE65;</span>. Vous y trouverez une
+section commençant par le commentaire ci-dessous.
+<!--l. 245--><p class="noindent">
+ <dl class="list1"><dt class="list">
+ </dt><dd
+class="list">
+ <span
+class="pcrr7t-">/&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;</span>
+ <!--l. 248--><p class="noindent"><span
+class="pcrr7t-">&#x22C6;&#x22C6;</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">Ajouter</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">d'autres</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">mode</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">d'authentification</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">ici</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">!</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">&#x22C6;&#x22C6;</span>
+ <!--l. 250--><p class="noindent"><span
+class="pcrr7t-">&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;&#x22C6;/</span></dd></dl>
+<!--l. 253--><p class="noindent">Comme l&#8217;indique ce commentaire, vous pourrez ajouter à cet endroit une portion de code pour
+utiliser un autre service d&#8217;authentification. La syntaxe est la suivante<span class="frenchb-nbsp">&nbsp;</span>:
+<!--l. 257--><p class="noindent">
+ <dl class="list1"><dt class="list">
+ </dt><dd
+class="list">
+ <span
+class="pcrr7t-">case</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">'&#x003C;nom</span><span
+class="pcrr7t-">_auth&#x003E;'</span><span class="frenchb-nbsp">&nbsp;</span><span
+class="pcrr7t-">:</span>
+ <!--l. 260--><p class="noindent"><span
+class="pcrr7t-">/&#x22C6;</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">Eventuellement</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">du</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">code</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">pr</span><span
+class="pcrr7t-">él</span><span
+class="pcrr7t-">éminaire</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">&#x22C6;/</span>
+ <!--l. 263--><p class="noindent"><span
+class="pcrr7t-">$auth</span><span
+class="pcrr7t-">_is</span><span
+class="pcrr7t-">_ok=&#x003C;fonction</span><span
+class="pcrr7t-">_ou</span><span
+class="pcrr7t-">_variable</span><span
+class="pcrr7t-">_authentification&#x003E;;</span>
+ <!--l. 265--><p class="noindent"><span
+class="pcrr7t-">if</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">(</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">!</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">$auth</span><span
+class="pcrr7t-">_is</span><span
+class="pcrr7t-">_ok</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">)</span>
+ <!--l. 267--><p class="noindent"><span
+class="cmsy-10">{</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">//</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">Si</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">l'authentificaiton</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">à</span><span
+class="pcrr7t-">&#x00A0;</span><span
+class="pcrr7t-">échou</span><span
+class="pcrr7t-">ée</span>
+ <!--l. 269--><p class="noindent"><span
+class="pcrr7t-">$errmsg=&#x003C;fonction</span><span
+class="pcrr7t-">_ou</span><span
+class="pcrr7t-">_chaine</span><span
+class="pcrr7t-">_explicant</span><span
+class="pcrr7t-">_l</span><span
+class="pcrr7t-">_erreur&#x003E;;</span>
+ <!--l. 271--><p class="noindent"><span
+class="cmsy-10">}</span>
+ <!--l. 273--><p class="noindent"><span
+class="pcrr7t-">break;</span></dd></dl>
+<!--l. 275--><p class="noindent">Il vous suffit de remplacer les éléments entre chevrons dans le code ci-dessus et de le coller dans
+<span
+class="lasy-10">&#xFE64;&#xFE64;</span>auth_dialog.inc.php<span
+class="lasy-10">&#xFE65;&#xFE65;</span> pour pouvoir utiliser un nouveau mode d&#8217;authentification. Reste à
+donner à l&#8217;utilisateur la capacité de l&#8217;utiliser. Vous devrez encore, d&#8217;une part, ajouter dans la
+base de données le <span
+class="cmmi-10">&#x003C;</span>nom_auth<span
+class="cmmi-10">&#x003E; </span>à l&#8217;énumération du champ <span
+class="lasy-10">&#xFE64;&#xFE64;</span>methodeAuth<span
+class="lasy-10">&#xFE65;&#xFE65;</span> de la table
+<span
+class="lasy-10">&#xFE64;&#xFE64;</span>Personne<span
+class="lasy-10">&#xFE65;&#xFE65;</span>, et d&#8217;autre part proposer à l&#8217;utilisateur d&#8217;utiliser ce mode d&#8217;authentification en
+modifiant la page <span
+class="lasy-10">&#xFE64;&#xFE64;</span>profil.php<span
+class="lasy-10">&#xFE65;&#xFE65;</span>.
+
+</body></html>
+
+
+
diff --git a/final/doc/READ_ME.lyx b/final/install/READ_ME.lyx
index 9c5e090..d9e336e 100644
--- a/final/doc/READ_ME.lyx
+++ b/final/install/READ_ME.lyx
@@ -5,16 +5,23 @@
\textclass article
\language french
\inputencoding auto
-\fontscheme default
+\fontscheme times
\graphics default
\paperfontsize default
\spacing single
-\papersize default
+\papersize a4paper
\use_geometry false
\use_amsmath 1
\cite_engine basic
\use_bibtopic false
\paperorientation portrait
+\leftmargin 1cm
+\topmargin 1cm
+\rightmargin 1cm
+\bottommargin 1cm
+\headheight 1cm
+\headsep 0cm
+\footskip 1cm
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
@@ -63,8 +70,9 @@ PHP
\begin_layout Standard
L'application ne nécessite pas de configuration de PHP particulière.
- Elle fonctionne quelque soit la valeur du paramètre de configuration register_g
-lobals, utilise les sessions via les fonctions introduites en PHP4.
+ Elle fonctionne quelle que soit la valeur du paramètre de configuration
+ register_globals, utilise les sessions via les fonctions introduites en
+ PHP4.
L'application fonctionne quelque soit la verbosité des affichages d'erreur
et de warning PHP, car nous avons travaillé à éliminer tous les messages
@@ -120,7 +128,7 @@ Cette application a été développée en gardant toujours à l'esprit les problèmes
de sécurités.
Nous ne pouvons évidemment pas la garantir failles ni bugs, mais nous sommes
fixé des règles de programmation pour éviter les failles les plus courantes.
- Toutes les données issue de l'utilisateur lors des traitements des pages
+ Toutes les données issues de l'utilisateur lors des traitements des pages
web sont traitées pour éviter des problèmes d'insertion de code dans les
requetes SQL.
L'authentification des utilisateurs est systématique, vérifiée à chaque
@@ -153,10 +161,6 @@ L'application est livrée dans une archive de type tarball compressée qui
d'exemple que vous pourrez adapter à votre situation.
\end_layout
-\begin_layout Standard
-
-\end_layout
-
\begin_layout Subsection
\begin_inset LatexCommand \label{sub:Configuration}
@@ -326,7 +330,7 @@ Initialisation de la base
\end_layout
\begin_layout Standard
-Tout les fichiers nécessaires sont rangés dans le dossier
+Tous les fichiers nécessaires sont rangés dans le dossier
\begin_inset Quotes fld
\end_inset
@@ -369,6 +373,20 @@ jeu_essai.sql
.
\end_layout
+\begin_layout Standard
+Vous devriez supprimer ce répertoire dès que l'installation sera terminée
+ car il peut poser des problèmes de sécurité car le fichier
+\begin_inset Quotes fld
+\end_inset
+
+RAZBase.php
+\begin_inset Quotes frd
+\end_inset
+
+ pourrait être lancé par n'importe qui, et les fichiers SQL contienent des
+ informations sensibles.
+\end_layout
+
\begin_layout Subsection
Configuration par défaut des comptes
\end_layout
@@ -390,7 +408,7 @@ bypass
\begin_inset Quotes frd
\end_inset
-, ce qui signifie qu'aucun mot de passe est nécessaire.
+, ce qui signifie qu'aucun mot de passe n'est nécessaire.
Pour utiliser un vrai système d'authentification, connectez-vous avec ce
compte et allez dans la page
\begin_inset Quotes fld
@@ -514,13 +532,13 @@ if ( ! $auth_is_ok )
\begin_layout LyX-Code
\lang english
-{ // On exécute la ligne ci-dessous que si l'authentificaiton à échouée
+{ // Si l'authentificaiton à échouée
\end_layout
\begin_layout LyX-Code
\lang english
-$errmsg=<fonction_ou_chaine_explicant_l_erreur_d_authentification>;
+$errmsg=<fonction_ou_chaine_explicant_l_erreur>;
\end_layout
\begin_layout LyX-Code
diff --git a/final/install/READ_ME.pdf b/final/install/READ_ME.pdf
new file mode 100644
index 0000000..5083d12
--- /dev/null
+++ b/final/install/READ_ME.pdf
Binary files differ
diff --git a/final/install/READ_ME.ps b/final/install/READ_ME.ps
new file mode 100644
index 0000000..1eb460b
--- /dev/null
+++ b/final/install/READ_ME.ps
@@ -0,0 +1,830 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software
+%%Title: READ_ME.dvi
+%%Pages: 5
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 595 842
+%%DocumentFonts: Times-Roman Times-Bold CMMI10 LASY10 Courier CMSY10
+%%DocumentPaperSizes: a4
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -t a4 -o READ_ME.ps READ_ME.dvi
+%DVIPSParameters: dpi=600
+%DVIPSSource: TeX output 2007.03.17:1703
+%%BeginProcSet: tex.pro 0 0
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
+/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
+setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
+restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
+B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
+p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
+rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: 8r.enc 0 0
+% File 8r.enc TeX Base 1 Encoding Revision 2.0 2002-10-30
+%
+% @@psencodingfile@{
+% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry,
+% W. Schmidt, P. Lehman",
+% version = "2.0",
+% date = "30 October 2002",
+% filename = "8r.enc",
+% email = "tex-fonts@@tug.org",
+% docstring = "This is the encoding vector for Type1 and TrueType
+% fonts to be used with TeX. This file is part of the
+% PSNFSS bundle, version 9"
+% @}
+%
+% The idea is to have all the characters normally included in Type 1 fonts
+% available for typesetting. This is effectively the characters in Adobe
+% Standard encoding, ISO Latin 1, Windows ANSI including the euro symbol,
+% MacRoman, and some extra characters from Lucida.
+%
+% Character code assignments were made as follows:
+%
+% (1) the Windows ANSI characters are almost all in their Windows ANSI
+% positions, because some Windows users cannot easily reencode the
+% fonts, and it makes no difference on other systems. The only Windows
+% ANSI characters not available are those that make no sense for
+% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
+% (173). quotesingle and grave are moved just because it's such an
+% irritation not having them in TeX positions.
+%
+% (2) Remaining characters are assigned arbitrarily to the lower part
+% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
+%
+% (3) Y&Y Lucida Bright includes some extra text characters; in the
+% hopes that other PostScript fonts, perhaps created for public
+% consumption, will include them, they are included starting at 0x12.
+% These are /dotlessj /ff /ffi /ffl.
+%
+% (4) hyphen appears twice for compatibility with both ASCII and Windows.
+%
+% (5) /Euro was assigned to 128, as in Windows ANSI
+%
+% (6) Missing characters from MacRoman encoding incorporated as follows:
+%
+% PostScript MacRoman TeXBase1
+% -------------- -------------- --------------
+% /notequal 173 0x16
+% /infinity 176 0x17
+% /lessequal 178 0x18
+% /greaterequal 179 0x19
+% /partialdiff 182 0x1A
+% /summation 183 0x1B
+% /product 184 0x1C
+% /pi 185 0x1D
+% /integral 186 0x81
+% /Omega 189 0x8D
+% /radical 195 0x8E
+% /approxequal 197 0x8F
+% /Delta 198 0x9D
+% /lozenge 215 0x9E
+%
+/TeXBase1Encoding [
+% 0x00
+ /.notdef /dotaccent /fi /fl
+ /fraction /hungarumlaut /Lslash /lslash
+ /ogonek /ring /.notdef /breve
+ /minus /.notdef /Zcaron /zcaron
+% 0x10
+ /caron /dotlessi /dotlessj /ff
+ /ffi /ffl /notequal /infinity
+ /lessequal /greaterequal /partialdiff /summation
+ /product /pi /grave /quotesingle
+% 0x20
+ /space /exclam /quotedbl /numbersign
+ /dollar /percent /ampersand /quoteright
+ /parenleft /parenright /asterisk /plus
+ /comma /hyphen /period /slash
+% 0x30
+ /zero /one /two /three
+ /four /five /six /seven
+ /eight /nine /colon /semicolon
+ /less /equal /greater /question
+% 0x40
+ /at /A /B /C
+ /D /E /F /G
+ /H /I /J /K
+ /L /M /N /O
+% 0x50
+ /P /Q /R /S
+ /T /U /V /W
+ /X /Y /Z /bracketleft
+ /backslash /bracketright /asciicircum /underscore
+% 0x60
+ /quoteleft /a /b /c
+ /d /e /f /g
+ /h /i /j /k
+ /l /m /n /o
+% 0x70
+ /p /q /r /s
+ /t /u /v /w
+ /x /y /z /braceleft
+ /bar /braceright /asciitilde /.notdef
+% 0x80
+ /Euro /integral /quotesinglbase /florin
+ /quotedblbase /ellipsis /dagger /daggerdbl
+ /circumflex /perthousand /Scaron /guilsinglleft
+ /OE /Omega /radical /approxequal
+% 0x90
+ /.notdef /.notdef /.notdef /quotedblleft
+ /quotedblright /bullet /endash /emdash
+ /tilde /trademark /scaron /guilsinglright
+ /oe /Delta /lozenge /Ydieresis
+% 0xA0
+ /.notdef /exclamdown /cent /sterling
+ /currency /yen /brokenbar /section
+ /dieresis /copyright /ordfeminine /guillemotleft
+ /logicalnot /hyphen /registered /macron
+% 0xD0
+ /degree /plusminus /twosuperior /threesuperior
+ /acute /mu /paragraph /periodcentered
+ /cedilla /onesuperior /ordmasculine /guillemotright
+ /onequarter /onehalf /threequarters /questiondown
+% 0xC0
+ /Agrave /Aacute /Acircumflex /Atilde
+ /Adieresis /Aring /AE /Ccedilla
+ /Egrave /Eacute /Ecircumflex /Edieresis
+ /Igrave /Iacute /Icircumflex /Idieresis
+% 0xD0
+ /Eth /Ntilde /Ograve /Oacute
+ /Ocircumflex /Otilde /Odieresis /multiply
+ /Oslash /Ugrave /Uacute /Ucircumflex
+ /Udieresis /Yacute /Thorn /germandbls
+% 0xE0
+ /agrave /aacute /acircumflex /atilde
+ /adieresis /aring /ae /ccedilla
+ /egrave /eacute /ecircumflex /edieresis
+ /igrave /iacute /icircumflex /idieresis
+% 0xF0
+ /eth /ntilde /ograve /oacute
+ /ocircumflex /otilde /odieresis /divide
+ /oslash /ugrave /uacute /ucircumflex
+ /udieresis /yacute /thorn /ydieresis
+] def
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro 0 0
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
+end
+
+%%EndProcSet
+%%BeginFont: CMSY10
+%!PS-AdobeFont-1.1: CMSY10 1.0
+%%CreationDate: 1991 Aug 15 07:20:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMSY10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.035 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMSY10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 102 /braceleft put
+dup 103 /braceright put
+readonly def
+/FontBBox{-29 -960 1116 775}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
+7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
+A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
+E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
+221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
+27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
+5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
+0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
+DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
+71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
+4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
+515DB70A8D4F6146FE068DC1E5DE8BC57036431151EC603C8BCFE359BBD953AD
+5F3D998C69E42AA96AA212AD55B676FA2B4F6B519575404233C09AF99014AB95
+767523D9E1F8806E766AC0DD6D81028C3AA9C7536D88D3C2DB6D9949F844935E
+420963F40430452DEAAC1F500BFB1C2473C54B9987BE449F042633C7038D5AEB
+7E1E11C50911EBCF0979F8192E056A2B2EE9785EB73B1AB874116AD5AA74F32C
+BF57FC28FFED335DFD9261AC7A624EAA93BEBC2C0F8B3F898DDA1490D59C6C4B
+A651746C8EAD41BDAA1AF4056AFE98D2D3AE3CCEB9C67FE3A63385470EA42968
+34268684A674675AB9EDBB5BFCA81224B22D4ECF40D1F31A39481AC68A87F252
+F4E7C1C340A26E0D514BACCAA51898758A7E7B63D2E7F34E91554151433F0FD2
+4901D3DE9A5FB9306552DC57EAB729AA07780927E1ECCB5D1F59A09A1E3FFF2D
+922B6C9B58CB20D687A72B9C22D4EC926771541EDA3B75559510DB21BA4461EA
+960B8E5AF4D31D08E8F235D677A9F6EFDB01926967743942C23955678E438F51
+E5E22E2FA2AA7894755053C32B39277B82C00B3D9BE9957CF3ED626852FFFC31
+6E5F0F7489198136A3284B31CC94299EED05B8FA66B8D33F7C47367790D23CD5
+303B0C8E58B0E51BEA9325282F19A3D361A3BEA6BB0CCD09BE735D810E7E0A79
+D1A9C580CFC8CF9FF685D63ECDCCC024C235448BA632F00C3C5BC0E86F44B90A
+293817CC93035E5E18548A7E157C2887309BF84C167D8DBED024BB
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: LASY10
+%!PS-AdobeFont-1.1: LASY10 1.001
+%%CreationDate: 1992 Oct 23 20:19:17
+%%RevisionDate: 2001 Jun 05 20:19:17
+% Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.001) readonly def
+/Notice (Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (LASY10) readonly def
+/FamilyName (LaTeX) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.035 def
+/isFixedPitch false def
+end readonly def
+/FontName /LASY10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 40 /a40 put
+dup 41 /a41 put
+readonly def
+/FontBBox{-19 -192 944 683}readonly def
+currentdict end
+currentfile eexec
+D9D66F637A9E5292A4933615152D29EEC26E1BED2E48CAB7AC058698EA30B07E
+F8BDB66981B14445E1107420FDAF32EDBD5C26E35B334E3AF24373B2A13984D9
+1D56801ACCF98612DE2C19685E0F4D52369AD642D169AB57DAB10665C6C01538
+4E7DF30628B47D6551F93A50553E592B5E1540B411A313F39E4149341C981D3C
+705F8AD7782F59531404B3C001D8B882E0C5468D00B26040A352ED823D7C8DF4
+B632A37A034C6304A39F28739AC3D634CDC707B53474E63135975E7F0FFF2458
+99878B3A6D8D7AC6F2A2728768B8C2226075299B8CB08B76AED9A00BF448A646
+87014E8B1C1723204BCBB97BF0F735E436F1805B4026CA792A2464E1FDFC4385
+B407DAC19BC7769BBEA6BDD0EE65133044D18530C5A3915AC9272AA4A7FC35A4
+93A7A0CA8BD1CFA4382085D949EE819A51062591606ECEB5B37419223CC0400E
+158F1A0849868CFAE0F71DA6B4FA47A636EDE756530425A6BFE45B8080808B59
+6B886D033437677B151285B047C84C2E2FCB71CCDF34E20E925269E5F1A210F0
+391066823D8F21E03746BF79AAC6FF91517631686722226462D6A9EC5FFCC806
+B959AED95F492481324749E00CA117821C347F9B924BEC8C64C954570252E909
+5C33AC8B1320BB1992A88C619DEA7A8FDDE42390EC82A07BD8BB7F0014A41EC8
+04225B5063D3F04723F51128DE8ADB79F62903E1955A7D49220223CA34FDC3EB
+8FB71700EB9CC40DF747C4CC60AD11D3FC038CB2051F7E97CF7C7F7D0F49CA1F
+E0FEFCE664544CD1F7C23B05BA649D373539E7BCC761611C17489084912F77C3
+5FB3BC1E91E2B4A47C27BF4989C7703E83C5A505108037DE5006D4F510B8FE1A
+570E42E4569FAEBF66058F9D9608A771BEACA2A8AB629DBE939CCBBC116E8BCD
+BEC3A33CBF185A68DB60CAC5B21AF4D9B46B3FF4FDFBD6BC3C8101BE15E79245
+F0CF8F670CFA19ABC08C34D85B10C17190497EACEF6E401F322B1E281C1755F0
+BBF9838AF83A0A1601D78E78FD599819762347A77C71374AB428093048E3F1C9
+40CFD63B86C7F70BCD2AC3092DDD3BC91CA714BA28263EB863D5E6E2DBD4FA08
+6B22C1D18B16D7042219B9F0BDF5BF10AADB658CBED51C8B272E4DFA11C5A603
+8B4A437EABAA699B86819EAA072F7D90A9CE1B52287DD3D26C470BE0A8D8ACB0
+5CEF12390D0EDE45B1F5B2FE4ABCA8844F713CB5901221BBEF0144FB694EC8A5
+A5E80F582257A84E0FDB4150D9EA8A82A434C5FC1CB93C7F457B95A68E52F916
+2B90E294A0C787EDA95A4EB1F978ABC0A8E1FC9128E7605D591F601BE0B37F6E
+E1786F2302F2783D5CDC07AA5F3A20101D527E22B8D689A3A60B5993894A7038
+E068BE74CA3F9CD7A33223131E6149FC75A1FFE4E1A12553A8B8DA3AA19DF672
+D355FC0E824840735280F6D4BE31FE762B5027E292F82AF13EF5CBB0633E66A0
+950CE5EA51EF5C6C7FD1599353416342E89607998DAD7D6A8FC650ED12369274
+4E9BF9AFEA1822896412672B1F9EFA94BB86BEB37F2926B7BC7E032C71572F05
+C203EB5E44E55504D98264D3CF7A77F62C183F65364525AE9E84511F4BB67ABC
+164068BA9321842E23882000D27069B07181EADBDAF4374F7FE019BD6D9C88E2
+793462102092A647D903EDE28729B02369DF181C898DEDEBCACB047E79B284F8
+CABFDC5B460D9CD7C3D0A7422E6268DC3CB573DFF7304841C3557355B620DEA6
+74A36D5AA575719613
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMMI10
+%!PS-AdobeFont-1.1: CMMI10 1.100
+%%CreationDate: 1996 Jul 23 07:53:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMMI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 60 /less put
+dup 62 /greater put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
+990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
+6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
+DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
+59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
+D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
+8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
+6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
+1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
+03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
+95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
+74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
+3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
+47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
+AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8
+42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8
+40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837
+B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53
+95601766777978D01677B8D19E1B10A078432D2884BB4F7B8C3293B68BB78100
+16724E495064BA0168CC86D413CB48560D6D318357397832F7A858CD82030C7D
+8A4A1919716E8B26AFF8789AAF489EE4E0A88DC477551A87C7DF2856189E4596
+FE015956AFE5CC019F5CA6323A12B763B7B08B92C1A2940D3C566C43729E5482
+63C6DC5E834AEB4DAFB5AE8F0B8931A4687C94D11587B9071C8D81DA14F12776
+53A1985A3EBE37827656BD4635E03F09C3231F906874645E7DB3E59045A59D67
+E745D8487CF73FC50F64060544F624F357BC998A87FBE468DEBB38A09449EBCA
+D041D7C29225ACD16CB8A59E87924D15A9125F064710A6CCCA3AD3103D8FCC94
+CC3571C6F9192774FCFE5BB42A14B27960903144D28BF047BF4C77646EA7BF6F
+440D4EDEB712C63F2E8080419E42D1D58EED685EB5CDD49F80DB6E5553B519FA
+C6A39A093155802F3EC607721F390307E91ECB597ABA60A537E3F8C045BF5DD3
+D88CF6518D37FCD95D2F295D902D617440D23516D962F47750A682A319ACE1
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+TeXDict begin 39139632 55387786 1000 600 600 (READ_ME.dvi)
+@start /Fa 152[42 42 102[{}2 83.022 /CMSY10 rf /Fb 75[50
+59[50 1[50 50 50 50 50 1[50 50 50 50 50 50 50 50 50 50
+50 50 50 50 50 50 13[50 13[50 3[50 2[50 50 50 50 50 10[50
+4[50 50 50 50 2[50 2[50 2[50 30[{TeXBase1Encoding ReEncodeFont}39
+83.022 /Courier rf /Fc 75[33 58[50 3[55 33 39 44 55 55
+50 55 83 28 1[33 28 55 50 33 44 55 44 55 50 10[72 5[61
+1[72 4[39 78 3[72 72 14[50 50 50 50 2[25 15[33 27[55
+2[{TeXBase1Encoding ReEncodeFont}36 99.6264 /Times-Bold
+rf /Fd 214[28 28 40[{}2 83.022 /LASY10 rf /Fe 193[65
+1[65 60[{}2 83.022 /CMMI10 rf /Ff 71[28 3[28 43[28 13[37
+42 42 60 42 42 23 32 28 42 42 42 42 65 23 42 23 23 42
+42 28 37 42 37 42 37 6[51 2[78 60 60 51 46 55 60 46 60
+60 74 51 2[28 60 2[51 60 55 55 60 76 2[47 2[23 4[42 42
+42 42 42 1[23 21 28 21 2[28 28 28 5[28 2[28 27[46 2[{
+TeXBase1Encoding ReEncodeFont}67 83.022 /Times-Roman
+rf /Fg 75[28 58[42 3[46 28 32 37 1[46 42 46 69 23 2[23
+46 42 28 37 46 37 46 42 10[60 60 55 46 60 65 51 65 1[78
+55 2[32 65 2[55 60 60 1[60 6[28 4[42 42 42 42 42 2[21
+28 8[42 33[46 2[{TeXBase1Encoding ReEncodeFont}46 83.022
+/Times-Bold rf /Fh 75[40 62[66 40 47 53 1[66 60 66 100
+33 2[33 66 2[53 66 53 66 60 12[80 66 2[73 2[113 3[47
+5[86 1[86 11[60 60 60 60 60 3[40 14[40 27[66 2[{
+TeXBase1Encoding ReEncodeFont}32 119.552 /Times-Bold
+rf /Fi 140[39 33 4[78 11[44 41[50 4[50 50 50 48[{
+TeXBase1Encoding ReEncodeFont}8 99.6264 /Times-Roman
+rf /Fj 133[64 4[72 40 56 48 2[72 72 112 40 2[40 72 2[64
+72 64 1[64 9[135 4[96 2[104 2[88 5[80 4[104 19[48 5[48
+39[{TeXBase1Encoding ReEncodeFont}23 143.462 /Times-Roman
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%BeginPaperSize: a4
+a4
+%%EndPaperSize
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 527 880 a Fj(A)-13 b(W)o(OR)34
+b(-)i(Fichier)e(Lisez-moi)g(de)h(l'administrateur)1601
+1315 y Fi(17)24 b(mars)h(2007)440 1678 y Fh(T)-11 b(able)30
+b(des)g(mati)1187 1677 y(\036)1180 1678 y(er)n(es)440
+1864 y Fg(1)83 b(Compatibilit)1023 1863 y(\264)1018 1864
+y(e)2208 b(2)440 2046 y(2)83 b(S)616 2045 y(\264)611
+2046 y(ecurit)824 2045 y(\264)819 2046 y(e)2407 b(2)440
+2229 y(3)83 b(Installation)2291 b(2)565 2329 y Ff(3.1)86
+b(D)5 b(\264)-33 b(epaquetage)18 b(des)i(pages)g(PHP)65
+b(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)166 b(2)565 2428 y(3.2)86 b(P)o(aram)5
+b(\036)-33 b(etres)19 b(de)h(con\002guration)79 b(.)42
+b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)166 b(3)565 2528 y(3.3)86 b(Initialisation)19
+b(de)h(la)h(base)58 b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)166
+b(4)565 2628 y(3.4)86 b(Con\002guration)18 b(par)h(d)5
+b(\264)-33 b(ef)o(aut)20 b(des)g(comptes)79 b(.)41 b(.)g(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)166 b(4)440
+2810 y Fg(4)83 b(Maintenance)2236 b(4)565 2910 y Ff(4.1)86
+b(V)-5 b(isualisation)19 b(des)i(objets)f(et)h(des)f(\002chiers)63
+b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
+166 b(4)565 3009 y(4.2)86 b(Netto)o(yage)19 b(de)h(la)g(base)75
+b(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)166 b(4)440 3192
+y Fg(5)83 b(A)l(uthenti\002cation)19 b(d)1209 3191 y(\264)1204
+3192 y(edi)1315 3191 y(\264)1310 3192 y(ee)h(-)h(P)n(ersonnalisation)
+1220 b(5)1851 5662 y Ff(1)p eop end
+%%Page: 2 2
+TeXDict begin 2 1 bop 440 535 a Fh(1)119 b(Compatibilit)1276
+534 y(\264)1269 535 y(e)565 721 y Ff(Cette)16 b(application)d(peut-)5
+b(\210)-33 b(etre)14 b(utilis)5 b(\264)-33 b(ee)16 b(sur)f(un)g(serv)o
+(eur)f(fonctionnant)e(a)n(v)o(ec)j(Apache,)f(MySQL\()p
+Fe(>)p Ff(=4\))440 820 y(et)21 b(PHP)g(\()p Fe(>)p Ff(=4\).)440
+1041 y Fg(PHP)82 b Ff(L)-8 b('application)20 b(ne)j(n)5
+b(\264)-33 b(ecessite)22 b(pas)g(de)h(con\002guration)c(de)j(PHP)h
+(particuli)5 b(\036)-33 b(ere.)21 b(Elle)h(fonc-)440
+1141 y(tionne)h(quelle)h(que)f(soit)i(la)g(v)n(aleur)e(du)g(param)5
+b(\036)-33 b(etre)23 b(de)h(con\002guration)d(re)o(gister)p
+2792 1141 25 4 v 29 w(globals,)i(utilise)440 1240 y(les)29
+b(sessions)h(via)e(les)i(fonctions)d(introduites)g(en)i(PHP4.)f(L)-8
+b('application)27 b(fonctionne)f(quelque)440 1340 y(soit)e(la)h(v)o
+(erbosit)5 b(\264)-33 b(e)22 b(des)i(af)n(\002chages)f(d'erreur)f(et)i
+(de)g(w)o(arning)f(PHP)-9 b(,)24 b(car)g(nous)f(a)n(v)n(ons)h(tra)n(v)n
+(aill)5 b(\264)-33 b(e)28 b(\036)-33 b(a)445 1440 y(\264)g(eliminer)18
+b(tous)g(les)i(messages)e Fd(\()-17 b(\()15 b Ff(E)p
+1447 1440 V 30 w(NO)m(TICE)f Fd(\))-17 b(\))19 b Ff(PHP)g(qui)f
+(surviennent)f(par)h(e)o(x)o(emple)f(lors)h(d'une)440
+1539 y(comparaison)g(a)n(v)o(ec)i(une)g(v)n(ariable)f(non-initialis)5
+b(\264)-33 b(ee.)565 1639 y(Les)17 b(scripts)g(PHP)h(n'acc)5
+b(\036)-33 b(edent)15 b(pas)i(en)22 b(\264)-33 b(ecriture)16
+b(au)h(syst)5 b(\036)-33 b(eme)17 b(de)g(\002chier)m(,)f(sauf)h(pour)f
+(l'upload)440 1739 y(de)26 b(\002chiers.)g(Le)h(dossier)f
+Fd(\()-17 b(\()18 b Ff(\002chiers)g Fd(\))-17 b(\))27
+b Ff(doit)j(\210)-32 b(etre)26 b(accessible)h(en)j(\264)-32
+b(ecriture)25 b(par)h(les)h(scripts)g(PHP)440 1838 y(sans)21
+b(quoi)e(la)i(fonctionnalit)5 b(\264)-33 b(e)18 b(d')5
+b(\264)-33 b(echange)18 b(de)i(\002chier)g(serait)g(inutilisable.)440
+2059 y Fg(MySQL)83 b Ff(Les)16 b(scripts)f(PHP)h(ne)f(modi\002ent)f
+(pas)i(structurellement)d(la)j(base)f(de)g(donn)5 b(\264)-33
+b(ee)14 b(MySQL,)440 2159 y(il)30 b(suf)n(\002t)g(donc)f(d'un)f(compte)
+h(permettant)f(les)i(instructions)f(SELECT)-6 b(,)29
+b(INSER)-5 b(T)f(,)30 b(UPD)m(A)-9 b(TE,)440 2259 y(DELETE)32
+b(sur)h(les)g(tables)g(de)g(l'application.)e(Pour)h(indiquer)k(\036)-33
+b(a)33 b(l'application)f(quel)g(compte)440 2358 y(MySQL)20
+b(utiliser)m(,)g(v)o(euillez)f(v)n(ous)h(reporter)j(\036)-32
+b(a)20 b(la)h(section)f(3.3.)440 2638 y Fh(2)119 b(S)692
+2637 y(\264)685 2638 y(ecurit)990 2637 y(\264)983 2638
+y(e)565 2824 y Ff(Cette)34 b(application)e(a)39 b(\264)-33
+b(et)5 b(\264)-33 b(e)34 b(d)5 b(\264)-33 b(ev)o(elopp)5
+b(\264)-33 b(ee)31 b(en)j(gardant)d(toujours)37 b(\036)-32
+b(a)34 b(l'esprit)f(les)h(probl)5 b(\036)-33 b(emes)440
+2924 y(de)26 b(s)5 b(\264)-33 b(ecurit)5 b(\264)-33 b(es.)26
+b(Nous)g(ne)g(pouv)n(ons)j(\264)-33 b(evidemment)24 b(pas)j(la)f
+(garantir)f(f)o(ailles)h(ni)g(b)n(ugs,)g(mais)g(nous)440
+3023 y(sommes)j(\002x)5 b(\264)-33 b(e)30 b(des)g(r)5
+b(\036)-33 b(egles)30 b(de)f(programmation)e(pour)33
+b(\264)-33 b(eviter)29 b(les)i(f)o(ailles)f(les)h(plus)e(courantes.)440
+3123 y(T)-7 b(outes)15 b(les)h(donn)5 b(\264)-33 b(ees)14
+b(issues)i(de)f(l'utilisateur)g(lors)g(des)h(traitements)e(des)i(pages)
+f(web)g(sont)g(trait)5 b(\264)-33 b(ees)440 3222 y(pour)29
+b(\264)-33 b(eviter)25 b(des)h(probl)5 b(\036)-33 b(emes)24
+b(d'insertion)g(de)i(code)e(dans)i(les)g(requetes)f(SQL.)h(L)-8
+b('authenti\002ca-)440 3322 y(tion)25 b(des)g(utilisateurs)f(est)i
+(syst)5 b(\264)-33 b(ematique,)24 b(v)5 b(\264)-33 b(eri\002)5
+b(\264)-33 b(ee)29 b(\036)-33 b(a)25 b(chaque)f(page)g(et)h(repose)g
+(sur)f(le)i(syst)5 b(\036)-33 b(eme)440 3422 y(des)24
+b(sessions)g(PHP)-9 b(.)23 b(En)g(re)n(v)n(anche,)f(il)i(f)o(aut)f
+(noter)f(que)h(le)h(formulaire)d(d'authenti\002cation)g(n'est)440
+3521 y(pas)27 b(prot)5 b(\264)-33 b(eg)5 b(\264)-33 b(e)25
+b(contre)h(l'usurpation)f(de)i(mots)f(de)h(passe)g(car)g(les)h
+(contraintes)d(donn)5 b(\264)-33 b(ees)26 b(dans)g(le)440
+3621 y(cahier)h(des)h(char)o(ges)e(ne)h(le)i(permettent)d(pas,)h(d)7
+b(\210)-35 b(u)28 b(moins,)e(il)j(n'est)e(pas)h(possible)f(d'utiliser)g
+(un)440 3721 y(cryptage)22 b(ef)n(\002cace)i(\(assym)5
+b(\264)-33 b(etrique\))22 b(sans)i(modi\002er)f(le)i(syst)5
+b(\036)-33 b(eme)24 b(d'authenti\002cation)d(d)5 b(\264)-33
+b(el)5 b(\264)-33 b(egu)5 b(\264)-33 b(ee)440 3820 y(et)19
+b(sans)g(utiliser)f(une)g(con\002guration)d(de)j(serv)o(eur)f(W)-7
+b(eb)19 b(sp)5 b(\264)-33 b(eci\002que.)17 b(Consid)5
+b(\264)-33 b(erez,)17 b(pour)g(r)5 b(\264)-33 b(esoudre)440
+3920 y(ce)24 b(probl)5 b(\036)-33 b(eme,)21 b(l'emploi)h(sur)h(serv)o
+(eur)f(web)h(s)5 b(\264)-33 b(ecuris)5 b(\264)-33 b(e)24
+b(\(HTTPS\))e(et)i(l'utilisation)f(d'une)f(liaison)440
+4019 y(entre)16 b(le)i(serv)o(eur)d(web)i(et)g(le)g(serv)o(eur)f
+(d'authenti\002cation)e(au)i(tra)n(v)o(ers)h(d'un)e(r)5
+b(\264)-33 b(eseau)17 b(de)f(con\002ance.)440 4300 y
+Fh(3)119 b(Installation)440 4502 y Fc(3.1)99 b(D)742
+4501 y(\264)736 4502 y(epaquetage)27 b(des)e(pages)g(PHP)565
+4657 y Ff(L)-8 b('application)26 b(est)i(li)n(vr)5 b(\264)-33
+b(ee)28 b(dans)g(une)f(archi)n(v)o(e)f(de)i(type)g(tarball)f(compress)5
+b(\264)-33 b(ee)27 b(qui)h(contient)440 4757 y(toute)k(l'arborescence)e
+(et)i(les)h(\002chiers)f(PHP)h(n)5 b(\264)-33 b(ecessaires.)32
+b(Il)h(suf)n(\002t)f(de)g(d)5 b(\264)-33 b(ecompresser)31
+b(cette)440 4857 y(archi)n(v)o(e)16 b(en)i(conserv)n(ant)e
+(l'arborescence)f(dans)j(un)f(dossier)h(publi)5 b(\264)-33
+b(e)17 b(par)g(v)n(otre)g(serv)o(eur)g(W)-7 b(eb)m(.)17
+b(Les)440 4956 y(\002chiers)24 b(de)g(con\002gurations)d(sont)j(pr)5
+b(\264)-33 b(esent)24 b(et)g(contiennent)e(des)i(v)n(aleurs)f(d'e)o(x)o
+(emple)f(que)h(v)n(ous)440 5056 y(pourrez)18 b(adapter)24
+b(\036)-33 b(a)21 b(v)n(otre)f(situation.)1851 5662 y(2)p
+eop end
+%%Page: 3 3
+TeXDict begin 3 2 bop 440 531 a Fc(3.2)99 b(P)o(aram)957
+530 y(\036)951 531 y(etr)n(es)26 b(de)f(con\002guration)565
+687 y Ff(Cette)f(application)e(comporte)f(deux)h(\002chiers)i(de)f
+(con\002guration)e(qui)i(sont)g(dans)g(le)h(dossier)440
+787 y Fd(\()-17 b(\()17 b Ff(include)e Fd(\))-17 b(\))p
+Ff(.)23 b(Les)f(\002chiers)g(e)o(xistent)g(dans)g(la)g(v)o(ersion)f
+(distrib)n(u)5 b(\264)-33 b(ee)21 b(et)i(ont)e(pour)g(b)n(ut)h(de)g
+(servir)g(de)440 886 y(mod)5 b(\036)-33 b(ele.)440 1031
+y Fg(connect.inc.php)20 b(:)41 b Ff(ce)19 b(\002chier)f(contient)g(les)
+h(coordonn)5 b(\264)-33 b(ees)16 b(du)i(serv)o(eur)f(MySQL,)h(de)h
+(l'utilisa-)648 1130 y(teur)g(SQL)i(et)g(de)f(la)h(base)f(que)f
+(l'application)g(utilisera.)440 1260 y Fg(con\002g)o(.inc.php)h(:)41
+b Ff(ce)17 b(\002chier)f(contient)g(tout)h(le)g(reste)g(de)g(la)g
+(con\002guration)d(de)j(l'application.)e(Le)648 1359
+y(\002chier)k(est)h(un)f(script)h(PHP)h(qui)e(initialise)h(un)f
+(tableau)g(multi-dimentionnel.)d(Ce)21 b(choix)i(\036)-33
+b(a)652 1459 y(\264)h(et)5 b(\264)-33 b(e)20 b(f)o(ait)h(par)f
+(commodit)5 b(\264)-33 b(e,)18 b(et)j(pour)e(permette)g(de)i(bien)e(hi)
+5 b(\264)-33 b(erarchiser)19 b(les)i(information,)d(en)648
+1559 y(re)n(v)n(anche,)13 b(la)j(syntax)o(e)f(est)h(fourbe.)c(.)g(.)i
+(N'oubliez)h(pas)g(de)h(vir)o(gule)c(!)j(T)-7 b(outes)16
+b(les)g(constantes)648 1658 y(sont)k(d)5 b(\264)-33 b(ecrites)20
+b(ci-dessous.)648 1818 y Fg($adminMail)g(:)41 b Ff(adresse)15
+b(e-mail)g(de)g(l'administrateur)-5 b(.)14 b(Af)n(\002ch)5
+b(\264)-33 b(ee)19 b(\036)-33 b(a)16 b(l'utilisateur)e(lorsque)830
+1917 y(qu'une)19 b(erreur)f(interne)24 b(\036)-32 b(a)20
+b(l'application)f(s'est)i(produite.)648 2047 y Fg($automatedMail)d(:)41
+b Ff(adresse)28 b(e-mail)g(de)h(r)5 b(\264)-33 b(eponse)27
+b(des)h(courriels)g(en)m(v)n(o)o(y)5 b(\264)-33 b(es)27
+b(automati-)830 2147 y(quement)19 b(par)h(l'application.)648
+2276 y Fg(A)l(UTH)g(:)41 b Ff(P)o(aram)5 b(\036)-33 b(etres)20
+b(d'authenti\002cation)830 2435 y Fg(POP)g(:)41 b Ff(P)o(aram)5
+b(\036)-33 b(etres)20 b(pour)e(les)j(serv)o(eurs)f(mail)g(POP)985
+2595 y Fg(SER)-5 b(VERS)23 b(:)41 b Ff(Chaque)24 b(\264)-33
+b(el)5 b(\264)-33 b(ement)20 b(de)h(ce)g(tableau)j(\036)-32
+b(a)21 b(pour)e(clef)h(le)h(nom)f(de)h(do-)1127 2694
+y(maine)j(du)g(fournisseur)f(de)i(service)g(de)f(courriel)g(\()h
+(partie)f(sui)n(v)n(ant)g(le)i(@)1127 2794 y(dans)c(une)g(adresse)g
+(e-mail\))k(\036)-32 b(a)22 b(pour)f(v)n(aleur)h(un)g(tableau)g
+(associatif)g(de)g(la)1127 2894 y(forme)d(sui)n(v)n(ante)1127
+3053 y Fg(subdomain)i(:)41 b Ff(adresse)20 b(complete)f(du)h(serv)o
+(eur)f(of)n(frant)f(le)j(service)f(POP)1127 3183 y Fg(port)g(:)41
+b Ff(num)5 b(\264)-33 b(ero)26 b(de)i(port)f(TCP)i(utilis)5
+b(\264)-33 b(e)28 b(pour)f(se)i(connecter)d(au)i(service)1210
+3282 y(POP)1127 3412 y Fg(user)o(name)p 1477 3412 25
+4 v 29 w(is)p 1561 3412 V 30 w(full)p 1711 3412 V 30
+w(mail)21 b(:)41 b Ff(Bool)5 b(\264)-33 b(een)14 b(\(true)h(ou)g(f)o
+(alse\))g(indicant)f(si)j(le)e(nom)1210 3511 y(d'utilisateur)39
+b(\036)-33 b(a)36 b(utiliser)g(pour)f(l'authenti\002cation)f(est)i
+(l'adresse)g(e-)1210 3611 y(mail)e(compl)5 b(\036)-33
+b(ete.)32 b(C'est)j(utile)e(pour)g(les)i(serv)o(eurs)d(POP)j(g)5
+b(\264)-33 b(erant)33 b(des)1210 3711 y(adresses)15 b(email)g(sur)h
+(plusieurs)e(domaines)g(\(comme)g(w)o(anadoo)g(/)h(orange)1210
+3810 y(au)20 b(moment)f(o)7 b(\036)-35 b(u)19 b(j')5
+b(\264)-33 b(ecris)21 b(ce)f(document\))830 3970 y Fg(bypass)p
+1075 3970 V 30 w(if)p 1156 3970 V 30 w(local)f(:)42 b
+Ff(Bool)5 b(\264)-33 b(een)32 b(indiquant)g(si)i(l'authenti\002cation)d
+(doit)37 b(\210)-32 b(etre)33 b(outre-)985 4069 y(pass)5
+b(\264)-33 b(ee)21 b(si)g(la)g(conne)o(xion)c(s'ef)n(fectue)i(depuis)h
+(le)g(serv)o(eur)f(lui-m)5 b(\210)-33 b(eme.)648 4229
+y Fg(CSS)21 b(:)41 b Ff(P)o(aram)5 b(\036)-33 b(etres)19
+b(des)i(styles)f(de)h(pages)830 4388 y Fg(CHOOSER)p 1251
+4388 V 29 w(LIST)h(:)41 b Ff(Ce)25 b(tableau)d(associatif)i(contient)e
+(la)i(liste)g(des)g(styles)g(CSS)990 4488 y(\036)-33
+b(a)31 b(utiliser)-5 b(.)30 b(Les)h(clefs)f(sont)g(les)h(libell)5
+b(\264)-33 b(es)30 b(des)h(th)5 b(\036)-33 b(emes)34
+b(\036)-33 b(a)31 b(af)n(\002cher)e(et)i(les)f(v)n(a-)985
+4587 y(leurs)25 b(sont)f(les)h(noms)f(des)g(\002chiers)g(CSS)i
+(correspondants,)21 b(sans)k(chemin,)e(ni)985 4687 y(e)o(xtension.)648
+4846 y Fg(MAIL)e(:)830 5006 y(TEMPLA)-8 b(TES)23 b(:)41
+b Ff(Ce)19 b(tableau)e(contient)g(des)h(tableaux)e(associatifs)i(dont)f
+(les)i(clefs)985 5105 y(seront)e(utilis)5 b(\264)-33
+b(ees)19 b(dans)e(les)h(passages)g(de)f(param)5 b(\036)-33
+b(etres)17 b(HTML,)g(et)h(contiennent)985 5205 y(des)j(sous-tableaux)d
+(de)i(la)h(forme)e(sui)n(v)n(ante)g(:)985 5364 y Fg(caption)h(:)41
+b Ff(Intitul)5 b(\264)-33 b(e)20 b(qui)g(sera)g(af)n(\002ch)5
+b(\264)-33 b(e)24 b(\036)-32 b(a)20 b(l'utilisateur)1851
+5662 y(3)p eop end
+%%Page: 4 4
+TeXDict begin 4 3 bop 985 531 a Fg(tpl)p 1087 531 25
+4 v 30 w(\002le)21 b(:)41 b Ff(Nom)20 b(du)f(\002chier)g(\(a)n(v)o(ec)h
+(l'e)o(xtension)e(PHP\))i(contenant)e(le)i(mod)5 b(\036)-33
+b(ele.)648 691 y Fg(SUPER)n(USERS)21 b(:)41 b Ff(Ce)34
+b(tableau)e(contient)g(la)i(liste)g(des)f(login)g(des)g(super)n
+(-utilisateurs)830 790 y(\(ceux)19 b(qui)h(ont)g(le)h(droit)e(de)h
+(supprimer)f(des)h(r)5 b(\264)-33 b(eunions\))648 920
+y Fg(UPLO)m(AD)20 b(:)41 b Ff(P)o(aram)5 b(\036)-33 b(etres)19
+b(concernant)f(l'attachement)h(de)h(\002chiers)g(aux)g(r)5
+b(\264)-33 b(eunions)830 1079 y Fg(accepted)p 1145 1079
+V 29 w(\002les)21 b(:)41 b Ff(T)-7 b(ableau)20 b(des)g(e)o(xtensions)f
+(qui)h(sont)g(autoris)5 b(\264)-33 b(ees.)440 1317 y
+Fc(3.3)99 b(Initialisation)24 b(de)h(la)g(base)565 1473
+y Ff(T)-7 b(ous)23 b(les)h(\002chiers)f(n)5 b(\264)-33
+b(ecessaires)24 b(sont)f(rang)5 b(\264)-33 b(es)22 b(dans)h(le)h
+(dossier)f Fd(\()-17 b(\()18 b Ff(install)f Fd(\))-17
+b(\))p Ff(.)23 b(V)-11 b(ous)24 b(utiliserez)440 1572
+y(principalement)d(le)i(\002chier)g Fd(\()-17 b(\()17
+b Ff(RAZBase.php)g Fd(\))-17 b(\))o Ff(.)24 b(Appel)5
+b(\264)-33 b(e)22 b(au)h(tra)n(v)o(ers)g(du)g(serv)o(eur)f(web,)g(il)i
+(v)n(ous)440 1672 y(permettra)i(automatiquement)e(de)j(mettre)f(en)h
+(place)g(la)g(structure)g(de)f(la)i(base)f(de)g(donn)5
+b(\264)-33 b(ees,)25 b(et)440 1771 y(optionnellement,)19
+b(d'ins)5 b(\264)-33 b(erer)20 b(un)h(jeu)g(d'essai)h(pour)e(tester)i
+(l'application)e(sur)i(v)n(otre)f(serv)o(eur)-5 b(.)20
+b(Si)440 1871 y(v)n(ous)25 b(ne)g(souhaitez)f(pas)h(utiliser)g(de)g
+(compte)f(SQL)h(ayant)g(le)g(droit)f(d'alt)5 b(\264)-33
+b(erer)24 b(la)i(structure)e(des)440 1971 y(tables)c(de)f(v)n(otre)g
+(base)h(a)n(v)o(ec)f(ce)h(script)f(php,)g(v)n(ous)g(pouv)o(ez)f(e)o(x)5
+b(\264)-33 b(ecuter)18 b(le)i(script)f Fd(\()-17 b(\()16
+b Ff(base.sql)f Fd(\))-17 b(\))20 b Ff(a)n(v)o(ec)440
+2070 y(v)n(otre)g(client)g(SQL)h(f)o(a)n(v)n(ori.)e(Le)h(jeu)h(d'essai)
+f(se)h(trouv)o(e)e(dans)g(le)i(\002chier)f Fd(\()-17
+b(\()16 b Ff(jeu)p 2700 2070 V 30 w(essai.sql)g Fd(\))-17
+b(\))p Ff(.)565 2170 y(V)-11 b(ous)19 b(de)n(vriez)f(supprimer)f(ce)i
+(r)5 b(\264)-33 b(epertoire)17 b(d)5 b(\036)-33 b(es)20
+b(que)e(l'installation)g(sera)i(termin)5 b(\264)-33 b(ee)18
+b(car)h(il)g(peut)440 2270 y(poser)i(des)h(probl)5 b(\036)-33
+b(emes)20 b(de)h(s)5 b(\264)-33 b(ecurit)5 b(\264)-33
+b(e)21 b(car)h(le)g(\002chier)f Fd(\()-17 b(\()17 b Ff(RAZBase.php)f
+Fd(\))-17 b(\))21 b Ff(pourrait)k(\210)-33 b(etre)22
+b(lanc)5 b(\264)-33 b(e)21 b(par)440 2369 y(n'importe)d(qui,)i(et)h
+(les)g(\002chiers)f(SQL)g(contienent)f(des)h(informations)e(sensibles.)
+440 2607 y Fc(3.4)99 b(Con\002guration)26 b(par)f(d)1522
+2606 y(\264)1516 2607 y(efaut)h(des)g(comptes)565 2763
+y Ff(Dans)15 b(le)h(\002chier)f(de)g(con\002guration)d(mod)5
+b(\036)-33 b(ele,)14 b(un)h(super)n(-utilisateur)f(est)i(con\002gur)5
+b(\264)-33 b(e)13 b(:)j(inglebert@iut-)440 2862 y(blagnac.fr)k(et)j(le)
+g(jeu)f(d'essai)h(propos)5 b(\264)-33 b(e)21 b(au)h(paragraphe)e(pr)5
+b(\264)-33 b(ec)5 b(\264)-33 b(edent)20 b(permet)i(de)g(cr)5
+b(\264)-33 b(eer)22 b(des)h(utili-)440 2962 y(sateurs,)d(et)h(en)f
+(particulier)f(inglebert@iut-blagnac.fr)-5 b(.)565 3061
+y(P)o(ar)30 b(d)5 b(\264)-33 b(ef)o(aut,)29 b(v)n(ous)h(pourrez)e(donc)
+h(v)n(ous)h(connecter)f(en)h(tant)g(qu'administrateur)e(a)n(v)o(ec)i
+(ce)440 3161 y(compte.)18 b(Le)h(jeu)g(d'essai)h(met)f(ce)h(compte)e(a)
+n(v)o(ec)h(comme)f(mode)g(d'authenti\002cation)e Fd(\()-17
+b(\()16 b Ff(bypass)f Fd(\))-17 b(\))p Ff(,)440 3261
+y(ce)27 b(qui)f(signi\002e)h(qu'aucun)d(mot)i(de)h(passe)g(n'est)f(n)5
+b(\264)-33 b(ecessaire.)27 b(Pour)f(utiliser)g(un)h(vrai)f(syst)5
+b(\036)-33 b(eme)440 3360 y(d'authenti\002cation,)18
+b(connectez-v)n(ous)g(a)n(v)o(ec)j(ce)h(compte)e(et)h(allez)g(dans)g
+(la)h(page)e Fd(\()-17 b(\()17 b Ff(Mon)j(Pro\002l)d
+Fd(\))-17 b(\))440 3460 y Ff(pour)19 b(choisir)h(une)f(autre)h(mode)f
+(d'authenti\002cation.)440 3740 y Fh(4)119 b(Maintenance)440
+3942 y Fc(4.1)99 b(V)l(isualisation)24 b(des)h(objets)h(et)f(des)g
+(\002chiers)565 4098 y Ff(Une)19 b(page)h(d'administration)d(est)k(pr)5
+b(\264)-33 b(evue)23 b(\036)-33 b(a)20 b(cet)h(ef)n(fet,)e(et)h(elle)h
+(n'est)e(accessible)h(que)g(par)f(un)440 4198 y Fd(\()-17
+b(\()16 b Ff(super)n(-utilisateur)d Fd(\))-17 b(\))p
+Ff(,)20 b(c'est)k(\036)-33 b(a)20 b(dire)f(un)g(utilisateur)g(consign)5
+b(\264)-33 b(e)18 b(dans)h(le)g(\002chier)g(de)h(con\002guration)440
+4297 y(principal)f(en)h(tant)g(que)g(tel,)g(conf)5 b(\036)-33
+b(ere)19 b(3.2.)440 4535 y Fc(4.2)99 b(Nettoyage)25 b(de)h(la)e(base)
+581 4672 y Ff(\036)565 4691 y(A)31 b(partir)g(de)g(la)h(page)f
+(d'administration)d(d)5 b(\264)-33 b(ecrite)31 b(dans)g(le)h
+(paragraphe)d(pr)5 b(\264)-33 b(ec)5 b(\264)-33 b(edent,)29
+b(v)n(ous)440 4790 y(pouv)o(ez)c(aussi)j(pur)o(ger)c(les)k(\002chiers)f
+(attach)5 b(\264)-33 b(es)27 b(et)g(les)h(objets)f(de)g(la)g(base)g(de)
+g(donn)5 b(\264)-33 b(ees)26 b(de)n(v)o(enus)440 4890
+y(obsol)5 b(\036)-33 b(etes.)18 b(L)-8 b('aide)19 b(conte)o(xtuelle)e
+(de)i(cette)g(page)f(v)n(ous)h(e)o(xpliquera)d(comment)i(f)o(aire.)g
+(Il)h(est)h(vi)n(v)o(e-)440 4989 y(ment)h(conseill)5
+b(\264)-33 b(e)21 b(de)g(f)o(aire)g(une)g(sauv)o(e)o(garde)d(de)j(la)h
+(base)f(de)h(donn)5 b(\264)-33 b(ees)20 b(et)h(des)h(\002chiers)f
+(joints)g(aux)440 5089 y(r)5 b(\264)-33 b(eunions)16
+b(a)n(v)n(ant)i(d'utiliser)f(cet)h(outil)g(car)g(l'erreur)e(de)i
+(manipulation)d(ou)j(de)g(programmation)c(est)440 5189
+y(toujours)19 b(possible.)12 b(.)g(.)1851 5662 y(4)p
+eop end
+%%Page: 5 5
+TeXDict begin 5 4 bop 440 535 a Fh(5)119 b(A)-6 b(uthenti\002cation)33
+b(d)1547 534 y(\264)1540 535 y(edi)1699 534 y(\264)1692
+535 y(ee)e(-)f(P)n(ersonnalisation)565 721 y Ff(A)-7
+b(W)o(OR)18 b(utilise)h(un)e(syst)5 b(\036)-33 b(eme)18
+b(d'authenti\002cation)d(d)5 b(\264)-33 b(edi)5 b(\264)-33
+b(ee)17 b(de)h(sorte)g(qu'aucun)d(mot)j(de)f(passe)440
+820 y(ne)28 b(soit)g(stock)5 b(\264)-33 b(e,)28 b(et)g(que)f
+(l'utilisateur)h(n'ait)f(pas)h(besoin)g(d'en)f(retenir)g(un)g(nouv)o
+(eau.)e(Le)k(code)440 920 y(d'authenti\002cation)c(\036)-33
+b(a)28 b(\264)-33 b(et)5 b(\264)-33 b(e)28 b(\264)-32
+b(ecrit)22 b(de)h(mani)5 b(\036)-33 b(ere)27 b(\036)-33
+b(a)28 b(\210)-33 b(etre)23 b(mal)5 b(\264)-33 b(eable)22
+b(et)h(est)h(e)o(xtensible.)e(Le)g(coeur)g(du)440 1019
+y(syst)5 b(\036)-33 b(eme)20 b(d'authenti\002cation)d(se)k(trouv)o(e)d
+(dans)i(le)h(\002chier)e Fd(\()-17 b(\()16 b Ff(auth)p
+2345 1019 25 4 v 29 w(dialog.php)e Fd(\))-17 b(\))o Ff(.)21
+b(V)-11 b(ous)20 b(y)g(trouv)o(e-)440 1119 y(rez)g(une)g(section)g
+(commenc)-32 b(\270)r(ant)20 b(par)f(le)i(commentaire)d(ci-dessous.)648
+1401 y Fb(/)698 1416 y(********************************)o(*****)o
+(******)o(*****)o(***)648 1516 y(**)797 1501 y(Ajouter)49
+b(d'autres)f(mode)h(d'authentification)d(ici)k(!)3138
+1516 y(**)648 1616 y(*********************************)o(*****)o
+(******)o(*****)o(**)3194 1601 y(/)440 1783 y Ff(Comme)26
+b(l'indique)f(ce)i(commentaire,)e(v)n(ous)h(pourrez)f(ajouter)31
+b(\036)-33 b(a)27 b(cet)g(endroit)f(une)g(portion)f(de)440
+1883 y(code)20 b(pour)e(utiliser)j(un)f(autre)f(service)h
+(d'authenti\002cation.)d(La)k(syntax)o(e)e(est)i(la)g(sui)n(v)n(ante)e
+(:)648 2027 y Fb(case)49 b('<nom)p 1152 2027 V 29 w(auth>')f(:)648
+2127 y(/)698 2142 y(*)797 2127 y(Eventuellement)f(du)j(code)f(pr)2043
+2126 y(\264)2043 2127 y(el)2143 2126 y(\264)2143 2127
+y(eminaire)2590 2142 y(*)2640 2127 y(/)648 2227 y($auth)p
+903 2227 V 29 w(is)p 1032 2227 V 29 w(ok=<fonction)p
+1661 2227 V 28 w(ou)p 1789 2227 V 29 w(variable)p 2218
+2227 V 29 w(authentification>;)648 2326 y(if)g(\()h(!)f($auth)p
+1251 2326 V 29 w(is)p 1380 2326 V 30 w(ok)g(\))648 2426
+y Fa(f)g Fb(//)g(Si)h(l'authentificaiton)1984 2425 y(\036)1984
+2426 y(a)2084 2425 y(\264)2084 2426 y(echou)2334 2425
+y(\264)2334 2426 y(ee)648 2525 y($errmsg=<fonction)p
+1503 2525 V 26 w(ou)p 1629 2525 V 30 w(chaine)p 1959
+2525 V 29 w(explicant)p 2438 2525 V 28 w(l)p 2516 2525
+V 29 w(erreur>;)648 2625 y Fa(g)648 2725 y Fb(break;)440
+2869 y Ff(Il)30 b(v)n(ous)e(suf)n(\002t)i(de)f(remplacer)f(les)34
+b(\264)-32 b(el)5 b(\264)-33 b(ements)29 b(entre)f(che)n(vrons)g(dans)h
+(le)h(code)e(ci-dessus)h(et)h(de)440 2969 y(le)23 b(coller)g(dans)f
+Fd(\()-17 b(\()p Ff(auth)p 1099 2969 V 29 w(dialog.inc.php)p
+Fd(\))g(\))19 b Ff(pour)i(pouv)n(oir)g(utiliser)i(un)f(nouv)o(eau)e
+(mode)i(d'authen-)440 3068 y(ti\002cation.)28 b(Reste)33
+b(\036)-32 b(a)28 b(donner)j(\036)-33 b(a)29 b(l'utilisateur)e(la)i
+(capacit)5 b(\264)-33 b(e)27 b(de)h(l'utiliser)-5 b(.)28
+b(V)-11 b(ous)28 b(de)n(vrez)f(encore,)440 3168 y(d'une)19
+b(part,)g(ajouter)g(dans)h(la)h(base)f(de)g(donn)5 b(\264)-33
+b(ees)19 b(le)h Fe(<)p Ff(nom)p 2184 3168 V 28 w(auth)p
+Fe(>)k Ff(\036)-33 b(a)21 b(l')5 b(\264)-33 b(enum)5
+b(\264)-33 b(eration)17 b(du)j(champ)440 3268 y Fd(\()-17
+b(\()p Ff(methodeAuth)p Fd(\))g(\))15 b Ff(de)i(la)h(table)f
+Fd(\()-17 b(\()p Ff(Personne)p Fd(\))g(\))n Ff(,)18 b(et)g(d'autre)e
+(part)h(proposer)j(\036)-32 b(a)18 b(l'utilisateur)e(d'utiliser)440
+3367 y(ce)k(mode)g(d'authenti\002cation)d(en)j(modi\002ant)f(la)i(page)
+f Fd(\()-17 b(\()o Ff(pro\002l.php)p Fd(\))g(\))m Ff(.)1851
+5662 y(5)p eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/final/doc/READ_ME.txt b/final/install/READ_ME.txt
index ce42282..34046ad 100644
--- a/final/doc/READ_ME.txt
+++ b/final/install/READ_ME.txt
@@ -29,8 +29,8 @@ fonctionnant avec Apache, MySQL(>=4) et PHP (>=4).
PHP
L'application ne nécessite pas de configuration de PHP
-particulière. Elle fonctionne quelque soit la valeur du
-paramètre de configuration register_globals, utilise
+particulière. Elle fonctionne quelle que soit la valeur
+du paramètre de configuration register_globals, utilise
les sessions via les fonctions introduites en PHP4.
L'application fonctionne quelque soit la verbosité des
affichages d'erreur et de warning PHP, car nous avons
@@ -59,10 +59,10 @@ Cette application a été développée en gardant toujours
à l'esprit les problèmes de sécurités. Nous ne pouvons
évidemment pas la garantir failles ni bugs, mais nous
sommes fixé des règles de programmation pour éviter les
-failles les plus courantes. Toutes les données issue de
-l'utilisateur lors des traitements des pages web sont
-traitées pour éviter des problèmes d'insertion de code
-dans les requetes SQL. L'authentification des
+failles les plus courantes. Toutes les données issues
+de l'utilisateur lors des traitements des pages web
+sont traitées pour éviter des problèmes d'insertion de
+code dans les requetes SQL. L'authentification des
utilisateurs est systématique, vérifiée à chaque page
et repose sur le système des sessions PHP. En revanche,
il faut noter que le formulaire d'authentification
@@ -89,8 +89,6 @@ dossier publié par votre serveur Web. Les fichiers de
configurations sont présent et contiennent des valeurs
d'exemple que vous pourrez adapter à votre situation.
-
-
3.2 <sub:Configuration>Paramètres de configuration
Cette application comporte deux fichiers de
@@ -177,7 +175,7 @@ pour but de servir de modèle.
3.3 <sub:Initialisation-de-la-bd>Initialisation de la base
-Tout les fichiers nécessaires sont rangés dans le
+Tous les fichiers nécessaires sont rangés dans le
dossier "install". Vous utiliserez principalement le
fichier "RAZBase.php". Appelé au travers du serveur web,
il vous permettra automatiquement de mettre en place la
@@ -189,6 +187,12 @@ tables de votre base avec ce script php, vous pouvez
exécuter le script "base.sql" avec votre client SQL
favori. Le jeu d'essai se trouve dans le fichier "jeu_essai.sql".
+Vous devriez supprimer ce répertoire dès que
+l'installation sera terminée car il peut poser des
+problèmes de sécurité car le fichier "RAZBase.php"
+pourrait être lancé par n'importe qui, et les fichiers
+SQL contienent des informations sensibles.
+
3.4 Configuration par défaut des comptes
Dans le fichier de configuration modèle, un
@@ -200,8 +204,8 @@ et en particulier inglebert@iut-blagnac.fr.
Par défaut, vous pourrez donc vous connecter en tant
qu'administrateur avec ce compte. Le jeu d'essai met ce
compte avec comme mode d'authentification "bypass", ce
-qui signifie qu'aucun mot de passe est nécessaire. Pour
-utiliser un vrai système d'authentification,
+qui signifie qu'aucun mot de passe n'est nécessaire.
+Pour utiliser un vrai système d'authentification,
connectez-vous avec ce compte et allez dans la page "Mon Profil"
pour choisir une autre mode d'authentification.
@@ -255,12 +259,9 @@ $auth_is_ok=<fonction_ou_variable_authentification>;
if ( ! $auth_is_ok )
-{ // On exécute la ligne ci-dessous que si
-l'authentificaiton à échouée
-
-
+{ // Si l'authentificaiton à échouée
-$errmsg=<fonction_ou_chaine_explicant_l_erreur_d_authentification>;
+$errmsg=<fonction_ou_chaine_explicant_l_erreur>;
}
diff --git a/final/install/index.html b/final/install/index.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/final/install/index.html
diff --git a/final/install/jeu_essai.sql b/final/install/jeu_essai.sql
index 889d4f6..7723733 100644
--- a/final/install/jeu_essai.sql
+++ b/final/install/jeu_essai.sql
@@ -1,2 +1,114 @@
--- phpMyAdmin SQL Dump
--- TODO !!
+--
+-- Base de données: `awor`
+--
+
+-- --------------------------------------------------------
+--
+-- Contenu de la table `AWOR_Appartenir`
+--
+DELETE FROM `AWOR_Appartenir`;
+INSERT INTO `AWOR_Appartenir` (`idL`, `idP`) VALUES (1, 2),
+(1, 3),
+(1, 4),
+(1, 5),
+(2, 1),
+(2, 2),
+(2, 4),
+(2, 5),
+(3, 1),
+(3, 2),
+(3, 3),
+(4, 1),
+(4, 4),
+(4, 5),
+(5, 1),
+(5, 4),
+(5, 5),
+(6, 1),
+(6, 2),
+(6, 3),
+(8, 1),
+(8, 2),
+(8, 3),
+(8, 4);
+
+-- --------------------------------------------------------
+--
+-- Contenu de la table `AWOR_Choisir`
+--
+DELETE FROM `AWOR_Choisir`;
+INSERT INTO `AWOR_Choisir` (`idC`, `idP`, `estDispo`) VALUES (1, 3, 'oui'),
+(6, 1, 'oui'),
+(7, 1, 'non'),
+(1, 2, 'oui'),
+(2, 2, 'non'),
+(3, 2, 'oui'),
+(4, 2, 'non'),
+(5, 2, 'oui');
+
+-- --------------------------------------------------------
+--
+-- Contenu de la table `AWOR_Creneau`
+--
+DELETE FROM `AWOR_Creneau`;
+INSERT INTO `AWOR_Creneau` (`idC`, `dateHeure`, `duree`, `idR`) VALUES (1, '2007-04-01 07:45:00', 645, 1),
+(2, '2007-04-03 09:15:00', 75, 1),
+(3, '2007-04-10 09:15:00', 75, 1),
+(4, '2007-04-17 09:15:00', 75, 1),
+(5, '2007-04-24 09:15:00', 75, 1),
+(6, '2007-06-20 10:10:00', 80, 2),
+(7, '2007-06-25 12:00:00', 30, 2),
+(8, '2007-04-25 00:00:00', 0, 4);
+
+-- --------------------------------------------------------
+--
+-- Contenu de la table `AWOR_Fichier`
+--
+DELETE FROM `AWOR_Fichier`;
+INSERT INTO `AWOR_Fichier` (`idFic`, `nomFic`, `idR`) VALUES (1, 'r1_READ_ME.pdf', 1),
+(2, 'r2_IUP MER.txt', 2);
+
+-- --------------------------------------------------------
+--
+-- Contenu de la table `AWOR_Liste`
+--
+DELETE FROM `AWOR_Liste`;
+INSERT INTO `AWOR_Liste` (`idL`, `libelleL`, `estPrivee`, `idP_Createur`) VALUES (1, 'interne_idR_1', 'oui', NULL),
+(2, 'interne_idR_2', 'oui', NULL),
+(3, 'Amis', 'oui', 3),
+(4, 'interne_idR_3', 'oui', NULL),
+(5, 'interne_idR_4', 'oui', NULL),
+(6, 'Créateurs d''AWOR', 'oui', 1),
+(7, 'interne_idR_5', 'oui', NULL),
+(8, 'MaListePerso', 'oui', 2);
+
+-- --------------------------------------------------------
+--
+-- Contenu de la table `AWOR_Personne`
+--
+DELETE FROM `AWOR_Personne`;
+INSERT INTO `AWOR_Personne` (`idP`, `courrielP`, `loginP`, `nomP`, `prenomP`, `estAdmin`, `methodeAuth`) VALUES (1, 'lpouzenc@wanadoo.fr', 'lpouzenc', 'Pouzenc', 'Ludovic', 'oui', 'pop'),
+(2, 'jeremie.denoyer@etu.iut-blagnac.fr', 'jeremie.denoyer', 'jeremie', 'denoyer', 'non', 'pop'),
+(3, 'julien.sere@free.fr', 'julien.sere', 'Julien', 'Sere', 'non', 'pop'),
+(4, 'soule@iut-blagnac.fr', 'soule@iut-blagnac.fr', 'Soulé', 'Geneviève', 'non', 'pop'),
+(5, 'inglebert@iut-blagnac.fr', 'inglebert@iut-blagnac.fr', 'Inglebert', 'Jean-Michel', 'non', 'bypass');
+
+-- --------------------------------------------------------
+--
+-- Contenu de la table `AWOR_Repondre`
+--
+DELETE FROM `AWOR_Repondre`;
+INSERT INTO `AWOR_Repondre` (`idR`, `idP`, `commentaireReponse`) VALUES (1, 1, 'Test de commentaire un peu long...Test de commentaire un peu long...Test de commentaire un peu long...Test de commentaire un peu long...Test de commentaire un peu long...Test de commentaire un peu long...Test de commentaire un peu long...Test de commentaire un peu long...'),
+(1, 3, 'Un commentaire à [ | ) @ {[| @#~{[#`|['),
+(3, 1, 'Réunion juste pour le test...');
+
+-- --------------------------------------------------------
+--
+-- Contenu de la table `AWOR_Reunion`
+--
+DELETE FROM `AWOR_Reunion`;
+INSERT INTO `AWOR_Reunion` (`idR`, `objetR`, `ordreJourR`, `lieuR`, `remarquesR`, `montrerDispoR`, `estAnnulee`, `idP_Orga`, `idC_Fixe`, `idL`) VALUES (1, 'Recette du projet tuteuré', 'Recette de cette magnifique application :-)', 'Salle 219', 'Aucune', 'non', 'non', 1, NULL, 1),
+(2, 'Renseignez', NULL, NULL, NULL, 'non', 'non', 3, NULL, 2),
+(3, 'Réunion annulée - essais', '', 'Nullepart', '', 'oui', 'oui', 1, NULL, 4),
+(4, 'Réunion fixée pour tester', '', '', '', 'non', 'non', 1, 8, 5),
+(5, 'Renseignez', NULL, NULL, NULL, 'non', 'non', 2, NULL, 7);
diff --git a/final/sed.rl b/final/sed.rl
deleted file mode 100644
index e93250b..0000000
--- a/final/sed.rl
+++ /dev/null
@@ -1,6 +0,0 @@
-s/é/\&eacute;/
-s/è/\&egrave;/
-s/ê/\&ecirc;/
-s/ù/\&ugrave;/
-s/à/\&agrave;/
-
diff --git a/final/sed.sh b/final/sed.sh
deleted file mode 100644
index ae75b59..0000000
--- a/final/sed.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-echo $1
-cp $1 $1_bkp
-
-sed -f sed.rl $1_bkp > $1
-
-for ((i=0;i<10;i++))
-do
- sed -f sed.rl $1 > $1_old
- sed -f sed.rl $1_old > $1
-done
-rm $1_old
-rm $1_bkp
-
diff --git a/final/test.txt b/final/test.txt
deleted file mode 100644
index b290a3d..0000000
--- a/final/test.txt
+++ /dev/null
@@ -1 +0,0 @@
-2àùèé
diff --git a/final/test.txt_bkp b/final/test.txt_bkp
deleted file mode 100644
index b290a3d..0000000
--- a/final/test.txt_bkp
+++ /dev/null
@@ -1 +0,0 @@
-2àùèé
diff --git a/final/test.txt_old b/final/test.txt_old
deleted file mode 100644
index b290a3d..0000000
--- a/final/test.txt_old
+++ /dev/null
@@ -1 +0,0 @@
-2àùèé
diff --git a/final/upload_files/index.html b/final/upload_files/index.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/final/upload_files/index.html