[28] | 1 | History |
---|
| 2 | ------------------------------------------------------------------- |
---|
| 3 | |
---|
| 4 | ========================================================= |
---|
[297] | 5 | PSPA - Plateforme de simulation en physique des accélérateurs |
---|
[28] | 6 | ========================================================= |
---|
[398] | 7 | |
---|
[405] | 8 | 28 Mars : Laurent Garnier |
---|
| 9 | - Correction de problèmes avec le softwarePanel |
---|
[410] | 10 | - Correction dans les comboBox |
---|
| 11 | - Ajout de l'heure et la date sur les graphiques |
---|
| 12 | - particleBeam : passage de 3 à 5 sigma |
---|
[405] | 13 | |
---|
[401] | 14 | 27 Mars : Laurent Garnier |
---|
| 15 | - pspa.css : Ajout de styles pour divers containers (buttons...) |
---|
| 16 | - abstractElement.cc : Correction d'un bug dans setSoftware() qui ne mettait pas |
---|
| 17 | le software a jour si celui ci était "unknow" |
---|
| 18 | - GWt_elementLigneFaisceau.cc : Correction d'un bug qui ne mettait pas à jour la |
---|
| 19 | couleur du sofware sur un chanegement |
---|
| 20 | - GWt_serverFileSelector,GWt_dialog : Améliorations de l'aspect visuel |
---|
| 21 | - GWt_sectionToExecute.cc : Mise en application des comboBox |
---|
| 22 | - GWt_pspaApplication.cc : Correction d'un bug qui ne remettait pas a jour les sections |
---|
| 23 | lors de l'effacement des composants |
---|
| 24 | - GWt_softwarePanel.cc : Mise en place des comboBox et suppression des dialogBox |
---|
[405] | 25 | - Ajout d'un fond gris sur l'output |
---|
| 26 | - |
---|
[401] | 27 | |
---|
[398] | 28 | 24 mars 2013 : Guy Le Meur |
---|
| 29 | -supprimé des sorties inutiles dans l a fenêtre console |
---|
| 30 | -localisation du fichier de sortie de parmela, parmout, dans workingarea |
---|
| 31 | |
---|
[401] | 32 | 22 Mars : Laurent Garnier |
---|
| 33 | - GWt_sectionToExecute : Amélioration du layout |
---|
| 34 | - GWt_softwarePanel : Suppression de la version avec les lineEdit |
---|
| 35 | - Améliorations de l'interface graphique |
---|
| 36 | - Restructuration de la console |
---|
| 37 | - Remise en ordre des éléments de la barre d'icone à gauche |
---|
| 38 | - Toujours quelques problemes à regler sur les comboBox |
---|
| 39 | |
---|
| 40 | 20 Mars : Laurent Garnier |
---|
| 41 | - GWt_LigneFaisceau : renommage |
---|
| 42 | - GWt_softwarePanel : Preparation des ComboBox |
---|
| 43 | - GWt_sectionToExecute : Ajout de qq méthodes pour manipuler les ComboBox |
---|
| 44 | |
---|
[394] | 45 | 18 mars : Francois Touze |
---|
| 46 | - GWt_pspaApplication : utilise/modifie chartPlot2vec pour le tracé des histogrammes (unification des tracés) |
---|
| 47 | |
---|
[401] | 48 | |
---|
| 49 | 13 Mars : Laurent Garnier |
---|
| 50 | - Etape 2 ok, test ok |
---|
| 51 | |
---|
| 52 | 13 Mars : Laurent Garnier |
---|
| 53 | - dataManager: ajout clearSectionToExecute(int), getJobListAt(int), getJobListSize() functions |
---|
| 54 | - sectionToExecute : renommage |
---|
| 55 | - GWt_softwarePanel : Changements pour ne plus passer par la structure "selectedSections" et |
---|
| 56 | passer par le vecteur de sections. Toutes les infos sont également cherchées directement dans |
---|
| 57 | la jobList du dataManager |
---|
| 58 | |
---|
[386] | 59 | 12 mars : Guy Le Meur |
---|
| 60 | -softwareXXX : changé l'indexation ders éléments pour tenir compte des éléments ignorés par les softwares. |
---|
| 61 | -dataManager : création d'une méthode getDiagnosticBeam(string elementLabel); |
---|
[329] | 62 | |
---|
[401] | 63 | 12 Mars : Laurent Garnier |
---|
| 64 | - dataManager: |
---|
| 65 | o ajout de paramètres à la méthode addSectionToExecute() en vue de se débarraser des index. |
---|
| 66 | Mieux vaut passer par des elements abstraits plus simples à gérer. |
---|
| 67 | o executeAll() : récupérations des éléments de la sections avec de nouvelles méthodes. |
---|
| 68 | o Déplacement de createSoftwareConnexion() en "public" |
---|
| 69 | - sectionToExecute : Cette structure est désormais une classe avec toutes les méthodes qui vont avec. |
---|
| 70 | Dans une étape intermédiare, j'ai laissé les index début et fin, mais ils devront êtres supprimés |
---|
| 71 | au profil des abstractElements. |
---|
| 72 | - GWt_LigneFaisceau : Ajout d'une méthode getAbstractElementIndexFromLabel(string) |
---|
| 73 | - GWt_softwarePanel : Modifications pour attraper les bons éléments |
---|
| 74 | |
---|
| 75 | abstractElement* debut,int debutIndex, abstractElement* fin, int finIndex, abstractSoftware* prog) |
---|
| 76 | |
---|
[382] | 77 | 11 Mars : Laurent Garnier |
---|
| 78 | - GWt_elementLigneFaisceau : Changement de l'apparence des icones poubelle et paramètres |
---|
| 79 | qui apparaissent désormais horizontalement et non verticalement |
---|
| 80 | |
---|
[378] | 81 | 8 mars : Francois Touze |
---|
| 82 | - particleBeam : corrigé le remplissage des histogrammes et maj des unites |
---|
| 83 | - GWt_pspaApplication : completé l'écriture des légendes |
---|
[380] | 84 | - j'ai ajouté une extension (.001, .002,...) pour les fichiers créés par defaut par snapshot |
---|
[378] | 85 | |
---|
[376] | 86 | 7 Mars : Laurent Garnier |
---|
| 87 | - pspa.css : Ajout de l'icone poubelle |
---|
| 88 | - GWt_elementLigneFaisceau : Réduction de la taille des éléments de la beamLine |
---|
| 89 | - GWt_pspaApplication : Ajout de l'icone poubelle et de la méthode removeBeamLine |
---|
| 90 | |
---|
[370] | 91 | 6 Mars : Laurent Garnier |
---|
[375] | 92 | - pspa.css : |
---|
| 93 | o Ajout de style pour les futurs graphiques |
---|
| 94 | o Ajout de .softwareElementLigneFaisceauName |
---|
[370] | 95 | - GWt_pspaApplication : Ajout des paramètres width et height à la méthode chartPlot2vec() |
---|
| 96 | afin de pouvoir la changer facilement. AJout également d'un paramètre "makeIcon" pour faire |
---|
| 97 | des graphiques sans légende, sans bordures... |
---|
[372] | 98 | - GWt_bend, GWt_drift, GWt_beam |
---|
| 99 | GWt_soleno, GWt_fit, GWt_rfgun |
---|
| 100 | GWt_cell : bug fix #18 |
---|
[375] | 101 | - abstractSoftware, softwareTransport, softwareParmela, softwareGenerator, softwareTest : |
---|
| 102 | Ajout d'une méthode getName() |
---|
| 103 | - GWt_elementLigneFaisceau.cc,GWt_ligneFaisceau.cc : Ajout du nom du soft en bas à droite |
---|
| 104 | - PspaApplication : |
---|
| 105 | o Affichage du nom du cas test dans le titre de la fenetre |
---|
| 106 | o Suppression de l'erreur lors du clic sur cancel dans le selecteur de fichiers |
---|
[370] | 107 | |
---|
[365] | 108 | 5 Mars : Laurent Garnier |
---|
| 109 | - pspa.css : ameliorations dans le style des elements |
---|
| 110 | - GWt_elementLigneFaisceau : Ajout d'actions sur les icones dans les elements |
---|
| 111 | - GWt_abstractElement : suppression des actions sur l'image d'un element |
---|
| 112 | - ajoute de l'icone trash.png |
---|
| 113 | |
---|
[364] | 114 | 5 mars : Francois Touze |
---|
| 115 | -GWt_pspaApplication, particleBeam : ajouté le tracé des histogrammes en x,y ou z |
---|
| 116 | |
---|
[361] | 117 | 5 Mars : Laurent Garnier |
---|
| 118 | - GWt_LigneFaisceau : protection contre un pointer NULL |
---|
| 119 | - abstractElement : Ajout d'un cas oublié dans la version précédente |
---|
| 120 | - ajoute du cas test philFit.save |
---|
| 121 | |
---|
[359] | 122 | 4 Mars : Laurent Garnier |
---|
| 123 | - pspa.css |
---|
| 124 | o Changement de styles sur les icones de la beamLine |
---|
| 125 | o Ajout de style qui servirons plus tard |
---|
| 126 | - elementCell, elementDrift, elementBend, elementBeam, elementSnapshot, elementSoleno, |
---|
| 127 | elementRfGun, elementFit, elementSnapshot : |
---|
| 128 | o Ajout de registerAcceptableSoftware() et suppression de is_accepted_by_software() |
---|
| 129 | déplacé dans abstractElement |
---|
| 130 | - abstractElement : ajout de |
---|
| 131 | o setSoftware(nomDeLogiciel prog) |
---|
| 132 | o getAbstractSoftware() |
---|
| 133 | o registerAcceptableSoftware(nomDeLogiciel abs) |
---|
| 134 | - dataManager.cc : |
---|
| 135 | o Suppression de checkExecute() et checkElementsForExec(). Dans la méthode |
---|
| 136 | GWt_softwarePanel::areDataCoherent(), elles sont remplacées par l'appel à |
---|
| 137 | pspa_->getBeamLine()->getAbstractElement(i)->setSoftware(prog.getString() qui renvoie |
---|
| 138 | false si on ne peux pas ajouter ce software avec cet élément. |
---|
| 139 | - GWt_softwarePanel.cc : Suppression de l'appel à checkExecute() (voir ci dessus) |
---|
| 140 | - GWt_ligneFaisceau : |
---|
| 141 | o Ajout de update() |
---|
| 142 | o manageLineFaisceauLayout(), ajout d'un if (sur NULL pointer possible) |
---|
| 143 | - GWt_elementLigneFaisceau: |
---|
| 144 | o Ajout d'une variable privée : elementContainer_ |
---|
| 145 | o Suppression de la seconde ligne du tableau contenu dans cet élément |
---|
| 146 | o setElementLabel : Mise à jour du tooltip |
---|
| 147 | o mise a jour de la couleur de fond des sections |
---|
| 148 | - GWt_abstractElement |
---|
| 149 | o Protection dans : updateLabelAndToolTipWidget() |
---|
| 150 | - softwareParmela : ajout d'une protection sur NULL pointer dans createInputFile() |
---|
| 151 | - trivaluedBool.h : Changement des noms (confusions possibles) en TBoolError, TBoolIgnore, TBoolOk |
---|
[361] | 152 | |
---|
[352] | 153 | 1er Mars : Laurent Garnier |
---|
| 154 | - Fix le bug sur le serveur : Mauvaise variable utilisée. Introduit le 26 février |
---|
[359] | 155 | - Ajout d'un nouvel icone qui servira plus tard : advanced.png |
---|
[352] | 156 | |
---|
[348] | 157 | 27 février 2013 Laurent Garnier |
---|
| 158 | - beam2moments. Bug fix sur une boucle infinie, introduite par laurent le 26 février |
---|
| 159 | |
---|
[347] | 160 | 26 février 2013 Laurent Garnier |
---|
| 161 | - pspa.css : Ajout de bordures rondes sur les elements et qq autres trucs |
---|
| 162 | - beam2moments : Correction d'un warning qui se pourait être un bug |
---|
| 163 | - dataManager : saveConfiguration(string folder, string nameOfCase). |
---|
| 164 | Ajout d'un dossiers pour le stockage des fichiers de config |
---|
| 165 | - abstractSoftware : Ajout d'une méthode pour retourner la couleur du fond du software. |
---|
| 166 | - GWt_elementLigneFaisceau : Coup de rafraihissement visuel |
---|
| 167 | - GWt_serverFileSelector : Management des fichiers des sessions utilisateur |
---|
| 168 | - PspaApplication : Remise a jour avec l'ajout du dossier en parametre de saveConfiguration() |
---|
| 169 | |
---|
[341] | 170 | 22 février 2013 Guy Le Meur |
---|
| 171 | - complété le tracé des espaces de phases pour le généraliser aux couples (y,yp), (x,y) etc. |
---|
| 172 | _ corrigé un bug concernant la sauvegarde de la configuration : l'attribut nameOfCase_ de la classe PspaApplication contient le 'nom du cas de calcul' sans extension ni chemin. Donc, pour le cas test, nameOfCase_ vaut 'pspa'. |
---|
| 173 | |
---|
[336] | 174 | 20 Février 2013 Laurent Garnier |
---|
| 175 | - requierements : Remise mise en place d'une seule librarie, encore du travail |
---|
| 176 | à faire avant de séparer tout en M-V-C |
---|
| 177 | - Ajout de la classe GWt_serverFileSelector pour permettre la lecture de fichiers |
---|
| 178 | de config sur le serveur |
---|
| 179 | |
---|
[329] | 180 | 19 Février 2013 Laurent Garnier |
---|
| 181 | - Creation de 2 librairies dans le requirement au lieu d'une seule |
---|
| 182 | |
---|
[328] | 183 | 18 Février 2013 Francois Touze |
---|
| 184 | - réorganisation du menu graphique (radio bouton pour choisir un type de dessin, push bouton pour la visu) |
---|
| 185 | - paramètres et legendes pour la partie histogramme |
---|
| 186 | - ajout du bouton "cancel" à chaque element |
---|
[28] | 187 | |
---|
[323] | 188 | 18 Février 2013 Laurent Garnier |
---|
| 189 | - Correction du bug #15 |
---|
| 190 | - Correction du bug #37 |
---|
[329] | 191 | - Suppression de $(PSPAWTROOT) pour trouver les packages dans "Interfaces", désormais il faut mettre à jour son $CMTPATH pour qu'il pointe sur "Interfaces" |
---|
[323] | 192 | |
---|
[319] | 193 | 12 Février 2013 Laurent Garnier |
---|
| 194 | - Correction du fond qui ne passait pas sur le serveur |
---|
[320] | 195 | - GWt_abstractElement : Début de stockage de façon plus générique des parametres (ne change rien pour le moment) |
---|
[319] | 196 | |
---|
[309] | 197 | 5 Février 2013 Laurent Garnier |
---|
| 198 | - Change cursor style on drag elements |
---|
[310] | 199 | - Correction d'un bug introduit dans la derniere revision #28 |
---|
| 200 | - Quelques renommages |
---|
[311] | 201 | - GWt_abstractElement.cc : Bug du cas test qui ne marchais plus corrigé |
---|
[309] | 202 | |
---|
[306] | 203 | 4 Février 2013 Laurent Garnier |
---|
| 204 | - Suppression de la classe "elementsCollection" |
---|
[308] | 205 | - dataManager : Suppresion de commentaires |
---|
| 206 | - GWt_elementLigneFaisceau.cc |
---|
| 207 | - GWt_bend, GWt_drift, GWt_beam |
---|
| 208 | GWt_soleno, GWt_fit, GWt_rfgun |
---|
| 209 | GWt_cell : Ajout d'une methode initializeElement() et passage de print() dans la classe mère |
---|
| 210 | - GWt_abstractElement : |
---|
| 211 | o renommage de updateLabelWidget() en updateLabelAndToolTipWidget() |
---|
| 212 | o Ajoute de FileInput() |
---|
| 213 | - GWt_LigneFaisceau : addElement retourne désormais un GWt_abstractElement et non un abstractElement, ce qui permet de manipuler presque partout le même type d'éléments (GWt_abstractElement) |
---|
| 214 | |
---|
[305] | 215 | 1er Février 2013 Laurent Garnier |
---|
| 216 | - Suppression de la classe "elementsCollection", celle-ci stockait le contenu de |
---|
| 217 | la beamLine, qui était déja stokée de façon graphique, toutes les méthodes ont étées |
---|
| 218 | reportées sur le dataManager |
---|
| 219 | |
---|
| 220 | - abstractSoftware, softwareTransport, softwareParmela : |
---|
| 221 | o remplacement de "elementsCollection" par "dataManager" |
---|
| 222 | |
---|
| 223 | - dataManager : Ajout des méthodes provenant de "elementsCollection" |
---|
| 224 | - GWt_elementLigneFaisceau : |
---|
| 225 | o suppression de l'image "fleche" et quelques renommages |
---|
| 226 | - GWt_bend, GWt_drift, GWt_beam |
---|
| 227 | GWt_soleno, GWt_fit, GWt_rfgun |
---|
| 228 | GWt_cell : quelques simplifications internes |
---|
| 229 | - GWt_LigneFaisceau : |
---|
| 230 | o Ajout des méthodes provenant de "elementsCollection" |
---|
| 231 | o mise à jour des labels à chaque ajout d'élément |
---|
| 232 | - PspaApplication : qq changements pour la lecture/sauvegarde des éléments (bug fixed #20) |
---|
| 233 | - GWt_abstractElement : quelques renommages |
---|
| 234 | - GWt_softwarePanel : remplacement de "elementsCollection" par "dataManager" |
---|
| 235 | |
---|
| 236 | 31 Janvier 2013 Laurent Garnier |
---|
[302] | 237 | - dataManager : Suppression des références au workingDir et passage de |
---|
| 238 | cette variable dans la classe elle même |
---|
| 239 | - GWt_LigneFaisceau : Mise à jour des sections à la fin de l'ajout d'un élément |
---|
| 240 | - GWt_pspaApplication : Extraction de l'executeWidget de cette classe |
---|
| 241 | - GWt_softwarePanel : Création de cette classe pour gérer l'ancien "executeWidget" |
---|
| 242 | |
---|
[305] | 243 | 30 Janvier 2013 Laurent Garnier |
---|
[299] | 244 | - dataManager : Ajout de la méthode removeElement() |
---|
| 245 | - GWt_elementLigneFaisceau : Amélioration de la gestion interne à cette classe |
---|
| 246 | - GWt_dialog : Changement du format du message de std::string en WString |
---|
| 247 | - GWt_LigneFaisceau,GWt_abstractElement : |
---|
| 248 | Possibilité de suppression d'un élement par double-click sur celui-ci |
---|
[301] | 249 | - GWt_elementLigneFaisceau : |
---|
| 250 | o Ajout d'une méthode pour récupérer l'abstract element |
---|
| 251 | o Suppresion de méthode inutile |
---|
| 252 | - Correction du bug #11 |
---|
[299] | 253 | |
---|
| 254 | 29 janvier 2013 Guy Le Meur |
---|
| 255 | |
---|
| 256 | - création d'un classe abstractSoftware pour interfacer l'ajout de logiciels. |
---|
| 257 | classes héritées softwareParmela, softwareTransport |
---|
| 258 | |
---|
[305] | 259 | 29 Janvier 2013 Laurent Garnier |
---|
[292] | 260 | - Ajout de la classe GWt_abstractElementFactory |
---|
| 261 | - GWt_bend, GWt_drift, GWt_beam |
---|
| 262 | GWt_soleno, GWt_fit, GWt_rfgun |
---|
| 263 | GWt_cell, GWt_pspaApplication, |
---|
[297] | 264 | GWt_dropZoneLigneFaisceau : Déplacement des mimeTypes et imagesUrl directement |
---|
| 265 | dans les élements |
---|
| 266 | - Bug #18 à la modification d'un label : Corrigé |
---|
[294] | 267 | - prepare to "erase element on double click" |
---|
[291] | 268 | |
---|
[297] | 269 | - GWt_abstractElement : Déplacement de methode createDragImage() |
---|
[292] | 270 | |
---|
[297] | 271 | - GWt_elementLigneFaisceau : passage d'une référence vers "pspaApplication" |
---|
[292] | 272 | |
---|
| 273 | - GWt_pspaApplication : ajout d'une abstractElementFactory |
---|
| 274 | |
---|
[305] | 275 | 28 Janvier 2013 Laurent Garnier |
---|
[287] | 276 | - GWt_ligneFaisceau: |
---|
| 277 | o Suppression de code inutile |
---|
[297] | 278 | o insertion des éléments dans la liste des objets de la ligne |
---|
[287] | 279 | |
---|
| 280 | - GWt_bend, GWt_drift, GWt_beam |
---|
| 281 | GWt_soleno, GWt_fit, GWt_rfgun |
---|
[297] | 282 | GWt_cell : ajout d'une méthode print() |
---|
[287] | 283 | |
---|
[297] | 284 | - GWt_elementLigneFaisceau.cc : Ajout d'un tooltipsurles éléments et suppression |
---|
| 285 | de méthodes inutiles |
---|
[287] | 286 | |
---|
[297] | 287 | - mixedTools.h : ajout de la méthode boolToString() |
---|
[287] | 288 | |
---|
| 289 | - elementRfgun, elementFit, elementSoleno |
---|
| 290 | elementBeam, elementDrift, elementBend |
---|
[288] | 291 | elementCell : |
---|
[297] | 292 | o ajout d'une méthode print() |
---|
[288] | 293 | o Remise en ordre du label sans les 999 |
---|
[287] | 294 | |
---|
[305] | 295 | 25 Janvier 2013 Laurent Garnier |
---|
[285] | 296 | - Insertion dans la drop box ok + images ok |
---|
[286] | 297 | - Restaurer la config refonctionne |
---|
| 298 | - Avec un ascenseur qui marche mieux |
---|
| 299 | |
---|
[305] | 300 | 24 Janvier 2013 Laurent Garnier |
---|
[272] | 301 | - Ameliorations sur la drop zone |
---|
| 302 | - re-identation du code dans la partie graphique |
---|
[273] | 303 | - Insertion dans la drop box ok |
---|
[272] | 304 | |
---|
[305] | 305 | 23 Janvier 2013 Laurent Garnier |
---|
[297] | 306 | - quelques renommages et améliorations sur la drop zone |
---|
[267] | 307 | |
---|
[305] | 308 | 22 Janvier 2013 Laurent Garnier |
---|
[297] | 309 | - Fix probleme de compilation introduit par la derniÚre revision (260) |
---|
[266] | 310 | - refactoring (suite) |
---|
[261] | 311 | |
---|
[305] | 312 | 21 Janvier 2013 Laurent Garnier |
---|
[248] | 313 | - Grosse modifications pour une meilleur gestion des drag & drop (a terminer) |
---|
| 314 | - Deplacement des styles dans la feuille css |
---|
| 315 | - modification du appRoo() par un docRoot() |
---|
[254] | 316 | - renommage de GWt_LigneFaisceau en GWt_ligneFaisceau |
---|
[256] | 317 | - ajout d'une srollbar |
---|
[258] | 318 | - refactoring |
---|
[248] | 319 | |
---|
[305] | 320 | 19 Janvier 2013 Laurent Garnier |
---|
[246] | 321 | - Ajout d'icones pour la toolbar et d'un fond sur le programme |
---|
| 322 | |
---|
[305] | 323 | 18 Janvier 2013 Laurent Garnier |
---|
[297] | 324 | - Mise à jour de la partie web (drop zone). Aucune modification majeures, |
---|
| 325 | uniquement des méthodes modifiées en vue de faire mieux. Quelques problÚmes |
---|
| 326 | au niveau graphiques à prévoir avec cette modification qui vont être corrigées. |
---|
| 327 | - Correction de la console qui est désormais une classe à part et initilisée une |
---|
| 328 | seule fois à chaque nouvelle session |
---|
[241] | 329 | - Renommage de GWt_tools en GWt_console |
---|
[28] | 330 | |
---|
[223] | 331 | 21 December 2012 Laurent Garnier |
---|
[297] | 332 | - Pas mal de modification coté physique par Guy et François |
---|
| 333 | - Par rapport à la derniÚre revision : |
---|
[223] | 334 | o GWt_LigneFaiseau : Ajout d'une imag de fond plutot que orange. |
---|
| 335 | o Ajout d'une nouvelle classe GWt_draggableImage (tout est dit) |
---|
[297] | 336 | o Suppression des bordures pointillées dans les éléments |
---|
[223] | 337 | |
---|
[35] | 338 | 17 Octobre 2012 Laurent Garnier |
---|
| 339 | - Affichage d'un Dialog lors du clic sur le bouton Drift |
---|
| 340 | |
---|
[28] | 341 | 15 Octobre 2012 Laurent Garnier |
---|
[297] | 342 | - pspa.cc : Ajout de composant (console) et réarragement du GUI |
---|
| 343 | - Déplacement des .h dans le répertoire include |
---|
| 344 | - Ajout du fichier Doxyfile |
---|
| 345 | |
---|
| 346 | |
---|