diff --git a/.drone.yml b/.drone.yml index 8a1f3075..e69de29b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,61 +0,0 @@ -kind: pipeline -type: docker -name: HeartWave - -trigger: - event: - - push - -steps: - - # Test ✔️ - - name: test - image: composer:2.6 - commands: - - cd Sources - # Installe les dépendances PHP si nécessaire - - composer install --no-interaction - - ./vendor/bin/phpunit tests - - # Sonar static code analisis deployment - # TODO : use an image that already have unzip - - name: code-analysis - image: php:8.1-cli - environment: - SONAR_TOKEN: - from_secret: SONAR_TOKEN - commands: - - apt-get update && apt-get install -y curl unzip - - export SONAR_SCANNER_VERSION=4.7.0.2747 - - export SONAR_SCANNER_HOME=$HOME/.sonar/sonar-scanner-$SONAR_SCANNER_VERSION-linux - - curl --create-dirs -sSLo $HOME/.sonar/sonar-scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$SONAR_SCANNER_VERSION-linux.zip - - unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/ - - export PATH=$SONAR_SCANNER_HOME/bin:$PATH - - export SONAR_SCANNER_OPTS="-server" - - cd Sources - - sonar-scanner -D sonar.projectKey=HeartTrack -D sonar.host.url=https://codefirst.iut.uca.fr/sonar - depends_on: [ test ] - - # build image and push on the registry ✔️ - - name: docker-build-and-push - image: plugins/docker - settings: - dockerfile: Sources/config/Dockerfile - context: Sources - registry: hub.codefirst.iut.uca.fr - repo: hub.codefirst.iut.uca.fr/david.d_almeida/web - username: - from_secret: SECRET_REGISTRY_USERNAME - password: - from_secret: SECRET_REGISTRY_PASSWORD - - - name: notify - image: ruby:2.1 - when: - status: [ success ] - ref: - include: - - refs/tags/*-demo - commands: - - sh ./notifymail.sh - depends_on: [ docker-build-and-push ] diff --git a/.gitignore b/.gitignore index b67a9030..749e45fe 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,12 @@ dist *.swo .env +loginDatabase.php +# Cache file on macOS .DS_Store + +.phpunit.cache + # Cache files for Sublime Text *.tmlanguage.cache *.tmPreferences.cache diff --git a/Documents/Brainstorming/bainstorming.docx b/Documents/Brainstorming/bainstorming.docx new file mode 100644 index 00000000..1215360c Binary files /dev/null and b/Documents/Brainstorming/bainstorming.docx differ diff --git a/Documents/Brainstorming/Brainstorming 1.docx b/Documents/Brainstorming/brainstorming.docx similarity index 100% rename from Documents/Brainstorming/Brainstorming 1.docx rename to Documents/Brainstorming/brainstorming.docx diff --git a/Documents/Brainstorming/Brainstorming 1.pdf b/Documents/Brainstorming/brainstorming.pdf similarity index 100% rename from Documents/Brainstorming/Brainstorming 1.pdf rename to Documents/Brainstorming/brainstorming.pdf diff --git a/Documents/Couts Prévisionnels/Coût du projet.docx b/Documents/CoutsPrevisionnels/CoutProjet.docx similarity index 100% rename from Documents/Couts Prévisionnels/Coût du projet.docx rename to Documents/CoutsPrevisionnels/CoutProjet.docx diff --git a/Documents/Diagram/Analyse/Besoins/DiagrammeCasUtilisationFitWeb.drawio b/Documents/Diagram/Analyse/Besoins/DiagrammeCasUtilisationFitWeb.drawio deleted file mode 100755 index 8704a129..00000000 --- a/Documents/Diagram/Analyse/Besoins/DiagrammeCasUtilisationFitWeb.drawio +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Documents/Diagram/Analyse/Class/Social.txt b/Documents/Diagram/Analyse/Class/Social.txt deleted file mode 100644 index 282f1c45..00000000 --- a/Documents/Diagram/Analyse/Class/Social.txt +++ /dev/null @@ -1,55 +0,0 @@ -@startuml -class User { - + name : string -} - -User "1" --> "*" User: friends -User "1" --> "*" Notification: notifications -User "1" --> "*" Ask: friendRequests -class Notification { - - text : string -} - -interface INotifier { - + notify() : void -} - -INotifier --|> Observer - -abstract class UserManager { - - currentUser : User - + deleteFriend(userId : int) : void - + addFriend(userId : int) : void - + respondToFriendRequest(requestId : int, choice : bool) : void - + getFriends(userId : int) : User[] -} - -class Ask { - - fromUser : int - - toUser : int -} - -Ask --|> Subject - -abstract class Subject { - + attach(o : Observer) : void - + detach(o : Observer) : void - + notify() : void -} - -Subject "1" --> "*" Observer -interface Observer { - + update() : void -} - -UserManager ..> User -UserManager o-- IUserRepository -UserManager o-- INotifier - -interface IUserRepository { - + findByUsername(username : string) : User - + addUser(user : User) : bool -} - -IUserRepository ..> User -@enduml diff --git a/Documents/Diagram/Analyse/Sequence/RepondreAmis.txt b/Documents/Diagram/Analyse/Sequence/RepondreAmis.txt deleted file mode 100644 index 1c88290e..00000000 --- a/Documents/Diagram/Analyse/Sequence/RepondreAmis.txt +++ /dev/null @@ -1,20 +0,0 @@ -@startuml -actor User as u -boundary View as v -control Controller as c -entity Model as m - -m-->c: pendingRequests: Request[] - -c-->v: DisplayPendingRequests(pendingRequests) -v-->u: Show Friend Requests - -u->v: RespondToRequest(requestId, response) -v-->c: RecordResponse(requestId, response) - - c->m: UpdateRequestStatus(requestId, response) - m-->c: updateStatus: success/failure - c-->v: NotifyUpdateResult(updateStatus) - v-->u: Show Response Result - -@enduml diff --git a/Documents/Diagram/Analyse/Sequence/SupprimerAmis.txt b/Documents/Diagram/Analyse/Sequence/SupprimerAmis.txt deleted file mode 100644 index 568ff971..00000000 --- a/Documents/Diagram/Analyse/Sequence/SupprimerAmis.txt +++ /dev/null @@ -1,28 +0,0 @@ -@startuml -actor User as u -boundary View as v -control Controller as c -entity Model as m - -u->v: Request Friends Page -v->c: Get /Friends -c->m: getFriends(userId) -alt successful retrieval - m-->c: friendsList: User[] -else retrieval failed - m-->c: error -end -c-->v: renderView(friendsList) -v-->u: Display Friends - -u->v: clickDeleteFriend(idUser) -v->c: Post: deleteFriend(idUser) -c->m: deleteFriend(idUser) -alt successful deletion - m-->c: updatedFriendsList: User[] -else deletion failed - m-->c: error -end -c-->v: renderView(updatedFriendsList) -v-->u: Display Updated Friends -@enduml diff --git a/Documents/Diagram/Analyse/Besoins/MLD.plantuml b/Documents/Diagramme/BDD/MLD.plantuml similarity index 100% rename from Documents/Diagram/Analyse/Besoins/MLD.plantuml rename to Documents/Diagramme/BDD/MLD.plantuml diff --git a/Documents/Diagramme/BDD/README_BDD.md b/Documents/Diagramme/BDD/README_BDD.md new file mode 100644 index 00000000..f30c5f44 --- /dev/null +++ b/Documents/Diagramme/BDD/README_BDD.md @@ -0,0 +1,121 @@ +[retour au README.md](../../../README.md) +[Retour aux Documents](../../README_DOCUMENTS.md) +[Retour au diagramme de classes](../README_DIAGRAMMES.md) + +# BDD + +```plantuml +@startuml +skinparam classAttributeIconSize 0 +package MLD{ +entity "Athlète" as athlete { + {static} idAthlete + nom + prénom + email + sexe + taille + poids + motDePasse + dateNaissance +} + +entity "Amitié" as friendship{ +{static}# idAthlete1 +{static}# idAthlete2 +début +} + +entity "Notification" as notif { + {static} idNotif + message + date + statut + urgence + #athleteId +} + +entity "Coach" as coach { + {static} idCoach + // attributs spécifiques au coach + #athleteId +} + +entity "Statistique" as stats { + {static} idStatistique + poids + fcMoyenne + fcMax + caloriesBrûléesMoy + date + #athleteId +} + +entity "Entraînement" as training { + {static} idEntrainement + date + description + // Exercices + latitude + longitude + feedback + #coachId +} + +entity "Participe" as takepart { + {static} #athleteId + {static} #entrainementId +} + + +entity "SourceDonnée" as source { + {static} idSource + type + modèle + précision + #athleteId +} + +entity "Activité" as activity { + {static} idActivité + type + date + heureDeDébut + heureDeFin + effortRessent + variabilité + variance + ecartType + moyenne + maximum + minimum + temperatureMoyenne + #athleteId + #sourceId +} +entity "FréquenceCardiaque" as fc { + {static} idFc + altitude + temps : time + température + bpm + longitude + latitude + #activitéId +} + +} +activity --> athlete +activity --> source +activity <-- fc +coach --> athlete +athlete <-- source +stats --> athlete +takepart --> athlete +takepart --> training +friendship --> athlete +notif --> athlete +coach <-- training +athlete <-- friendship +@enduml +``` \ No newline at end of file diff --git a/Documents/Diagramme/CasUtilisations/README_coachSuiviSportif.md b/Documents/Diagramme/CasUtilisations/README_coachSuiviSportif.md new file mode 100644 index 00000000..9d4dd41e --- /dev/null +++ b/Documents/Diagramme/CasUtilisations/README_coachSuiviSportif.md @@ -0,0 +1,56 @@ +[retour au README.md](../../../README.md) +[Retour aux Documents](../../README_DOCUMENTS.md) +[Retour au diagramme de classes](../README_DIAGRAMMES.md) + +# Introduction au Cas d'utilisation : Suivi d'une Équipe Sportive + +Bienvenue dans le monde dynamique du suivi d'équipe sportive, où notre application offre une plateforme complète pour les entraîneurs soucieux d'optimiser les performances de leurs athlètes. Ce diagramme de cas d'utilisation vous plonge dans les fonctionnalités clés qui facilitent la gestion d'une équipe sportive avec efficacité. + +**Acteurs Principaux :** + +- **Coach :** Le protagoniste central, utilisant l'application pour gérer et superviser son équipe. + +**Fonctionnalités Clés :** + +- **Ajouter un Athlète :** Permet au coach d'ajouter de nouveaux membres à son équipe, avec des étapes incluant la validation par l'athlète et l'authentification. + +- **Supprimer un Athlète :** Offre la possibilité de retirer des athlètes de l'équipe, avec une authentification préalable pour garantir la légitimité de l'action. + +- **Afficher ses Athlètes :** Permet au coach de visualiser la liste complète de ses athlètes, nécessitant une authentification pour accéder à ces informations sensibles. + +- **Afficher les Activités de Tous les Athlètes :** Donne au coach un aperçu global des activités de toute l'équipe, nécessitant une authentification pour garantir la confidentialité des données. + +**Flux d'Interaction :** + +- Le processus d'ajout d'un athlète inclut des étapes telles que la validation par l'athlète et l'authentification, garantissant une intégration fluide. + +- Les actions de suppression, affichage des athlètes et affichage des activités nécessitent une authentification préalable pour assurer la sécurité des données. + +- Des extensions telles que la visualisation des activités d'un athlète et l'analyse des performances offrent des fonctionnalités avancées pour un suivi détaillé. + +Explorez ce diagramme pour comprendre l'étendue des fonctionnalités que notre application offre aux entraîneurs, les aidant à gérer leurs équipes de manière efficace et à maximiser le potentiel de chaque athlète. + +```plantuml +left to right direction +:Coach: as a + +a --> (Ajouter un athlète) +a --> (Supprimer un athlète) +a --> (Afficher ses athlètes ) +a --> (Afficher les activités de tous les athlètes) +(Ajouter un athlète).>(Validation par l'athlète) : <> +(Ajouter un athlète)..>(S'authentifier) : <> +(Supprimer un athlète)..>(S'authentifier) : <> +(Afficher ses athlètes )..>(S'authentifier) : <> +(Afficher les activités de tous les athlètes)..>(S'authentifier) : <> +(S'authentifier)..>(S'inscrire) : <> +(S'inscrire).>(Inscription Coach) : <> +(S'authentifier)..>(Se connecter) : <> +(Afficher ses athlètes )..>(Voir les activités d'un athlète) : <> +(Afficher ses athlètes )..>(Voir les stats d'un athlète) : <> +(Afficher les activités de tous les athlètes)..>(Sélectionner une activité) : <> +(Sélectionner une activité)..>(Voir l'analyse) : <> +(Sélectionner une activité)..>(Exporter l'analyse) : <> +(Voir les activités d'un athlète)..>(Voir l'analyse) : <> +(Voir les activités d'un athlète)..>(Exporter l'analyse) : <> +``` \ No newline at end of file diff --git a/Documents/Diagramme/CasUtilisations/README_gestionActivites.md b/Documents/Diagramme/CasUtilisations/README_gestionActivites.md new file mode 100644 index 00000000..753f2d45 --- /dev/null +++ b/Documents/Diagramme/CasUtilisations/README_gestionActivites.md @@ -0,0 +1,58 @@ +[retour au README.md](../../../README.md) +[Retour aux Documents](../../README_DOCUMENTS.md) +[Retour au diagramme de classes](../README_DIAGRAMMES.md) + +# Introduction au Cas d'utilisation : Gestion d'Activités pour un Athlète + +Bienvenue dans l'univers dédié à la gestion d'activités sportives personnalisées pour les athlètes ! Ce diagramme de cas d'utilisation explore les différentes fonctionnalités offertes aux utilisateurs, mettant en avant la flexibilité et la richesse d'interactions pour une expérience utilisateur optimale. + +**Acteurs Principaux :** + +- **Athlète :** Le protagoniste central, utilisant l'application pour importer, gérer et analyser ses activités sportives. + +**Fonctionnalités Clés :** + +- **Importer des Données :** Permet à l'athlète d'importer des données d'activités depuis différentes sources, avec la possibilité de spécifier la source pour une intégration transparente. + +- **Exporter Mes Données :** Offre la possibilité d'exporter l'ensemble des activités, avec des extensions pour exporter une activité spécifique, le tout soumis à une authentification préalable. + +- **Ajouter une Activité :** Permet à l'athlète d'ajouter de nouvelles activités, avec des étapes inclusives telles que la saisie du titre, du type d'activité, de la source, du matériel utilisé et de la visibilité, chacune accessible via l'authentification. + +- **Voir une Activité :** Permet à l'athlète de visualiser en détail une activité particulière, avec la possibilité d'exporter une analyse et de gérer la visibilité, soumis à une authentification. + +- **Supprimer une Activité :** Offre la possibilité de retirer une activité, requérant une authentification pour garantir la sécurité des données. + +**Flux d'Interaction :** + +- Les actions telles que l'importation, l'exportation, l'ajout et la visualisation d'activités impliquent une authentification préalable pour garantir la confidentialité des données personnelles. + +- Des inclusions précises, telles que la saisie du titre, du type d'activité, de la source, du matériel utilisé et de la visibilité, sont incorporées dans le processus d'ajout d'une activité, offrant une expérience utilisateur détaillée et conviviale. + +Explorez ce diagramme pour comprendre la manière dont notre application place la gestion d'activités entre les mains des athlètes, les encourageant à suivre, analyser et optimiser leurs performances sportives de manière personnalisée et efficace. + + +```plantuml +left to right direction +:Athlete: as a + +a --> (Importer des données) +(Importer des données) .> (Saisir la source) : <> +a --> (Exporter mes données) +(Exporter mes données) .>(Exporter toutes les activités): <> +(Exporter mes données) ..>(Exporter une activité): <> +a --> (Ajouter une activité) +(Ajouter une activité) ..>(Saisir un titre et une description): <> +(Ajouter une activité) ..>(Saisir le type d'activité): <> +(Ajouter une activité) .>(Saisir la source): <> +(Saisir la source) ..>(Saisir le matériel utilisé): <> +(Ajouter une activité) ..>(Saisir la visibilité): <> +a --> (Voir une activité) +(Voir une activité) ..>(Exporter l'analyse): <> +(Voir une activité) ..>(Saisir la visibilité): <> +a --> (Supprimer une activité) +(Supprimer une activité) ..>(S'authentifier): <> +(Importer des données) ...>(S'authentifier): <> +(Exporter mes données) ...>(S'authentifier): <> +(Ajouter une activité) ...>(S'authentifier): <> +(Voir une activité) ...>(S'authentifier): <> +``` \ No newline at end of file diff --git a/Documents/Diagramme/CasUtilisations/README_gestionCompteAmitie.md b/Documents/Diagramme/CasUtilisations/README_gestionCompteAmitie.md new file mode 100644 index 00000000..c1740ad1 --- /dev/null +++ b/Documents/Diagramme/CasUtilisations/README_gestionCompteAmitie.md @@ -0,0 +1,56 @@ +[retour au README.md](../../../README.md) +[Retour aux Documents](../../README_DOCUMENTS.md) +[Retour au diagramme de classes](../README_DIAGRAMMES.md) + +# Introduction au Cas d'utilisation : Gestion des Relations Sociales pour un Athlète + +Bienvenue dans la sphère sociale de notre application dédiée aux athlètes ! Ce diagramme de cas d'utilisation explore les fonctionnalités sociales clés offertes aux utilisateurs, mettant en lumière la connectivité et l'interaction sociale au sein de notre communauté sportive. + +**Acteurs Principaux :** + +- **Athlète :** Le protagoniste central, utilisant l'application pour gérer ses relations sociales et explorer les profils de ses pairs. + +**Fonctionnalités Clés :** + +- **Ajouter un Ami :** Permet à l'athlète d'ajouter de nouveaux amis, nécessitant la saisie du nom de l'ami et soumis à une authentification préalable. + +- **Supprimer un Ami :** Offre la possibilité de retirer un ami, exigeant une authentification pour garantir la sécurité des données. + +- **Voir Mes Amis :** Permet à l'athlète de visualiser la liste de ses amis, avec la possibilité d'accéder à des fonctionnalités supplémentaires comme la visualisation des profils. + +- **Modifier Mes Informations :** Offre à l'athlète la possibilité de mettre à jour ses informations personnelles et de connexion, avec des extensions pour des détails plus spécifiques. + +**Flux d'Interaction :** + +- Le processus d'ajout d'un ami inclut la saisie du nom de l'ami, tandis que la suppression d'un ami et la visualisation de la liste des amis sont soumises à une authentification préalable pour protéger la confidentialité. + +- Les modifications d'informations englobent deux extensions : la mise à jour des informations personnelles et la mise à jour des informations de connexion, offrant une personnalisation approfondie du profil athlétique. + +- La visualisation du profil d'un ami s'étend à des fonctionnalités telles que la consultation des activités et des statistiques de l'ami, ajoutant une dimension sociale à l'expérience de suivi sportif. + +Explorez ce diagramme pour découvrir comment notre application encourage l'interaction sociale entre les athlètes, favorisant une communauté engagée et collaborative au sein de laquelle les utilisateurs peuvent partager, interagir et se soutenir mutuellement dans leur parcours sportif. + + +```plantuml +left to right direction +:Athlete: as a + +a --> (Ajouter un ami) +a --> (Supprimer un ami) +a --> (Voir mes amis) +a --> (Modifier mes informations) +(Ajouter un ami)->(Saisir le nom de l'ami) +(Supprimer un ami)..>(S'authentifier) : <> +(Ajouter un ami)..>(S'authentifier) : <> +(Voir mes amis)..>(S'authentifier) : <> +(Voir mes amis)..>(Lister les amis) : <> +(Modifier mes informations)..>(Informations personnelles) : <> +(Modifier mes informations)..>(Informations de connexion) : <> +(Modifier mes informations)..>(S'authentifier) : <> +(Lister les amis)..>(Voir son profil) : <> +(Voir son profil)..>(Voir ses activités) : <> +(Voir son profil)..>(Voir ses statistiques) : <> +(S'authentifier)..>(S'inscrire) : <> +(S'authentifier)..>(Se connecter) : <> +(S'inscrire)..>(Inscription Athlète) : <> +``` \ No newline at end of file diff --git a/Documents/Diagramme/DiagrammeDeClasses/DiagrammeClasses.mdj b/Documents/Diagramme/DiagrammeDeClasses/DiagrammeClasses.mdj new file mode 100644 index 00000000..c5438911 --- /dev/null +++ b/Documents/Diagramme/DiagrammeDeClasses/DiagrammeClasses.mdj @@ -0,0 +1,16708 @@ +{ + "_type": "Project", + "_id": "AAAAAAFF+h6SjaM2Hec=", + "name": "Untitled", + "ownedElements": [ + { + "_type": "UMLModel", + "_id": "AAAAAAFF+qBWK6M3Z8Y=", + "_parent": { + "$ref": "AAAAAAFF+h6SjaM2Hec=" + }, + "name": "Model", + "ownedElements": [ + { + "_type": "UMLClassDiagram", + "_id": "AAAAAAFF+qBtyKM79qY=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Main", + "defaultDiagram": true, + "ownedViews": [ + { + "_type": "UMLClassView", + "_id": "AAAAAAGL3Bpk6Nh7nd8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL3Bpk6Nh8Lq8=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6Nh7nd8=" + }, + "model": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL3Bpk6Nh9hPU=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6Nh8Lq8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 7438, + "top": 4026, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3Bpk6Nh+Fwc=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6Nh8Lq8=" + }, + "font": "Arial;13;1", + "left": 3933, + "top": 1975, + "width": 134.05615234375, + "height": 13, + "text": "Utilisateur" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3Bpk6Nh/isA=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6Nh8Lq8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 7438, + "top": 4026, + "width": 83.560546875, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3Bpk6NiAZ5I=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6Nh8Lq8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 7438, + "top": 4026, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3928, + "top": 1968, + "width": 144.05615234375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL3Bpk6Nh9hPU=" + }, + "nameLabel": { + "$ref": "AAAAAAGL3Bpk6Nh+Fwc=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL3Bpk6Nh/isA=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3Bpk6NiAZ5I=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL3Bpk6NiBNB8=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6Nh7nd8=" + }, + "model": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL+9pbIrmYC30=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6NiBNB8=" + }, + "model": { + "$ref": "AAAAAAGL+9pa8rlijfg=" + }, + "font": "Arial;13;0", + "left": 3933, + "top": 1998, + "width": 134.05615234375, + "height": 13, + "text": "-id: int", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL4p5p1eRDPvQ=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6NiBNB8=" + }, + "model": { + "$ref": "AAAAAAGL4p5pjeQNzxA=" + }, + "font": "Arial;13;0", + "left": 3933, + "top": 2013, + "width": 134.05615234375, + "height": 13, + "text": "-username: String", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3Bpk6NiCaQg=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6NiBNB8=" + }, + "model": { + "$ref": "AAAAAAGLpAD5vx0yijE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 7915, + "top": 4408, + "width": 63.2353515625, + "height": 13, + "text": "+id", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3Bpk6NiDSjc=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6NiBNB8=" + }, + "model": { + "$ref": "AAAAAAGLpAHrOB1Dmpw=" + }, + "font": "Arial;13;0", + "left": 3933, + "top": 2028, + "width": 134.05615234375, + "height": 13, + "text": "-nom: String", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3Bpk6NiEgW4=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6NiBNB8=" + }, + "model": { + "$ref": "AAAAAAGLpAHubx1JTgc=" + }, + "font": "Arial;13;0", + "left": 3933, + "top": 2043, + "width": 134.05615234375, + "height": 13, + "text": "-prenom: String", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3Bpk6NiFn9A=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6NiBNB8=" + }, + "model": { + "$ref": "AAAAAAGLpAHxSR1PUSs=" + }, + "font": "Arial;13;0", + "left": 3933, + "top": 2058, + "width": 134.05615234375, + "height": 13, + "text": "-email: String", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3Bpk6NiGtyQ=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6NiBNB8=" + }, + "model": { + "$ref": "AAAAAAGLpAH0SB1VgF8=" + }, + "font": "Arial;13;0", + "left": 3933, + "top": 2073, + "width": 134.05615234375, + "height": 13, + "text": "-sexe: String", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3Bpk6NiHvyA=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6NiBNB8=" + }, + "model": { + "$ref": "AAAAAAGLpAH2wh1b3Gg=" + }, + "font": "Arial;13;0", + "left": 3933, + "top": 2088, + "width": 134.05615234375, + "height": 13, + "text": "-taille: Float", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3Bpk6NiIsq0=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6NiBNB8=" + }, + "model": { + "$ref": "AAAAAAGLpAH5dB1h8j4=" + }, + "font": "Arial;13;0", + "left": 3933, + "top": 2103, + "width": 134.05615234375, + "height": 13, + "text": "-poids: float", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3Bpk6NiJqPU=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6NiBNB8=" + }, + "model": { + "$ref": "AAAAAAGLpAH8Jx1ngTU=" + }, + "font": "Arial;13;0", + "left": 3933, + "top": 2118, + "width": 134.05615234375, + "height": 13, + "text": "-motDePasse: String", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3Bpk6NiKgHM=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6NiBNB8=" + }, + "model": { + "$ref": "AAAAAAGLpAH+3B1t8HQ=" + }, + "font": "Arial;13;0", + "left": 3933, + "top": 2133, + "width": 134.05615234375, + "height": 13, + "text": "-dateNaissance: Date", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3928, + "top": 1993, + "width": 144.05615234375, + "height": 158 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL3Bpk6NiLdbA=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6Nh7nd8=" + }, + "model": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "font": "Arial;13;0", + "left": 3928, + "top": 2151, + "width": 144.05615234375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL3Bpk6NiMKQ0=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6Nh7nd8=" + }, + "model": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3456, + "top": 1616, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL3Bpk6NiNkKc=", + "_parent": { + "$ref": "AAAAAAGL3Bpk6Nh7nd8=" + }, + "model": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3456, + "top": 1616, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3928, + "top": 1968, + "width": 144.05615234375, + "height": 193, + "nameCompartment": { + "$ref": "AAAAAAGL3Bpk6Nh8Lq8=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL3Bpk6NiBNB8=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL3Bpk6NiLdbA=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL3Bpk6NiMKQ0=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL3Bpk6NiNkKc=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL3BqoCyTo5V4=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL3BqoCyTpW4g=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTo5V4=" + }, + "model": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL3BqoCyTqEq4=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTpW4g=" + }, + "font": "Arial;13;0", + "left": 3941, + "top": 2237, + "width": 459.21484375, + "height": 13, + "text": "«abstract»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3BqoCyTr0yo=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTpW4g=" + }, + "font": "Arial;13;1", + "left": 3941, + "top": 2252, + "width": 459.21484375, + "height": 13, + "text": "Role" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3BqoCyTsjzM=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTpW4g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 5049, + "top": 2094, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3BqoCyTt63k=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTpW4g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 5049, + "top": 2094, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3936, + "top": 2232, + "width": 469.21484375, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAGL3BqoCyTqEq4=" + }, + "nameLabel": { + "$ref": "AAAAAAGL3BqoCyTr0yo=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL3BqoCyTsjzM=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3BqoCyTt63k=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL3BqoCyTuNbk=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTo5V4=" + }, + "model": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3EO8K52/YfM=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTuNbk=" + }, + "model": { + "$ref": "AAAAAAGL3EO77J2JFbo=" + }, + "font": "Arial;13;0", + "left": 3941, + "top": 2275, + "width": 459.21484375, + "height": 13, + "text": "#id: int", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3936, + "top": 2270, + "width": 469.21484375, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL3BqoCyTvFJU=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTo5V4=" + }, + "model": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL8lDIXnknspM=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTvFJU=" + }, + "model": { + "$ref": "AAAAAAGL8lDIQHjxa7g=" + }, + "font": "Arial;13;0", + "left": 3941, + "top": 2298, + "width": 459.21484375, + "height": 13, + "text": "+getUsersList(): ?array", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL+91tPmZKyM8=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTvFJU=" + }, + "model": { + "$ref": "AAAAAAGL+91tC2YUaHo=" + }, + "font": "Arial;13;0", + "left": 3941, + "top": 2313, + "width": 459.21484375, + "height": 13, + "text": "+getUserList(user: User): ?User", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL+93wGZ1DB2g=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTvFJU=" + }, + "model": { + "$ref": "AAAAAAGL+93v8Z0NH0E=" + }, + "font": "Arial;13;0", + "left": 3941, + "top": 2328, + "width": 459.21484375, + "height": 13, + "text": "+getEntrainement(): ?EntrainementRepository", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL+90Kslfv1ko=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTvFJU=" + }, + "model": { + "$ref": "AAAAAAGL+90Kble5JDw=" + }, + "font": "Arial;13;0", + "left": 3941, + "top": 2343, + "width": 459.21484375, + "height": 13, + "text": "+getEntrainementsList(): ?array", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL+95cBqY03KQ=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTvFJU=" + }, + "model": { + "$ref": "AAAAAAGL+95b8qX+sig=" + }, + "font": "Arial;13;0", + "left": 3941, + "top": 2358, + "width": 459.21484375, + "height": 13, + "text": "+getEntrainementList(entrainement: Entrainement): ?EntrainementSportif", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL8lQnvRSBOMg=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTvFJU=" + }, + "model": { + "$ref": "AAAAAAGL8lQnmhRLfho=" + }, + "font": "Arial;13;0", + "left": 3941, + "top": 2373, + "width": 459.21484375, + "height": 13, + "text": "+checkAdd(user: User): bool", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL8lRO7h1yezo=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTvFJU=" + }, + "model": { + "$ref": "AAAAAAGL8lROwx08WBA=" + }, + "font": "Arial;13;0", + "left": 3941, + "top": 2388, + "width": 459.21484375, + "height": 13, + "text": "+chackAddEntrainement(entrainement: Entrainement): bool", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL3B61kj4t0Y8=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTvFJU=" + }, + "model": { + "$ref": "AAAAAAGL3B61dD33CBk=" + }, + "font": "Arial;13;0", + "left": 3941, + "top": 2403, + "width": 459.21484375, + "height": 13, + "text": "+addUser(user: User): bool", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL58RPQfS6YrU=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTvFJU=" + }, + "model": { + "$ref": "AAAAAAGL58RPF/SE7Hs=" + }, + "font": "Arial;13;0", + "left": 3941, + "top": 2418, + "width": 459.21484375, + "height": 13, + "text": "+removeUser(user: User): bool", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL8lBBRXGB2H8=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTvFJU=" + }, + "model": { + "$ref": "AAAAAAGL8lBBHXFLScI=" + }, + "font": "Arial;13;0", + "left": 3941, + "top": 2433, + "width": 459.21484375, + "height": 13, + "text": "+addEntrainement(entr: Entrainement): bool", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL++FfCiqny8U=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTvFJU=" + }, + "model": { + "$ref": "AAAAAAGL++Fe3CpxsSg=" + }, + "font": "Arial;13;0", + "left": 3941, + "top": 2448, + "width": 459.21484375, + "height": 13, + "text": "+removeEntrainement(entr: Entrainement): bool", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3936, + "top": 2293, + "width": 469.21484375, + "height": 173 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL3BqoCyTwnlw=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTo5V4=" + }, + "model": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2240, + "top": 536, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL3BqoCyTxlpY=", + "_parent": { + "$ref": "AAAAAAGL3BqoCyTo5V4=" + }, + "model": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2240, + "top": 536, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3936, + "top": 2232, + "width": 469.21484375, + "height": 264, + "nameCompartment": { + "$ref": "AAAAAAGL3BqoCyTpW4g=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL3BqoCyTuNbk=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL3BqoCyTvFJU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL3BqoCyTwnlw=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL3BqoCyTxlpY=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGL3BrkEXIgRp8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL3BrkDnIc/Ag=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3BrkEnIhgag=", + "_parent": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "model": { + "$ref": "AAAAAAGL3BrkDnIc/Ag=" + }, + "font": "Arial;13;0", + "left": 4111, + "top": 2234, + "width": 29.26904296875, + "height": 13, + "alpha": 0.3204269313614675, + "distance": 68.41052550594829, + "hostEdge": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "edgePosition": 1, + "text": "+role" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3BrkEnIiuII=", + "_parent": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "model": { + "$ref": "AAAAAAGL3BrkDnIc/Ag=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4099, + "top": 2174, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3BrkEnIj/vY=", + "_parent": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "model": { + "$ref": "AAAAAAGL3BrkDnIc/Ag=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4061, + "top": 2197, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3BrkEnIk2Ck=", + "_parent": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "model": { + "$ref": "AAAAAAGL3BrkD3IdNgc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4080, + "top": 2169, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3BrkEnIlv/8=", + "_parent": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "model": { + "$ref": "AAAAAAGL3BrkD3IdNgc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4092, + "top": 2165, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3BrkEnImsmA=", + "_parent": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "model": { + "$ref": "AAAAAAGL3BrkD3IdNgc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4054, + "top": 2179, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3BrkEnInNc8=", + "_parent": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "model": { + "$ref": "AAAAAAGL3BrkD3IeED0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4094, + "top": 2195, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3BrkEnIofzw=", + "_parent": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "model": { + "$ref": "AAAAAAGL3BrkD3IeED0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4105, + "top": 2186, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3BrkEnIpNCY=", + "_parent": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "model": { + "$ref": "AAAAAAGL3BrkD3IeED0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4073, + "top": 2212, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL3BrkE3IqKYk=", + "_parent": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "model": { + "$ref": "AAAAAAGL3BrkD3IdNgc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 664, + "top": 560, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL3BrkE3IrgMo=", + "_parent": { + "$ref": "AAAAAAGL3BrkEXIgRp8=" + }, + "model": { + "$ref": "AAAAAAGL3BrkD3IeED0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 664, + "top": 560, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3BqoCyTo5V4=" + }, + "tail": { + "$ref": "AAAAAAGL3Bpk6Nh7nd8=" + }, + "lineStyle": 1, + "points": "4054:2161;4095:2231", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL3BrkEnIhgag=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL3BrkEnIiuII=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3BrkEnIj/vY=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGL3BrkEnIk2Ck=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGL3BrkEnIlv/8=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGL3BrkEnImsmA=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGL3BrkEnInNc8=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGL3BrkEnIofzw=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGL3BrkEnIpNCY=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGL3BrkE3IqKYk=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGL3BrkE3IrgMo=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL3BsTqaEI6W8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL3BsTqaEJsn8=", + "_parent": { + "$ref": "AAAAAAGL3BsTqaEI6W8=" + }, + "model": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL3BsTqaEKhxM=", + "_parent": { + "$ref": "AAAAAAGL3BsTqaEJsn8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 8083, + "top": 4718, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3BsTqaELxcM=", + "_parent": { + "$ref": "AAAAAAGL3BsTqaEJsn8=" + }, + "font": "Arial;13;1", + "left": 4189, + "top": 2551, + "width": 171.62158203125, + "height": 13, + "text": "Athlete" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3BsTqaEMDwE=", + "_parent": { + "$ref": "AAAAAAGL3BsTqaEJsn8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 8083, + "top": 4718, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3BsTqaENG6Q=", + "_parent": { + "$ref": "AAAAAAGL3BsTqaEJsn8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 8083, + "top": 4718, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 4184, + "top": 2544, + "width": 181.62158203125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL3BsTqaEKhxM=" + }, + "nameLabel": { + "$ref": "AAAAAAGL3BsTqaELxcM=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL3BsTqaEMDwE=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3BsTqaENG6Q=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL3BsTqaEO6QI=", + "_parent": { + "$ref": "AAAAAAGL3BsTqaEI6W8=" + }, + "model": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "font": "Arial;13;0", + "left": 4184, + "top": 2569, + "width": 181.62158203125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL3BsTqaEQWyw=", + "_parent": { + "$ref": "AAAAAAGL3BsTqaEI6W8=" + }, + "model": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL3Cav/l7YrXw=", + "_parent": { + "$ref": "AAAAAAGL3BsTqaEQWyw=" + }, + "model": { + "$ref": "AAAAAAGL3Cav216fXX4=" + }, + "font": "Arial;13;0", + "left": 4189, + "top": 2584, + "width": 171.62158203125, + "height": 13, + "text": "+getAthlete(): Athlete", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL3CcA8mU47Ao=", + "_parent": { + "$ref": "AAAAAAGL3BsTqaEQWyw=" + }, + "model": { + "$ref": "AAAAAAGL3CcA1GT//kE=" + }, + "font": "Arial;13;0", + "left": 4189, + "top": 2599, + "width": 171.62158203125, + "height": 13, + "text": "+getActivite(): lesActivite", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL3DDNi5ul+XY=", + "_parent": { + "$ref": "AAAAAAGL3BsTqaEQWyw=" + }, + "model": { + "$ref": "AAAAAAGL3DDNcZtsRlI=" + }, + "font": "Arial;13;0", + "left": 4189, + "top": 2614, + "width": 171.62158203125, + "height": 13, + "text": "+getStatistiques(): lesStats", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL3EaR8i1ibdU=", + "_parent": { + "$ref": "AAAAAAGL3BsTqaEQWyw=" + }, + "model": { + "$ref": "AAAAAAGL3EaRsi0pEF4=" + }, + "font": "Arial;13;0", + "left": 4189, + "top": 2629, + "width": 171.62158203125, + "height": 13, + "text": "+getSourceDonnees(): lesSD", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL3DEwIp45CMc=", + "_parent": { + "$ref": "AAAAAAGL3BsTqaEQWyw=" + }, + "model": { + "$ref": "AAAAAAGL3DEwGp4As4s=" + }, + "font": "Arial;13;0", + "left": 4189, + "top": 2644, + "width": 171.62158203125, + "height": 13, + "text": "+__toString(): String", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 4184, + "top": 2579, + "width": 181.62158203125, + "height": 83 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL3BsTqaERJ/c=", + "_parent": { + "$ref": "AAAAAAGL3BsTqaEI6W8=" + }, + "model": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3672, + "top": 1728, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL3BsTqaESBEk=", + "_parent": { + "$ref": "AAAAAAGL3BsTqaEI6W8=" + }, + "model": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3672, + "top": 1728, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 4184, + "top": 2544, + "width": 181.62158203125, + "height": 193, + "nameCompartment": { + "$ref": "AAAAAAGL3BsTqaEJsn8=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL3BsTqaEO6QI=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL3BsTqaEQWyw=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL3BsTqaERJ/c=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL3BsTqaESBEk=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL3BtJt/VYyF0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL3BtJt/VZIHE=", + "_parent": { + "$ref": "AAAAAAGL3BtJt/VYyF0=" + }, + "model": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL3BtJt/Va6uM=", + "_parent": { + "$ref": "AAAAAAGL3BtJt/VZIHE=" + }, + "font": "Arial;13;0", + "left": 3757, + "top": 2549, + "width": 145.58984375, + "height": 13, + "text": "«abstract»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3BtJt/Vb5Cg=", + "_parent": { + "$ref": "AAAAAAGL3BtJt/VZIHE=" + }, + "font": "Arial;13;1", + "left": 3757, + "top": 2564, + "width": 145.58984375, + "height": 13, + "text": "Coach" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3BtJt/VcVGI=", + "_parent": { + "$ref": "AAAAAAGL3BtJt/VZIHE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 6001, + "top": 5422, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3BtJt/VdTcw=", + "_parent": { + "$ref": "AAAAAAGL3BtJt/VZIHE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 6001, + "top": 5422, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3752, + "top": 2544, + "width": 155.58984375, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAGL3BtJt/Va6uM=" + }, + "nameLabel": { + "$ref": "AAAAAAGL3BtJt/Vb5Cg=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL3BtJt/VcVGI=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3BtJt/VdTcw=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL3BtJt/VeAHE=", + "_parent": { + "$ref": "AAAAAAGL3BtJt/VYyF0=" + }, + "model": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "font": "Arial;13;0", + "left": 3752, + "top": 2582, + "width": 155.58984375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL3BtJt/VgHOE=", + "_parent": { + "$ref": "AAAAAAGL3BtJt/VYyF0=" + }, + "model": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "font": "Arial;13;0", + "left": 3752, + "top": 2592, + "width": 155.58984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL3BtJt/Vh00A=", + "_parent": { + "$ref": "AAAAAAGL3BtJt/VYyF0=" + }, + "model": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2880, + "top": 2080, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL3BtJt/ViK6I=", + "_parent": { + "$ref": "AAAAAAGL3BtJt/VYyF0=" + }, + "model": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2880, + "top": 2080, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3752, + "top": 2544, + "width": 155.58984375, + "height": 65, + "nameCompartment": { + "$ref": "AAAAAAGL3BtJt/VZIHE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL3BtJt/VeAHE=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL3BtJt/VgHOE=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL3BtJt/Vh00A=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL3BtJt/ViK6I=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGL3B0Tspu8D9c=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL3B0TsZu6iEw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3B0Ts5u9bfM=", + "_parent": { + "$ref": "AAAAAAGL3B0Tspu8D9c=" + }, + "model": { + "$ref": "AAAAAAGL3B0TsZu6iEw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3988, + "top": 2560, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3B0Tspu8D9c=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3B0Ts5u+QVY=", + "_parent": { + "$ref": "AAAAAAGL3B0Tspu8D9c=" + }, + "model": { + "$ref": "AAAAAAGL3B0TsZu6iEw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3976, + "top": 2551, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3B0Tspu8D9c=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3B0Ts5u/JUw=", + "_parent": { + "$ref": "AAAAAAGL3B0Tspu8D9c=" + }, + "model": { + "$ref": "AAAAAAGL3B0TsZu6iEw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4011, + "top": 2579, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3B0Tspu8D9c=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3BqoCyTo5V4=" + }, + "tail": { + "$ref": "AAAAAAGL3BsTqaEI6W8=" + }, + "lineStyle": 1, + "points": "4183:2619;4000:2576;4064:2496", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL3B0Ts5u9bfM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL3B0Ts5u+QVY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3B0Ts5u/JUw=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGL3B0hqKVLIeI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL3B0hp6VJcj4=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3B0hqaVMQzU=", + "_parent": { + "$ref": "AAAAAAGL3B0hqKVLIeI=" + }, + "model": { + "$ref": "AAAAAAGL3B0hp6VJcj4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3988, + "top": 2560, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3B0hqKVLIeI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3B0hqaVNgVQ=", + "_parent": { + "$ref": "AAAAAAGL3B0hqKVLIeI=" + }, + "model": { + "$ref": "AAAAAAGL3B0hp6VJcj4=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3976, + "top": 2551, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3B0hqKVLIeI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3B0hqaVO884=", + "_parent": { + "$ref": "AAAAAAGL3B0hqKVLIeI=" + }, + "model": { + "$ref": "AAAAAAGL3B0hp6VJcj4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4011, + "top": 2579, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3B0hqKVLIeI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3BqoCyTo5V4=" + }, + "tail": { + "$ref": "AAAAAAGL3BtJt/VYyF0=" + }, + "lineStyle": 1, + "points": "3908:2576;4000:2576;4064:2496", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL3B0hqaVMQzU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL3B0hqaVNgVQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3B0hqaVO884=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGL3B3/zPI/wtk=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL3B3/yvI7wq4=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3B3/zPJAevY=", + "_parent": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "model": { + "$ref": "AAAAAAGL3B3/yvI7wq4=" + }, + "font": "Arial;13;0", + "left": 3838, + "top": 2031, + "width": 76.24169921875, + "height": 13, + "alpha": -0.6874078923357949, + "distance": 209.60200380721554, + "hostEdge": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "edgePosition": 1, + "text": "#*lesUsers" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3B3/zPJBn8k=", + "_parent": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "model": { + "$ref": "AAAAAAGL3B3/yvI7wq4=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3714, + "top": 2193, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3B3/zPJC3Oo=", + "_parent": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "model": { + "$ref": "AAAAAAGL3B3/yvI7wq4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3759, + "top": 2194, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3B3/zPJDWvc=", + "_parent": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "model": { + "$ref": "AAAAAAGL3B3/yvI8/hQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3908, + "top": 2360, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3B3/zPJEM5A=", + "_parent": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "model": { + "$ref": "AAAAAAGL3B3/yvI8/hQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3905, + "top": 2373, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3B3/zPJFcmY=", + "_parent": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "model": { + "$ref": "AAAAAAGL3B3/yvI8/hQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3913, + "top": 2333, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3B3/zPJGtMk=", + "_parent": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "model": { + "$ref": "AAAAAAGL3B3/yvI9HQU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3901, + "top": 2040, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3B3/zfJH08c=", + "_parent": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "model": { + "$ref": "AAAAAAGL3B3/yvI9HQU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3899, + "top": 2026, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3B3/zfJI3Gs=", + "_parent": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "model": { + "$ref": "AAAAAAGL3B3/yvI9HQU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3904, + "top": 2067, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL3B3/zfJJbDQ=", + "_parent": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "model": { + "$ref": "AAAAAAGL3B3/yvI8/hQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 664, + "top": 560, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL3B3/zfJKKCk=", + "_parent": { + "$ref": "AAAAAAGL3B3/zPI/wtk=" + }, + "model": { + "$ref": "AAAAAAGL3B3/yvI9HQU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 664, + "top": 560, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3Bpk6Nh7nd8=" + }, + "tail": { + "$ref": "AAAAAAGL3BqoCyTo5V4=" + }, + "lineStyle": 1, + "points": "3935:2353;3744:2344;3744:2056;3927:2062", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL3B3/zPJAevY=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL3B3/zPJBn8k=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3B3/zPJC3Oo=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGL3B3/zPJDWvc=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGL3B3/zPJEM5A=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGL3B3/zPJFcmY=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGL3B3/zPJGtMk=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGL3B3/zfJH08c=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGL3B3/zfJI3Gs=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGL3B3/zfJJbDQ=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGL3B3/zfJKKCk=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL3CMxnUgw9Qc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL3CMxnEguLCQ=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL3CMxnUgxJhM=", + "_parent": { + "$ref": "AAAAAAGL3CMxnUgw9Qc=" + }, + "model": { + "$ref": "AAAAAAGL3CMxnEguLCQ=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL3CMxnUgy8AA=", + "_parent": { + "$ref": "AAAAAAGL3CMxnUgxJhM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1328, + "top": 1120, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3CMxnUgztGY=", + "_parent": { + "$ref": "AAAAAAGL3CMxnUgxJhM=" + }, + "font": "Arial;13;1", + "left": 3469, + "top": 2575, + "width": 135.47802734375, + "height": 13, + "text": "CoachAthlete" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3CMxnkg0N2A=", + "_parent": { + "$ref": "AAAAAAGL3CMxnUgxJhM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1328, + "top": 1120, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3CMxnkg1xaw=", + "_parent": { + "$ref": "AAAAAAGL3CMxnUgxJhM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1328, + "top": 1120, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3464, + "top": 2568, + "width": 145.47802734375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL3CMxnUgy8AA=" + }, + "nameLabel": { + "$ref": "AAAAAAGL3CMxnUgztGY=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL3CMxnkg0N2A=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3CMxnkg1xaw=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL3CMxnkg25RI=", + "_parent": { + "$ref": "AAAAAAGL3CMxnUgw9Qc=" + }, + "model": { + "$ref": "AAAAAAGL3CMxnEguLCQ=" + }, + "font": "Arial;13;0", + "left": 3464, + "top": 2593, + "width": 145.47802734375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL3CMxnkg3D5k=", + "_parent": { + "$ref": "AAAAAAGL3CMxnUgw9Qc=" + }, + "model": { + "$ref": "AAAAAAGL3CMxnEguLCQ=" + }, + "font": "Arial;13;0", + "left": 3464, + "top": 2603, + "width": 145.47802734375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL3CMxnkg4o/Y=", + "_parent": { + "$ref": "AAAAAAGL3CMxnUgw9Qc=" + }, + "model": { + "$ref": "AAAAAAGL3CMxnEguLCQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 664, + "top": 560, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL3CMxnkg5gG4=", + "_parent": { + "$ref": "AAAAAAGL3CMxnUgw9Qc=" + }, + "model": { + "$ref": "AAAAAAGL3CMxnEguLCQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 664, + "top": 560, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3464, + "top": 2568, + "width": 145.47802734375, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGL3CMxnUgxJhM=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL3CMxnkg25RI=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL3CMxnkg3D5k=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL3CMxnkg4o/Y=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL3CMxnkg5gG4=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGL3CS00llKDD4=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL3CS00FlI+OY=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3CS001lLo9U=", + "_parent": { + "$ref": "AAAAAAGL3CS00llKDD4=" + }, + "model": { + "$ref": "AAAAAAGL3CS00FlI+OY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3678, + "top": 2565, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3CS00llKDD4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3CS01FlMCgk=", + "_parent": { + "$ref": "AAAAAAGL3CS00llKDD4=" + }, + "model": { + "$ref": "AAAAAAGL3CS00FlI+OY=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3677, + "top": 2550, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3CS00llKDD4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3CS01FlNYLY=", + "_parent": { + "$ref": "AAAAAAGL3CS00llKDD4=" + }, + "model": { + "$ref": "AAAAAAGL3CS00FlI+OY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3681, + "top": 2594, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3CS00llKDD4=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3BtJt/VYyF0=" + }, + "tail": { + "$ref": "AAAAAAGL3CMxnUgw9Qc=" + }, + "lineStyle": 1, + "points": "3609:2591;3751:2581", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL3CS001lLo9U=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL3CS01FlMCgk=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3CS01FlNYLY=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL3DH0VM3eelw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL3DH0VM3fysc=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3eelw=" + }, + "model": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL3DH0VM3gY5o=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3fysc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 7526, + "top": 5046, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3DH0VM3hGX8=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3fysc=" + }, + "font": "Arial;13;1", + "left": 4253, + "top": 2983, + "width": 185.3388671875, + "height": 13, + "text": "Activite" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3DH0VM3iMEw=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3fysc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 7526, + "top": 5046, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3DH0VM3j6No=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3fysc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 7526, + "top": 5046, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 4248, + "top": 2976, + "width": 195.3388671875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL3DH0VM3gY5o=" + }, + "nameLabel": { + "$ref": "AAAAAAGL3DH0VM3hGX8=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL3DH0VM3iMEw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3DH0VM3j6No=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL3DH0VM3kbjc=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3eelw=" + }, + "model": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DH0VM3lc5Y=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3kbjc=" + }, + "model": { + "$ref": "AAAAAAGLpCXSK/WOLkA=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3006, + "width": 185.3388671875, + "height": 13, + "text": "-idActivite: int", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DH0VM3mS/0=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3kbjc=" + }, + "model": { + "$ref": "AAAAAAGLrxCVfeebjRQ=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3021, + "width": 185.3388671875, + "height": 13, + "text": "-type: string", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DH0VM3n7eQ=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3kbjc=" + }, + "model": { + "$ref": "AAAAAAGLrxCvKejL/fw=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3036, + "width": 185.3388671875, + "height": 13, + "text": "-date: Date", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DH0VM3oMXE=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3kbjc=" + }, + "model": { + "$ref": "AAAAAAGLrxDHu+n7GHc=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3051, + "width": 185.3388671875, + "height": 13, + "text": "-heureDebut: time", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DH0VM3pTPo=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3kbjc=" + }, + "model": { + "$ref": "AAAAAAGLrxDu8esr6vo=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3066, + "width": 185.3388671875, + "height": 13, + "text": "-heureFin: time", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DH0VM3q4W0=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3kbjc=" + }, + "model": { + "$ref": "AAAAAAGLrxEIwOxboHI=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3081, + "width": 185.3388671875, + "height": 13, + "text": "-effortRessenti: int", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DH0VM3rtcU=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3kbjc=" + }, + "model": { + "$ref": "AAAAAAGLrxJXpe2Lor0=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3096, + "width": 185.3388671875, + "height": 13, + "text": "-variabilite: float", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DH0VM3s3TU=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3kbjc=" + }, + "model": { + "$ref": "AAAAAAGLrxKISe67v6E=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3111, + "width": 185.3388671875, + "height": 13, + "text": "-variance: float", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DH0VM3tB54=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3kbjc=" + }, + "model": { + "$ref": "AAAAAAGLrxKpzu/rHo4=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3126, + "width": 185.3388671875, + "height": 13, + "text": "-ecartType: float", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DH0VM3uR/M=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3kbjc=" + }, + "model": { + "$ref": "AAAAAAGLrxLaO/Ebr8k=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3141, + "width": 185.3388671875, + "height": 13, + "text": "-moyenne: float", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DH0VM3v9vo=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3kbjc=" + }, + "model": { + "$ref": "AAAAAAGLrxL5PfJLk04=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3156, + "width": 185.3388671875, + "height": 13, + "text": "-maximum: int", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DH0VM3wYUA=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3kbjc=" + }, + "model": { + "$ref": "AAAAAAGLrxM0SfWY9pQ=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3171, + "width": 185.3388671875, + "height": 13, + "text": "-minimum: int", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DH0VM3xJcc=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3kbjc=" + }, + "model": { + "$ref": "AAAAAAGLrxNQCvbIr2U=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3186, + "width": 185.3388671875, + "height": 13, + "text": "-TemperatureMoyenne: float", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGMBkKgGyoAcM4=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3kbjc=" + }, + "model": { + "$ref": "AAAAAAGMBkKf7yn3AyI=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3201, + "width": 185.3388671875, + "height": 13, + "text": "-pause: bool", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 4248, + "top": 3001, + "width": 195.3388671875, + "height": 218 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL3DH0VM3yGA4=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3eelw=" + }, + "model": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL3DQ2l6ufcOo=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3yGA4=" + }, + "model": { + "$ref": "AAAAAAGL3DQ2catj1/Q=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3224, + "width": 185.3388671875, + "height": 13, + "text": "+getActivite(): Activite", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL3DTgR8iexiI=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3yGA4=" + }, + "model": { + "$ref": "AAAAAAGL3DTgKchiipU=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3239, + "width": 185.3388671875, + "height": 13, + "text": "+getAnalyse(a1: Activite): String", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL3DXeXM52u3o=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3yGA4=" + }, + "model": { + "$ref": "AAAAAAGL3DXeGc46SeI=" + }, + "font": "Arial;13;0", + "left": 4253, + "top": 3254, + "width": 185.3388671875, + "height": 13, + "text": "+toString(Activite): String", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 4248, + "top": 3219, + "width": 195.3388671875, + "height": 53 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL3DH0VM3zpCE=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3eelw=" + }, + "model": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3504, + "top": 1728, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL3DH0VM30Qm4=", + "_parent": { + "$ref": "AAAAAAGL3DH0VM3eelw=" + }, + "model": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3504, + "top": 1728, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 4248, + "top": 2976, + "width": 195.3388671875, + "height": 296, + "nameCompartment": { + "$ref": "AAAAAAGL3DH0VM3fysc=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL3DH0VM3kbjc=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL3DH0VM3yGA4=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL3DH0VM3zpCE=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL3DH0VM30Qm4=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL3DJHyBCPzHA=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL3DJHyBCQzFI=", + "_parent": { + "$ref": "AAAAAAGL3DJHyBCPzHA=" + }, + "model": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL3DJHyRCRIbE=", + "_parent": { + "$ref": "AAAAAAGL3DJHyBCQzFI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 7468, + "top": 3944, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3DJHyRCSG8Y=", + "_parent": { + "$ref": "AAAAAAGL3DJHyBCQzFI=" + }, + "font": "Arial;13;1", + "left": 4581, + "top": 2471, + "width": 177.39794921875, + "height": 13, + "text": "Statistique" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3DJHyRCTKdI=", + "_parent": { + "$ref": "AAAAAAGL3DJHyBCQzFI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 7468, + "top": 3944, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3DJHyRCUC6A=", + "_parent": { + "$ref": "AAAAAAGL3DJHyBCQzFI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 7468, + "top": 3944, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 4576, + "top": 2464, + "width": 187.39794921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL3DJHyRCRIbE=" + }, + "nameLabel": { + "$ref": "AAAAAAGL3DJHyRCSG8Y=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL3DJHyRCTKdI=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3DJHyRCUC6A=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL3DJHyRCVwdU=", + "_parent": { + "$ref": "AAAAAAGL3DJHyBCPzHA=" + }, + "model": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DJHyRCWvV0=", + "_parent": { + "$ref": "AAAAAAGL3DJHyRCVwdU=" + }, + "model": { + "$ref": "AAAAAAGLrwixuGGJpE4=" + }, + "font": "Arial;13;0", + "left": 4581, + "top": 2494, + "width": 177.39794921875, + "height": 13, + "text": "-idStatistique: int", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DJHyRCXojk=", + "_parent": { + "$ref": "AAAAAAGL3DJHyRCVwdU=" + }, + "model": { + "$ref": "AAAAAAGLrwlhdmOIz0E=" + }, + "font": "Arial;13;0", + "left": 4581, + "top": 2509, + "width": 177.39794921875, + "height": 13, + "text": "-distanceTotale: float", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DJHyRCYR9w=", + "_parent": { + "$ref": "AAAAAAGL3DJHyRCVwdU=" + }, + "model": { + "$ref": "AAAAAAGLrwmwgWUPuog=" + }, + "font": "Arial;13;0", + "left": 4581, + "top": 2524, + "width": 177.39794921875, + "height": 13, + "text": "-poids: float", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DJHyRCZ9DA=", + "_parent": { + "$ref": "AAAAAAGL3DJHyRCVwdU=" + }, + "model": { + "$ref": "AAAAAAGLrwnYLWYeNa4=" + }, + "font": "Arial;13;0", + "left": 4581, + "top": 2539, + "width": 177.39794921875, + "height": 13, + "text": "-tempsTotal: time", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DJHyRCavHw=", + "_parent": { + "$ref": "AAAAAAGL3DJHyRCVwdU=" + }, + "model": { + "$ref": "AAAAAAGLrwoPTGct0ws=" + }, + "font": "Arial;13;0", + "left": 4581, + "top": 2554, + "width": 177.39794921875, + "height": 13, + "text": "-FCmoyenne: int", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DJHyRCbZAA=", + "_parent": { + "$ref": "AAAAAAGL3DJHyRCVwdU=" + }, + "model": { + "$ref": "AAAAAAGLrwps72g8dI8=" + }, + "font": "Arial;13;0", + "left": 4581, + "top": 2569, + "width": 177.39794921875, + "height": 13, + "text": "-FCmin: int", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DJHyRCc4c8=", + "_parent": { + "$ref": "AAAAAAGL3DJHyRCVwdU=" + }, + "model": { + "$ref": "AAAAAAGLrwqb7mlLpYw=" + }, + "font": "Arial;13;0", + "left": 4581, + "top": 2584, + "width": 177.39794921875, + "height": 13, + "text": "-FCmax: int", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DJHyRCd7DA=", + "_parent": { + "$ref": "AAAAAAGL3DJHyRCVwdU=" + }, + "model": { + "$ref": "AAAAAAGLrwq/JGpaMCs=" + }, + "font": "Arial;13;0", + "left": 4581, + "top": 2599, + "width": 177.39794921875, + "height": 13, + "text": "-caloriesBrulées: int", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 4576, + "top": 2489, + "width": 187.39794921875, + "height": 128 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL3DJHyRCealo=", + "_parent": { + "$ref": "AAAAAAGL3DJHyBCPzHA=" + }, + "model": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL3EVASgrSjt4=", + "_parent": { + "$ref": "AAAAAAGL3DJHyRCealo=" + }, + "model": { + "$ref": "AAAAAAGL3EVAEQqWm2c=" + }, + "font": "Arial;13;0", + "left": 4581, + "top": 2622, + "width": 177.39794921875, + "height": 13, + "text": "+getStatistique(): Statistique", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL3EWyfxByyz4=", + "_parent": { + "$ref": "AAAAAAGL3DJHyRCealo=" + }, + "model": { + "$ref": "AAAAAAGL3EWydxA200E=" + }, + "font": "Arial;13;0", + "left": 4581, + "top": 2637, + "width": 177.39794921875, + "height": 13, + "text": "+__toString(Statistique): String", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 4576, + "top": 2617, + "width": 187.39794921875, + "height": 38 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL3DJHyRCfEJM=", + "_parent": { + "$ref": "AAAAAAGL3DJHyBCPzHA=" + }, + "model": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3488, + "top": 1456, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL3DJHyRCggVc=", + "_parent": { + "$ref": "AAAAAAGL3DJHyBCPzHA=" + }, + "model": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3488, + "top": 1456, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 4576, + "top": 2464, + "width": 187.39794921875, + "height": 191, + "nameCompartment": { + "$ref": "AAAAAAGL3DJHyBCQzFI=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL3DJHyRCVwdU=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL3DJHyRCealo=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL3DJHyRCfEJM=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL3DJHyRCggVc=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL3DLQlyYtiTQ=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL3DLQlyYubF0=", + "_parent": { + "$ref": "AAAAAAGL3DLQlyYtiTQ=" + }, + "model": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL3DLQlyYvw2U=", + "_parent": { + "$ref": "AAAAAAGL3DLQlyYubF0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 6878, + "top": 3818, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3DLQmCYwFXU=", + "_parent": { + "$ref": "AAAAAAGL3DLQlyYubF0=" + }, + "font": "Arial;13;1", + "left": 3997, + "top": 2807, + "width": 196.193359375, + "height": 13, + "text": "SourceDonnee" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3DLQmCYxQMk=", + "_parent": { + "$ref": "AAAAAAGL3DLQlyYubF0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 6878, + "top": 3818, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3DLQmCYyi5c=", + "_parent": { + "$ref": "AAAAAAGL3DLQlyYubF0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 6878, + "top": 3818, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3992, + "top": 2800, + "width": 206.193359375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL3DLQlyYvw2U=" + }, + "nameLabel": { + "$ref": "AAAAAAGL3DLQmCYwFXU=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL3DLQmCYxQMk=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3DLQmCYyi5c=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL3DLQmCYzLJk=", + "_parent": { + "$ref": "AAAAAAGL3DLQlyYtiTQ=" + }, + "model": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DLQmCY0y+0=", + "_parent": { + "$ref": "AAAAAAGL3DLQmCYzLJk=" + }, + "model": { + "$ref": "AAAAAAGLrxTIICbUAdU=" + }, + "font": "Arial;13;0", + "left": 3997, + "top": 2830, + "width": 196.193359375, + "height": 13, + "text": "-idSource: int", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DLQmCY1DTA=", + "_parent": { + "$ref": "AAAAAAGL3DLQmCYzLJk=" + }, + "model": { + "$ref": "AAAAAAGLrxTswiiLUpA=" + }, + "font": "Arial;13;0", + "left": 3997, + "top": 2845, + "width": 196.193359375, + "height": 13, + "text": "-Type: enum", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DLQmCY2rE8=", + "_parent": { + "$ref": "AAAAAAGL3DLQmCYzLJk=" + }, + "model": { + "$ref": "AAAAAAGLrxVKVSm7bms=" + }, + "font": "Arial;13;0", + "left": 3997, + "top": 2860, + "width": 196.193359375, + "height": 13, + "text": "-modele: string", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DLQmCY31Ao=", + "_parent": { + "$ref": "AAAAAAGL3DLQmCYzLJk=" + }, + "model": { + "$ref": "AAAAAAGLrxV3+SrrCr8=" + }, + "font": "Arial;13;0", + "left": 3997, + "top": 2875, + "width": 196.193359375, + "height": 13, + "text": "-precision: enum", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DLQmCY46yk=", + "_parent": { + "$ref": "AAAAAAGL3DLQmCYzLJk=" + }, + "model": { + "$ref": "AAAAAAGLrxWfnSwbQ58=" + }, + "font": "Arial;13;0", + "left": 3997, + "top": 2890, + "width": 196.193359375, + "height": 13, + "text": "-dateDerniereUtilisation: Date", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3992, + "top": 2825, + "width": 206.193359375, + "height": 83 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL3DLQmCY54P8=", + "_parent": { + "$ref": "AAAAAAGL3DLQlyYtiTQ=" + }, + "model": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL3EcVKzvuuFk=", + "_parent": { + "$ref": "AAAAAAGL3DLQmCY54P8=" + }, + "model": { + "$ref": "AAAAAAGL3EcVFjuykz0=" + }, + "font": "Arial;13;0", + "left": 3997, + "top": 2913, + "width": 196.193359375, + "height": 13, + "text": "+getSD(SourceDonnee): String", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL3Eee900OLuk=", + "_parent": { + "$ref": "AAAAAAGL3DLQmCY54P8=" + }, + "model": { + "$ref": "AAAAAAGL3EeezUzS6YA=" + }, + "font": "Arial;13;0", + "left": 3997, + "top": 2928, + "width": 196.193359375, + "height": 13, + "text": "+to_String(SourceDonnee): String", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3992, + "top": 2908, + "width": 206.193359375, + "height": 38 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL3DLQmCY6OQc=", + "_parent": { + "$ref": "AAAAAAGL3DLQlyYtiTQ=" + }, + "model": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3280, + "top": 1352, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL3DLQmCY7Ngc=", + "_parent": { + "$ref": "AAAAAAGL3DLQlyYtiTQ=" + }, + "model": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3280, + "top": 1352, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3992, + "top": 2800, + "width": 206.193359375, + "height": 146, + "nameCompartment": { + "$ref": "AAAAAAGL3DLQlyYubF0=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL3DLQmCYzLJk=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL3DLQmCY54P8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL3DLQmCY6OQc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL3DLQmCY7Ngc=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL3DMzZkmwpP8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL3DMzZkmx2TA=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkmwpP8=" + }, + "model": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL3DMzZkmyRDk=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkmx2TA=" + }, + "font": "Arial;13;0", + "left": 3357, + "top": 2885, + "width": 165.115234375, + "height": 13, + "text": "«abstract»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3DMzZkmzoys=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkmx2TA=" + }, + "font": "Arial;13;1", + "left": 3357, + "top": 2900, + "width": 165.115234375, + "height": 13, + "text": "Entrainement" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3DMzZkm0anw=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkmx2TA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4809, + "top": 2930, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3DMzZkm1g4k=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkmx2TA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4809, + "top": 2930, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3352, + "top": 2880, + "width": 175.115234375, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAGL3DMzZkmyRDk=" + }, + "nameLabel": { + "$ref": "AAAAAAGL3DMzZkmzoys=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL3DMzZkm0anw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3DMzZkm1g4k=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL3DMzZkm2VYs=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkmwpP8=" + }, + "model": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DMzZkm3yLU=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkm2VYs=" + }, + "model": { + "$ref": "AAAAAAGLrxcxm0yu9ck=" + }, + "font": "Arial;13;0", + "left": 3357, + "top": 2923, + "width": 165.115234375, + "height": 13, + "text": "+idEntrainement: int", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DMzZkm45Gk=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkm2VYs=" + }, + "model": { + "$ref": "AAAAAAGLrxdjg05lkd0=" + }, + "font": "Arial;13;0", + "left": 3357, + "top": 2938, + "width": 165.115234375, + "height": 13, + "text": "+date: Date", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL7QbRQNBhx7c=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkm2VYs=" + }, + "model": { + "$ref": "AAAAAAGL7QbRBNAl41g=" + }, + "font": "Arial;13;0", + "left": 3357, + "top": 2953, + "width": 165.115234375, + "height": 13, + "text": "+latitude: float", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DMzZkm59RQ=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkm2VYs=" + }, + "model": { + "$ref": "AAAAAAGLrxeDFU+VhpI=" + }, + "font": "Arial;13;0", + "left": 3357, + "top": 2968, + "width": 165.115234375, + "height": 13, + "text": "+longitude: float", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DMzZkm6JIs=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkm2VYs=" + }, + "model": { + "$ref": "AAAAAAGLrxezwlDFkh4=" + }, + "font": "Arial;13;0", + "left": 3357, + "top": 2983, + "width": 165.115234375, + "height": 13, + "text": "+description: text", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL3DMzZkm7L1c=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkm2VYs=" + }, + "model": { + "$ref": "AAAAAAGLrxfiTFH1ArI=" + }, + "font": "Arial;13;0", + "left": 3357, + "top": 2998, + "width": 165.115234375, + "height": 13, + "text": "+feedback: text", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3352, + "top": 2918, + "width": 175.115234375, + "height": 98 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL3DMzZkm8ngY=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkmwpP8=" + }, + "model": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL3D2GBgECc9M=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkm8ngY=" + }, + "model": { + "$ref": "AAAAAAGL3D2F3gDGuRs=" + }, + "font": "Arial;13;0", + "left": 3357, + "top": 3021, + "width": 165.115234375, + "height": 13, + "text": "+getId(): int", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL++UQVUMgtH4=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkm8ngY=" + }, + "model": { + "$ref": "AAAAAAGL++UQDELkhBM=" + }, + "font": "Arial;13;0", + "left": 3357, + "top": 3036, + "width": 165.115234375, + "height": 13, + "text": "+getDate(): DateTime", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL++U2mUfQLgw=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkm8ngY=" + }, + "model": { + "$ref": "AAAAAAGL++U2j0eU938=" + }, + "font": "Arial;13;0", + "left": 3357, + "top": 3051, + "width": 165.115234375, + "height": 13, + "text": "+getLocation(): String", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL++Vh8UyAceA=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkm8ngY=" + }, + "model": { + "$ref": "AAAAAAGL++Vh50xEGPg=" + }, + "font": "Arial;13;0", + "left": 3357, + "top": 3066, + "width": 165.115234375, + "height": 13, + "text": "+getDescription(): Text", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL++WjXFEwtks=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkm8ngY=" + }, + "model": { + "$ref": "AAAAAAGL++WjUVD03ak=" + }, + "font": "Arial;13;0", + "left": 3357, + "top": 3081, + "width": 165.115234375, + "height": 13, + "text": "+getFeedBack(): String", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL++XHPVXggdY=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkm8ngY=" + }, + "model": { + "$ref": "AAAAAAGL++XHM1Wk8GA=" + }, + "font": "Arial;13;0", + "left": 3357, + "top": 3096, + "width": 165.115234375, + "height": 13, + "text": "+__toString(): String", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3352, + "top": 3016, + "width": 175.115234375, + "height": 98 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL3DMzZkm9E/c=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkmwpP8=" + }, + "model": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2472, + "top": 1024, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL3DMzZkm+Ato=", + "_parent": { + "$ref": "AAAAAAGL3DMzZkmwpP8=" + }, + "model": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2472, + "top": 1024, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3352, + "top": 2880, + "width": 175.115234375, + "height": 234, + "nameCompartment": { + "$ref": "AAAAAAGL3DMzZkmx2TA=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL3DMzZkm2VYs=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL3DMzZkm8ngY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL3DMzZkm9E/c=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL3DMzZkm+Ato=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGL3DO5DGG3okQ=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL3DO5CWGzYdk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DO5DWG4Vxk=", + "_parent": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "model": { + "$ref": "AAAAAAGL3DO5CWGzYdk=" + }, + "font": "Arial;13;0", + "left": 4326, + "top": 2927, + "width": 77.669921875, + "height": 13, + "alpha": 0.4974685789155705, + "distance": 97.8008179924892, + "hostEdge": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "edgePosition": 1, + "text": "-*activiteList" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DO5DWG5mQE=", + "_parent": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "model": { + "$ref": "AAAAAAGL3DO5CWGzYdk=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4334, + "top": 2845, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DO5DWG6kmk=", + "_parent": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "model": { + "$ref": "AAAAAAGL3DO5CWGzYdk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4290, + "top": 2852, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DO5DWG7U68=", + "_parent": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "model": { + "$ref": "AAAAAAGL3DO5CWG0ZOw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4306, + "top": 2754, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DO5DWG8UHU=", + "_parent": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "model": { + "$ref": "AAAAAAGL3DO5CWG0ZOw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4320, + "top": 2754, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DO5DWG9eyk=", + "_parent": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "model": { + "$ref": "AAAAAAGL3DO5CWG0ZOw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4278, + "top": 2754, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DO5DWG+1dY=", + "_parent": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "model": { + "$ref": "AAAAAAGL3DO5CmG1yFk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4334, + "top": 2941, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DO5DWG/mG8=", + "_parent": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "model": { + "$ref": "AAAAAAGL3DO5CmG1yFk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4346, + "top": 2936, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DO5DWHAtAE=", + "_parent": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "model": { + "$ref": "AAAAAAGL3DO5CmG1yFk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4307, + "top": 2949, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL3DO5DWHBZf0=", + "_parent": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "model": { + "$ref": "AAAAAAGL3DO5CWG0ZOw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 664, + "top": 560, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL3DO5DWHC8CY=", + "_parent": { + "$ref": "AAAAAAGL3DO5DGG3okQ=" + }, + "model": { + "$ref": "AAAAAAGL3DO5CmG1yFk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 664, + "top": 560, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3DH0VM3eelw=" + }, + "tail": { + "$ref": "AAAAAAGL3BsTqaEI6W8=" + }, + "lineStyle": 1, + "points": "4288:2737;4323:2975", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL3DO5DWG4Vxk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL3DO5DWG5mQE=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3DO5DWG6kmk=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGL3DO5DWG7U68=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGL3DO5DWG8UHU=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGL3DO5DWG9eyk=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGL3DO5DWG+1dY=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGL3DO5DWG/mG8=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGL3DO5DWHAtAE=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGL3DO5DWHBZf0=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGL3DO5DWHC8CY=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGL3DdoAArKtwk=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL3Ddn/grGOiw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DdoAArLq4o=", + "_parent": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "model": { + "$ref": "AAAAAAGL3Ddn/grGOiw=" + }, + "font": "Arial;13;0", + "left": 4162, + "top": 2788, + "width": 47.328125, + "height": 13, + "alpha": 1.0433323237988876, + "distance": 28.653097563788805, + "hostEdge": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "edgePosition": 1, + "text": "-*sdList" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DdoAArM1RQ=", + "_parent": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "model": { + "$ref": "AAAAAAGL3Ddn/grGOiw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4198, + "top": 2780, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DdoAArN2G8=", + "_parent": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "model": { + "$ref": "AAAAAAGL3Ddn/grGOiw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4163, + "top": 2752, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DdoAArOnkE=", + "_parent": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "model": { + "$ref": "AAAAAAGL3Ddn/grHlaI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4194, + "top": 2760, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DdoAArPOz4=", + "_parent": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "model": { + "$ref": "AAAAAAGL3Ddn/grHlaI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4204, + "top": 2770, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DdoAArQnj0=", + "_parent": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "model": { + "$ref": "AAAAAAGL3Ddn/grHlaI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4175, + "top": 2740, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DdoAArRcIQ=", + "_parent": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "model": { + "$ref": "AAAAAAGL3Ddn/grIS6Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4178, + "top": 2781, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DdoAArS3XI=", + "_parent": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "model": { + "$ref": "AAAAAAGL3Ddn/grIS6Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4190, + "top": 2787, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DdoAArT1Uk=", + "_parent": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "model": { + "$ref": "AAAAAAGL3Ddn/grIS6Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4154, + "top": 2768, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL3DdoAArU9sw=", + "_parent": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "model": { + "$ref": "AAAAAAGL3Ddn/grHlaI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 664, + "top": 560, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL3DdoAArVCNA=", + "_parent": { + "$ref": "AAAAAAGL3DdoAArKtwk=" + }, + "model": { + "$ref": "AAAAAAGL3Ddn/grIS6Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 664, + "top": 560, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3DLQlyYtiTQ=" + }, + "tail": { + "$ref": "AAAAAAGL3BsTqaEI6W8=" + }, + "lineStyle": 1, + "points": "4199:2737;4151:2799", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL3DdoAArLq4o=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL3DdoAArM1RQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3DdoAArN2G8=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGL3DdoAArOnkE=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGL3DdoAArPOz4=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGL3DdoAArQnj0=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGL3DdoAArRcIQ=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGL3DdoAArS3XI=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGL3DdoAArT1Uk=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGL3DdoAArU9sw=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGL3DdoAArVCNA=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGL3DewVyCoB1Q=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL3DewVSCksyY=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DewWCCp9IE=", + "_parent": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "model": { + "$ref": "AAAAAAGL3DewVSCksyY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4196, + "top": 2989, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DewWCCqFY4=", + "_parent": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "model": { + "$ref": "AAAAAAGL3DewVSCksyY=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4185, + "top": 3000, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DewWCCrus4=", + "_parent": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "model": { + "$ref": "AAAAAAGL3DewVSCksyY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4217, + "top": 2968, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DewWCCsgRA=", + "_parent": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "model": { + "$ref": "AAAAAAGL3DewViClTrY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4218, + "top": 3011, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DewWCCttCE=", + "_parent": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "model": { + "$ref": "AAAAAAGL3DewViClTrY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4207, + "top": 3019, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DewWCCuzq0=", + "_parent": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "model": { + "$ref": "AAAAAAGL3DewViClTrY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4240, + "top": 2994, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DewWCCv920=", + "_parent": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "model": { + "$ref": "AAAAAAGL3DewViCmmWs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4175, + "top": 2968, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DewWCCwtKA=", + "_parent": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "model": { + "$ref": "AAAAAAGL3DewViCmmWs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4168, + "top": 2980, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DewWCCxEwU=", + "_parent": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "model": { + "$ref": "AAAAAAGL3DewViCmmWs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4192, + "top": 2946, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL3DewWCCy+4I=", + "_parent": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "model": { + "$ref": "AAAAAAGL3DewViClTrY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 664, + "top": 560, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL3DewWCCzXsQ=", + "_parent": { + "$ref": "AAAAAAGL3DewVyCoB1Q=" + }, + "model": { + "$ref": "AAAAAAGL3DewViCmmWs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 664, + "top": 560, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3DLQlyYtiTQ=" + }, + "tail": { + "$ref": "AAAAAAGL3DH0VM3eelw=" + }, + "lineStyle": 1, + "points": "4247:3025;4168:2946", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL3DewWCCp9IE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL3DewWCCqFY4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3DewWCCrus4=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGL3DewWCCsgRA=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGL3DewWCCttCE=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGL3DewWCCuzq0=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGL3DewWCCv920=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGL3DewWCCwtKA=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGL3DewWCCxEwU=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGL3DewWCCy+4I=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGL3DewWCCzXsQ=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGL3DgOnTog8NI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL3DgOmzocF5c=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DgOnjohHis=", + "_parent": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "model": { + "$ref": "AAAAAAGL3DgOmzocF5c=" + }, + "font": "Arial;13;0", + "left": 4509, + "top": 2559, + "width": 60.33447265625, + "height": 13, + "alpha": 0.2589997153205553, + "distance": 76.96752561957543, + "hostEdge": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "edgePosition": 1, + "text": "-*statsList" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DgOnjoiojs=", + "_parent": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "model": { + "$ref": "AAAAAAGL3DgOmzocF5c=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4464, + "top": 2563, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DgOnjojT9Y=", + "_parent": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "model": { + "$ref": "AAAAAAGL3DgOmzocF5c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4472, + "top": 2607, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DgOnjokvV8=", + "_parent": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "model": { + "$ref": "AAAAAAGL3DgOnDodXGk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4388, + "top": 2595, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DgOnjolI+M=", + "_parent": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "model": { + "$ref": "AAAAAAGL3DgOnDodXGk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4388, + "top": 2581, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DgOnjom8EQ=", + "_parent": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "model": { + "$ref": "AAAAAAGL3DgOnDodXGk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4389, + "top": 2622, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DgOnjonKzk=", + "_parent": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "model": { + "$ref": "AAAAAAGL3DgOnDoedKI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4546, + "top": 2562, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DgOnjoobA8=", + "_parent": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "model": { + "$ref": "AAAAAAGL3DgOnDoedKI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4541, + "top": 2549, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3DgOnjopwyY=", + "_parent": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "model": { + "$ref": "AAAAAAGL3DgOnDoedKI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4556, + "top": 2588, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL3DgOnjoqPJw=", + "_parent": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "model": { + "$ref": "AAAAAAGL3DgOnDodXGk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 664, + "top": 560, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL3DgOnjora1c=", + "_parent": { + "$ref": "AAAAAAGL3DgOnTog8NI=" + }, + "model": { + "$ref": "AAAAAAGL3DgOnDoedKI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 664, + "top": 560, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3DJHyBCPzHA=" + }, + "tail": { + "$ref": "AAAAAAGL3BsTqaEI6W8=" + }, + "lineStyle": 1, + "points": "4366:2621;4575:2578", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL3DgOnjohHis=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL3DgOnjoiojs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3DgOnjojT9Y=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGL3DgOnjokvV8=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGL3DgOnjolI+M=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGL3DgOnjom8EQ=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGL3DgOnjonKzk=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGL3DgOnjoobA8=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGL3DgOnjopwyY=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGL3DgOnjoqPJw=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGL3DgOnjora1c=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL3EA5py45w5E=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL3EA5py46RZs=", + "_parent": { + "$ref": "AAAAAAGL3EA5py45w5E=" + }, + "model": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL3EA5py47qQ4=", + "_parent": { + "$ref": "AAAAAAGL3EA5py46RZs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2784, + "top": 48, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3EA5py48ztA=", + "_parent": { + "$ref": "AAAAAAGL3EA5py46RZs=" + }, + "font": "Arial;13;1", + "left": 4221, + "top": 1175, + "width": 93.18994140625, + "height": 13, + "text": "CoachManager" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3EA5qC499bk=", + "_parent": { + "$ref": "AAAAAAGL3EA5py46RZs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2784, + "top": 48, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3EA5qC4+erY=", + "_parent": { + "$ref": "AAAAAAGL3EA5py46RZs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2784, + "top": 48, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 4216, + "top": 1168, + "width": 103.18994140625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL3EA5py47qQ4=" + }, + "nameLabel": { + "$ref": "AAAAAAGL3EA5py48ztA=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL3EA5qC499bk=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3EA5qC4+erY=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL3EA5qC4/sY4=", + "_parent": { + "$ref": "AAAAAAGL3EA5py45w5E=" + }, + "model": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "font": "Arial;13;0", + "left": 4216, + "top": 1193, + "width": 103.18994140625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL3EA5qC5AD5k=", + "_parent": { + "$ref": "AAAAAAGL3EA5py45w5E=" + }, + "model": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "font": "Arial;13;0", + "left": 4216, + "top": 1203, + "width": 103.18994140625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL3EA5qC5B3KQ=", + "_parent": { + "$ref": "AAAAAAGL3EA5py45w5E=" + }, + "model": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1392, + "top": 24, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL3EA5qC5CL3c=", + "_parent": { + "$ref": "AAAAAAGL3EA5py45w5E=" + }, + "model": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1392, + "top": 24, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 4216, + "top": 1168, + "width": 103.18994140625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGL3EA5py46RZs=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL3EA5qC4/sY4=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL3EA5qC5AD5k=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL3EA5qC5B3KQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL3EA5qC5CL3c=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL3EC6NugSKAY=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGLw7nD48sOfVM=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL3EC6NugTD+k=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugSKAY=" + }, + "model": { + "$ref": "AAAAAAGLw7nD48sOfVM=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL3EC6NugUf44=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugTD+k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2881, + "top": -777, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3EC6NugVIHM=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugTD+k=" + }, + "font": "Arial;13;1", + "left": 2878, + "top": 822, + "width": 61.38818359375, + "height": 13, + "text": "index.php" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3EC6NugW6ig=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugTD+k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2881, + "top": -777, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3EC6NugXQtk=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugTD+k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2881, + "top": -777, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2873, + "top": 815, + "width": 71.38818359375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL3EC6NugUf44=" + }, + "nameLabel": { + "$ref": "AAAAAAGL3EC6NugVIHM=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL3EC6NugW6ig=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3EC6NugXQtk=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL3EC6NugYR90=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugSKAY=" + }, + "model": { + "$ref": "AAAAAAGLw7nD48sOfVM=" + }, + "font": "Arial;13;0", + "left": 2873, + "top": 840, + "width": 71.38818359375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL3EC6NugZZ5k=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugSKAY=" + }, + "model": { + "$ref": "AAAAAAGLw7nD48sOfVM=" + }, + "font": "Arial;13;0", + "left": 2873, + "top": 850, + "width": 71.38818359375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL3EC6Nugaz2E=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugSKAY=" + }, + "model": { + "$ref": "AAAAAAGLw7nD48sOfVM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2209, + "top": -49, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL3EC6NugbE8o=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugSKAY=" + }, + "model": { + "$ref": "AAAAAAGLw7nD48sOfVM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2209, + "top": -49, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2873, + "top": 815, + "width": 71.38818359375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGL3EC6NugTD+k=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL3EC6NugYR90=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL3EC6NugZZ5k=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL3EC6Nugaz2E=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL3EC6NugbE8o=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL3EC6NugccSE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGLw7oXg9WQpWI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL3EC6NugdYDM=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugccSE=" + }, + "model": { + "$ref": "AAAAAAGLw7oXg9WQpWI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL3EC6NugedV8=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugdYDM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3553, + "top": -889, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3EC6Nugfy9g=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugdYDM=" + }, + "font": "Arial;13;1", + "left": 3286, + "top": 838, + "width": 78.71728515625, + "height": 13, + "text": "Console.php" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3EC6Nugg3/Q=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugdYDM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3553, + "top": -889, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3EC6NughFjQ=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugdYDM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3553, + "top": -889, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3281, + "top": 831, + "width": 88.71728515625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL3EC6NugedV8=" + }, + "nameLabel": { + "$ref": "AAAAAAGL3EC6Nugfy9g=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL3EC6Nugg3/Q=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3EC6NughFjQ=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL3EC6NugilgA=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugccSE=" + }, + "model": { + "$ref": "AAAAAAGLw7oXg9WQpWI=" + }, + "font": "Arial;13;0", + "left": 3281, + "top": 856, + "width": 88.71728515625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL3EC6NugjjkY=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugccSE=" + }, + "model": { + "$ref": "AAAAAAGLw7oXg9WQpWI=" + }, + "font": "Arial;13;0", + "left": 3281, + "top": 866, + "width": 88.71728515625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL3EC6NugkPS4=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugccSE=" + }, + "model": { + "$ref": "AAAAAAGLw7oXg9WQpWI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2545, + "top": -105, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL3EC6NuglsZk=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugccSE=" + }, + "model": { + "$ref": "AAAAAAGLw7oXg9WQpWI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2545, + "top": -105, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3281, + "top": 831, + "width": 88.71728515625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGL3EC6NugdYDM=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL3EC6NugilgA=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL3EC6NugjjkY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL3EC6NugkPS4=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL3EC6NuglsZk=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGL3EC6Nugm4CE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGLw7pt1PGAP1c=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EC6Nugnevw=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "model": { + "$ref": "AAAAAAGLw7pt1PGAP1c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3112, + "top": 823, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EC6NugoFWs=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "model": { + "$ref": "AAAAAAGLw7pt1PGAP1c=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3113, + "top": 808, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EC6NugpkNw=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "model": { + "$ref": "AAAAAAGLw7pt1PGAP1c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3111, + "top": 852, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EC6NugqVoQ=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "model": { + "$ref": "AAAAAAGLw7pt1PGB1i0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2970, + "top": 818, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EC6Nugr4Fs=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "model": { + "$ref": "AAAAAAGLw7pt1PGB1i0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2973, + "top": 804, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EC6NugscZs=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "model": { + "$ref": "AAAAAAGLw7pt1PGB1i0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2965, + "top": 845, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EC6NugtRDc=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "model": { + "$ref": "AAAAAAGLw7pt1PGCpVw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3254, + "top": 829, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EC6NuguAY0=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "model": { + "$ref": "AAAAAAGLw7pt1PGCpVw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3252, + "top": 815, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EC6Nugv3Bs=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "model": { + "$ref": "AAAAAAGLw7pt1PGCpVw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3257, + "top": 856, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL3EC6NugwZMg=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "model": { + "$ref": "AAAAAAGLw7pt1PGB1i0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2649, + "top": 111, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL3EC6Nugxzvc=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nugm4CE=" + }, + "model": { + "$ref": "AAAAAAGLw7pt1PGCpVw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2649, + "top": 111, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3EC6NugccSE=" + }, + "tail": { + "$ref": "AAAAAAGL3EC6NugSKAY=" + }, + "lineStyle": 1, + "points": "2944:838;3280:851", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL3EC6Nugnevw=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL3EC6NugoFWs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3EC6NugpkNw=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGL3EC6NugqVoQ=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGL3EC6Nugr4Fs=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGL3EC6NugscZs=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGL3EC6NugtRDc=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGL3EC6NuguAY0=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGL3EC6Nugv3Bs=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGL3EC6NugwZMg=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGL3EC6Nugxzvc=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL3EC6NugywOI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGLw7v65PPlleU=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL3EC6Nugz9NQ=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugywOI=" + }, + "model": { + "$ref": "AAAAAAGLw7v65PPlleU=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL3EC6Nug0I+c=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nugz9NQ=" + }, + "font": "Arial;13;0", + "left": 3590, + "top": 844, + "width": 81.63720703125, + "height": 13, + "text": "«abstract»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3EC6Nug1sZU=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nugz9NQ=" + }, + "font": "Arial;13;1", + "left": 3590, + "top": 859, + "width": 81.63720703125, + "height": 13, + "text": "DataManager" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3EC6Nug2Jf8=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nugz9NQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3041, + "top": -585, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3EC6Nug3TP0=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nugz9NQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3041, + "top": -585, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3585, + "top": 839, + "width": 91.63720703125, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAGL3EC6Nug0I+c=" + }, + "nameLabel": { + "$ref": "AAAAAAGL3EC6Nug1sZU=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL3EC6Nug2Jf8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3EC6Nug3TP0=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL3EC6Nug47Vw=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugywOI=" + }, + "model": { + "$ref": "AAAAAAGLw7v65PPlleU=" + }, + "font": "Arial;13;0", + "left": 3585, + "top": 877, + "width": 91.63720703125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL3EC6Nug5yqc=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugywOI=" + }, + "model": { + "$ref": "AAAAAAGLw7v65PPlleU=" + }, + "font": "Arial;13;0", + "left": 3585, + "top": 887, + "width": 91.63720703125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL3EC6Nug6/JU=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugywOI=" + }, + "model": { + "$ref": "AAAAAAGLw7v65PPlleU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2289, + "top": 47, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL3EC6Nug7Jso=", + "_parent": { + "$ref": "AAAAAAGL3EC6NugywOI=" + }, + "model": { + "$ref": "AAAAAAGLw7v65PPlleU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2289, + "top": 47, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3585, + "top": 839, + "width": 91.63720703125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGL3EC6Nugz9NQ=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL3EC6Nug47Vw=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL3EC6Nug5yqc=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL3EC6Nug6/JU=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL3EC6Nug7Jso=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL3EC6Nug8Ro0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL3EC6Nug9ngw=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nug8Ro0=" + }, + "model": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL3EC6Nug+fE0=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nug9ngw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3679, + "top": -695, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3EC6Nug/ut4=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nug9ngw=" + }, + "font": "Arial;13;1", + "left": 3565, + "top": 991, + "width": 41.919921875, + "height": 13, + "text": "Stub" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3EC6NuhA9+g=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nug9ngw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3679, + "top": -695, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL3EC6NuhBHQ0=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nug9ngw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3679, + "top": -695, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3560, + "top": 984, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL3EC6Nug+fE0=" + }, + "nameLabel": { + "$ref": "AAAAAAGL3EC6Nug/ut4=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL3EC6NuhA9+g=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3EC6NuhBHQ0=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL3EC6NuhC6ng=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nug8Ro0=" + }, + "model": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "font": "Arial;13;0", + "left": 3560, + "top": 1009, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL3EC6NuhDUz0=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nug8Ro0=" + }, + "model": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "font": "Arial;13;0", + "left": 3560, + "top": 1019, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL3EC6NuhEj+Y=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nug8Ro0=" + }, + "model": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2608, + "top": -8, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL3EC6NuhFxZI=", + "_parent": { + "$ref": "AAAAAAGL3EC6Nug8Ro0=" + }, + "model": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2608, + "top": -8, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3560, + "top": 984, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGL3EC6Nug9ngw=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL3EC6NuhC6ng=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL3EC6NuhDUz0=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL3EC6NuhEj+Y=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL3EC6NuhFxZI=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGL3EC6NuhGMoE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGLw7xJLQpG+ik=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EC6NuhHoNM=", + "_parent": { + "$ref": "AAAAAAGL3EC6NuhGMoE=" + }, + "model": { + "$ref": "AAAAAAGLw7xJLQpG+ik=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3591, + "top": 929, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3EC6NuhGMoE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EC6NuhI1H0=", + "_parent": { + "$ref": "AAAAAAGL3EC6NuhGMoE=" + }, + "model": { + "$ref": "AAAAAAGLw7xJLQpG+ik=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3577, + "top": 924, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3EC6NuhGMoE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EC6NuhJlKQ=", + "_parent": { + "$ref": "AAAAAAGL3EC6NuhGMoE=" + }, + "model": { + "$ref": "AAAAAAGLw7xJLQpG+ik=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3620, + "top": 938, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3EC6NuhGMoE=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3EC6NugywOI=" + }, + "tail": { + "$ref": "AAAAAAGL3EC6Nug8Ro0=" + }, + "lineStyle": 1, + "points": "3592:983;3620:897", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL3EC6NuhHoNM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL3EC6NuhI1H0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3EC6NuhJlKQ=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAGL3EC6NuhKhx0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGLw8OfyokBM5A=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EC6NuhLBMA=", + "_parent": { + "$ref": "AAAAAAGL3EC6NuhKhx0=" + }, + "model": { + "$ref": "AAAAAAGLw8OfyokBM5A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3477, + "top": 839, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3EC6NuhKhx0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EC6NuhMeaQ=", + "_parent": { + "$ref": "AAAAAAGL3EC6NuhKhx0=" + }, + "model": { + "$ref": "AAAAAAGLw8OfyokBM5A=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3478, + "top": 824, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3EC6NuhKhx0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EC6NuhN5ak=", + "_parent": { + "$ref": "AAAAAAGL3EC6NuhKhx0=" + }, + "model": { + "$ref": "AAAAAAGLw8OfyokBM5A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3476, + "top": 868, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3EC6NuhKhx0=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3EC6NugywOI=" + }, + "tail": { + "$ref": "AAAAAAGL3EC6NugccSE=" + }, + "lineStyle": 1, + "points": "3370:855;3584:865", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL3EC6NuhLBMA=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL3EC6NuhMeaQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3EC6NuhN5ak=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAGL3EhnLQk/wU8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL3EhnKwk9Pw0=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EhnLQlAeLk=", + "_parent": { + "$ref": "AAAAAAGL3EhnLQk/wU8=" + }, + "model": { + "$ref": "AAAAAAGL3EhnKwk9Pw0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3773, + "top": 2707, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3EhnLQk/wU8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EhnLglBTew=", + "_parent": { + "$ref": "AAAAAAGL3EhnLQk/wU8=" + }, + "model": { + "$ref": "AAAAAAGL3EhnKwk9Pw0=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3770, + "top": 2692, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL3EhnLQk/wU8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL3EhnLglC42U=", + "_parent": { + "$ref": "AAAAAAGL3EhnLQk/wU8=" + }, + "model": { + "$ref": "AAAAAAGL3EhnKwk9Pw0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3778, + "top": 2736, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL3EhnLQk/wU8=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3BsTqaEI6W8=" + }, + "tail": { + "$ref": "AAAAAAGL3CMxnUgw9Qc=" + }, + "lineStyle": 1, + "points": "3591:2626;3776:2728;4183:2656", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL3EhnLQlAeLk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL3EhnLglBTew=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL3EhnLglC42U=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL8e8PL0VmSkQ=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL8e8PLkVkOWg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL8e8PMEVnGz8=", + "_parent": { + "$ref": "AAAAAAGL8e8PL0VmSkQ=" + }, + "model": { + "$ref": "AAAAAAGL8e8PLkVkOWg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL8e8PMEVoIWg=", + "_parent": { + "$ref": "AAAAAAGL8e8PMEVnGz8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1408, + "top": 992, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL8e8PMUVpAU4=", + "_parent": { + "$ref": "AAAAAAGL8e8PMEVnGz8=" + }, + "font": "Arial;13;1", + "left": 3965, + "top": 1799, + "width": 96.80810546875, + "height": 13, + "text": "UserRepository" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL8e8PMUVqQ5g=", + "_parent": { + "$ref": "AAAAAAGL8e8PMEVnGz8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1408, + "top": 992, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL8e8PMUVrcd4=", + "_parent": { + "$ref": "AAAAAAGL8e8PMEVnGz8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1408, + "top": 992, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3960, + "top": 1792, + "width": 106.80810546875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL8e8PMEVoIWg=" + }, + "nameLabel": { + "$ref": "AAAAAAGL8e8PMUVpAU4=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL8e8PMUVqQ5g=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL8e8PMUVrcd4=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL8e8PMUVsK2E=", + "_parent": { + "$ref": "AAAAAAGL8e8PL0VmSkQ=" + }, + "model": { + "$ref": "AAAAAAGL8e8PLkVkOWg=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGL+8w3rCz3EQg=", + "_parent": { + "$ref": "AAAAAAGL8e8PMUVsK2E=" + }, + "model": { + "$ref": "AAAAAAGL+8w3liysleM=" + }, + "font": "Arial;13;0", + "left": 3965, + "top": 1822, + "width": 96.80810546875, + "height": 13, + "text": "-users: array", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3960, + "top": 1817, + "width": 106.80810546875, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL8e8PMUVtEH0=", + "_parent": { + "$ref": "AAAAAAGL8e8PL0VmSkQ=" + }, + "model": { + "$ref": "AAAAAAGL8e8PLkVkOWg=" + }, + "font": "Arial;13;0", + "left": 3960, + "top": 1840, + "width": 106.80810546875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL8e8PMUVurv4=", + "_parent": { + "$ref": "AAAAAAGL8e8PL0VmSkQ=" + }, + "model": { + "$ref": "AAAAAAGL8e8PLkVkOWg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 704, + "top": 496, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL8e8PMUVvyqI=", + "_parent": { + "$ref": "AAAAAAGL8e8PL0VmSkQ=" + }, + "model": { + "$ref": "AAAAAAGL8e8PLkVkOWg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 704, + "top": 496, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3960, + "top": 1792, + "width": 106.80810546875, + "height": 71, + "nameCompartment": { + "$ref": "AAAAAAGL8e8PMEVnGz8=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL8e8PMUVsK2E=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL8e8PMUVtEH0=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL8e8PMUVurv4=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL8e8PMUVvyqI=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL8e9J0ldJrjo=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL8e9J01dKxDk=", + "_parent": { + "$ref": "AAAAAAGL8e9J0ldJrjo=" + }, + "model": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL8e9J01dLMhE=", + "_parent": { + "$ref": "AAAAAAGL8e9J01dKxDk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1952, + "top": -704, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL8e9J01dMxu0=", + "_parent": { + "$ref": "AAAAAAGL8e9J01dKxDk=" + }, + "font": "Arial;13;1", + "left": 4061, + "top": 959, + "width": 75.86083984375, + "height": 13, + "text": "AuthService" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL8e9J01dN/AA=", + "_parent": { + "$ref": "AAAAAAGL8e9J01dKxDk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1952, + "top": -704, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL8e9J01dOzTw=", + "_parent": { + "$ref": "AAAAAAGL8e9J01dKxDk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1952, + "top": -704, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 4056, + "top": 952, + "width": 85.86083984375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL8e9J01dLMhE=" + }, + "nameLabel": { + "$ref": "AAAAAAGL8e9J01dMxu0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL8e9J01dN/AA=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL8e9J01dOzTw=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL8e9J01dPxyE=", + "_parent": { + "$ref": "AAAAAAGL8e9J0ldJrjo=" + }, + "model": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + }, + "font": "Arial;13;0", + "left": 4056, + "top": 977, + "width": 85.86083984375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL8e9J01dQhvI=", + "_parent": { + "$ref": "AAAAAAGL8e9J0ldJrjo=" + }, + "model": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + }, + "font": "Arial;13;0", + "left": 4056, + "top": 987, + "width": 85.86083984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL8e9J01dRnSs=", + "_parent": { + "$ref": "AAAAAAGL8e9J0ldJrjo=" + }, + "model": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 976, + "top": -352, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL8e9J01dSt+8=", + "_parent": { + "$ref": "AAAAAAGL8e9J0ldJrjo=" + }, + "model": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 976, + "top": -352, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 4056, + "top": 952, + "width": 85.86083984375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGL8e9J01dKxDk=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL8e9J01dPxyE=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL8e9J01dQhvI=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL8e9J01dRnSs=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL8e9J01dSt+8=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL8fAHTpcfcxQ=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL8fAHTpcgm1k=", + "_parent": { + "$ref": "AAAAAAGL8fAHTpcfcxQ=" + }, + "model": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL8fAHT5chwjE=", + "_parent": { + "$ref": "AAAAAAGL8fAHTpcgm1k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1248, + "top": -416, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL8fAHT5ciXp0=", + "_parent": { + "$ref": "AAAAAAGL8fAHTpcgm1k=" + }, + "font": "Arial;13;1", + "left": 3685, + "top": 1175, + "width": 82.3671875, + "height": 13, + "text": "UserManager" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL8fAHT5cjZF4=", + "_parent": { + "$ref": "AAAAAAGL8fAHTpcgm1k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1248, + "top": -416, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL8fAHT5cki6A=", + "_parent": { + "$ref": "AAAAAAGL8fAHTpcgm1k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1248, + "top": -416, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3680, + "top": 1168, + "width": 92.3671875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL8fAHT5chwjE=" + }, + "nameLabel": { + "$ref": "AAAAAAGL8fAHT5ciXp0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL8fAHT5cjZF4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL8fAHT5cki6A=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL8fAHT5clCB0=", + "_parent": { + "$ref": "AAAAAAGL8fAHTpcfcxQ=" + }, + "model": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + }, + "font": "Arial;13;0", + "left": 3680, + "top": 1193, + "width": 92.3671875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL8fAHT5cmKsU=", + "_parent": { + "$ref": "AAAAAAGL8fAHTpcfcxQ=" + }, + "model": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + }, + "font": "Arial;13;0", + "left": 3680, + "top": 1203, + "width": 92.3671875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL8fAHT5cnzVg=", + "_parent": { + "$ref": "AAAAAAGL8fAHTpcfcxQ=" + }, + "model": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 624, + "top": -208, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL8fAHT5cobGg=", + "_parent": { + "$ref": "AAAAAAGL8fAHTpcfcxQ=" + }, + "model": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 624, + "top": -208, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3680, + "top": 1168, + "width": 92.3671875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGL8fAHTpcgm1k=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL8fAHT5clCB0=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL8fAHT5cmKsU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL8fAHT5cnzVg=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL8fAHT5cobGg=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL8kwWNOvs/ko=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL8kwWNevt7h4=", + "_parent": { + "$ref": "AAAAAAGL8kwWNOvs/ko=" + }, + "model": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL8kwWNevuGgw=", + "_parent": { + "$ref": "AAAAAAGL8kwWNevt7h4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -544, + "top": 432, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL8kwWNevv/0Y=", + "_parent": { + "$ref": "AAAAAAGL8kwWNevt7h4=" + }, + "font": "Arial;13;1", + "left": 3189, + "top": 2743, + "width": 150.97265625, + "height": 13, + "text": "EntrainementRepository" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL8kwWNevwRpI=", + "_parent": { + "$ref": "AAAAAAGL8kwWNevt7h4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -544, + "top": 432, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL8kwWNevx3X0=", + "_parent": { + "$ref": "AAAAAAGL8kwWNevt7h4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -544, + "top": 432, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3184, + "top": 2736, + "width": 160.97265625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL8kwWNevuGgw=" + }, + "nameLabel": { + "$ref": "AAAAAAGL8kwWNevv/0Y=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL8kwWNevwRpI=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL8kwWNevx3X0=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL8kwWNevy7vE=", + "_parent": { + "$ref": "AAAAAAGL8kwWNOvs/ko=" + }, + "model": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "font": "Arial;13;0", + "left": 3184, + "top": 2761, + "width": 160.97265625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL8kwWNevzRQQ=", + "_parent": { + "$ref": "AAAAAAGL8kwWNOvs/ko=" + }, + "model": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "font": "Arial;13;0", + "left": 3184, + "top": 2771, + "width": 160.97265625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL8kwWNev0nPo=", + "_parent": { + "$ref": "AAAAAAGL8kwWNOvs/ko=" + }, + "model": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -272, + "top": 216, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL8kwWNev1L3w=", + "_parent": { + "$ref": "AAAAAAGL8kwWNOvs/ko=" + }, + "model": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -272, + "top": 216, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3184, + "top": 2736, + "width": 160.97265625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGL8kwWNevt7h4=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL8kwWNevy7vE=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL8kwWNevzRQQ=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL8kwWNev0nPo=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL8kwWNev1L3w=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGL8lO7+WPDWLU=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL8lO7+GO/UQE=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lO7+mPEK6o=", + "_parent": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "model": { + "$ref": "AAAAAAGL8lO7+GO/UQE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4021, + "top": 1909, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lO7+mPF070=", + "_parent": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "model": { + "$ref": "AAAAAAGL8lO7+GO/UQE=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4036, + "top": 1910, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lO7+mPGdnA=", + "_parent": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "model": { + "$ref": "AAAAAAGL8lO7+GO/UQE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3992, + "top": 1908, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lO7+mPHYXo=", + "_parent": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "model": { + "$ref": "AAAAAAGL8lO7+GPAblU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4023, + "top": 1883, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lO7+mPIjKE=", + "_parent": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "model": { + "$ref": "AAAAAAGL8lO7+GPAblU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4036, + "top": 1886, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lO7+mPJ378=", + "_parent": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "model": { + "$ref": "AAAAAAGL8lO7+GPAblU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3996, + "top": 1877, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lO7+mPK26w=", + "_parent": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "model": { + "$ref": "AAAAAAGL8lO7+GPBs+g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4020, + "top": 1935, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lO7+mPLcXE=", + "_parent": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "model": { + "$ref": "AAAAAAGL8lO7+GPBs+g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4033, + "top": 1934, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lO7+mPMY/Y=", + "_parent": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "model": { + "$ref": "AAAAAAGL8lO7+GPBs+g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3992, + "top": 1938, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL8lO7+mPN9/A=", + "_parent": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "model": { + "$ref": "AAAAAAGL8lO7+GPAblU=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL8lO7+mPOJ04=", + "_parent": { + "$ref": "AAAAAAGL8lO7+WPDWLU=" + }, + "model": { + "$ref": "AAAAAAGL8lO7+GPBs+g=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3Bpk6Nh7nd8=" + }, + "tail": { + "$ref": "AAAAAAGL8e8PL0VmSkQ=" + }, + "lineStyle": 1, + "points": "4010:1863;4004:1967", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL8lO7+mPEK6o=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL8lO7+mPF070=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL8lO7+mPGdnA=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGL8lO7+mPHYXo=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGL8lO7+mPIjKE=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGL8lO7+mPJ378=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGL8lO7+mPK26w=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGL8lO7+mPLcXE=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGL8lO7+mPMY/Y=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGL8lO7+mPN9/A=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGL8lO7+mPOJ04=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGL8lXBS67DYgg=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL8lXBSa6/2w4=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lXBS67EK3I=", + "_parent": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "model": { + "$ref": "AAAAAAGL8lXBSa6/2w4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3869, + "top": 900, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lXBS67F6AQ=", + "_parent": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "model": { + "$ref": "AAAAAAGL8lXBSa6/2w4=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3872, + "top": 885, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lXBS67Gc4s=", + "_parent": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "model": { + "$ref": "AAAAAAGL8lXBSa6/2w4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3862, + "top": 929, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lXBTK7HYIA=", + "_parent": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "model": { + "$ref": "AAAAAAGL8lXBSa7AoxY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3705, + "top": 863, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lXBTK7Ivfo=", + "_parent": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "model": { + "$ref": "AAAAAAGL8lXBSa7AoxY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3710, + "top": 850, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lXBTK7JxMA=", + "_parent": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "model": { + "$ref": "AAAAAAGL8lXBSa7AoxY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3695, + "top": 888, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lXBTK7KBwQ=", + "_parent": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "model": { + "$ref": "AAAAAAGL8lXBSa7B00o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4032, + "top": 937, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lXBTK7LPto=", + "_parent": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "model": { + "$ref": "AAAAAAGL8lXBSa7B00o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4033, + "top": 924, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL8lXBTK7MGZo=", + "_parent": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "model": { + "$ref": "AAAAAAGL8lXBSa7B00o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4031, + "top": 965, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL8lXBTK7NaZA=", + "_parent": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "model": { + "$ref": "AAAAAAGL8lXBSa7AoxY=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL8lXBTK7OIvI=", + "_parent": { + "$ref": "AAAAAAGL8lXBS67DYgg=" + }, + "model": { + "$ref": "AAAAAAGL8lXBSa7B00o=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL8e9J0ldJrjo=" + }, + "tail": { + "$ref": "AAAAAAGL3EC6NugywOI=" + }, + "lineStyle": 1, + "points": "3677:878;4055:964", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL8lXBS67EK3I=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL8lXBS67F6AQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL8lXBS67Gc4s=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGL8lXBTK7HYIA=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGL8lXBTK7Ivfo=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGL8lXBTK7JxMA=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGL8lXBTK7KBwQ=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGL8lXBTK7LPto=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGL8lXBTK7MGZo=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGL8lXBTK7NaZA=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGL8lXBTK7OIvI=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGL+8rOIEknLJI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL+8rOHkkjQa8=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8rOIUko0e8=", + "_parent": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "model": { + "$ref": "AAAAAAGL+8rOHkkjQa8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4170, + "top": 1085, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8rOIUkpnxA=", + "_parent": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "model": { + "$ref": "AAAAAAGL+8rOHkkjQa8=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4158, + "top": 1094, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8rOIUkqzew=", + "_parent": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "model": { + "$ref": "AAAAAAGL+8rOHkkjQa8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4193, + "top": 1066, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8rOIUkrcbw=", + "_parent": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "model": { + "$ref": "AAAAAAGL+8rOH0kk5Us=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4221, + "top": 1149, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8rOIUks864=", + "_parent": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "model": { + "$ref": "AAAAAAGL+8rOH0kk5Us=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4209, + "top": 1156, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8rOIUktsAY=", + "_parent": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "model": { + "$ref": "AAAAAAGL+8rOH0kk5Us=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4245, + "top": 1136, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8rOIUkuZk8=", + "_parent": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "model": { + "$ref": "AAAAAAGL+8rOH0kl1Ag=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4120, + "top": 1020, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8rOIUkv5a8=", + "_parent": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "model": { + "$ref": "AAAAAAGL+8rOH0kl1Ag=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4111, + "top": 1030, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8rOIUkwAc4=", + "_parent": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "model": { + "$ref": "AAAAAAGL+8rOH0kl1Ag=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4139, + "top": 1000, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL+8rOIUkx/wo=", + "_parent": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "model": { + "$ref": "AAAAAAGL+8rOH0kk5Us=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL+8rOIUkyAUc=", + "_parent": { + "$ref": "AAAAAAGL+8rOIEknLJI=" + }, + "model": { + "$ref": "AAAAAAGL+8rOH0kl1Ag=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL8e9J0ldJrjo=" + }, + "tail": { + "$ref": "AAAAAAGL3EA5py45w5E=" + }, + "lineStyle": 1, + "points": "4249:1167;4116:997", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL+8rOIUko0e8=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL+8rOIUkpnxA=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL+8rOIUkqzew=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGL+8rOIUkrcbw=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGL+8rOIUks864=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGL+8rOIUktsAY=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGL+8rOIUkuZk8=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGL+8rOIUkv5a8=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGL+8rOIUkwAc4=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGL+8rOIUkx/wo=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGL+8rOIUkyAUc=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGL+8tZ+K7c/nM=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL+8tZ967YT0Q=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8tZ+a7digU=", + "_parent": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "model": { + "$ref": "AAAAAAGL+8tZ967YT0Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4369, + "top": 1116, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8tZ+a7eLHc=", + "_parent": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "model": { + "$ref": "AAAAAAGL+8tZ967YT0Q=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4354, + "top": 1119, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8tZ+a7fiuQ=", + "_parent": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "model": { + "$ref": "AAAAAAGL+8tZ967YT0Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4398, + "top": 1111, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8tZ+a7gF+o=", + "_parent": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "model": { + "$ref": "AAAAAAGL+8tZ967ZQD0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3799, + "top": 1176, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8tZ+a7hbVM=", + "_parent": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "model": { + "$ref": "AAAAAAGL+8tZ967ZQD0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3802, + "top": 1163, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8tZ+a7iO2M=", + "_parent": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "model": { + "$ref": "AAAAAAGL+8tZ967ZQD0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3792, + "top": 1203, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8tZ+a7j0rE=", + "_parent": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "model": { + "$ref": "AAAAAAGL+8tZ967azMY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4167, + "top": 985, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8tZ+a7kGIo=", + "_parent": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "model": { + "$ref": "AAAAAAGL+8tZ967azMY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4169, + "top": 999, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+8tZ+a7lIZQ=", + "_parent": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "model": { + "$ref": "AAAAAAGL+8tZ967azMY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4164, + "top": 958, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL+8tZ+a7mZBU=", + "_parent": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "model": { + "$ref": "AAAAAAGL+8tZ967ZQD0=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL+8tZ+a7nWnA=", + "_parent": { + "$ref": "AAAAAAGL+8tZ+K7c/nM=" + }, + "model": { + "$ref": "AAAAAAGL+8tZ967azMY=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL8e9J0ldJrjo=" + }, + "tail": { + "$ref": "AAAAAAGL8fAHTpcfcxQ=" + }, + "lineStyle": 1, + "points": "3772:1195;4408:1256;4360:984;4142:976", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL+8tZ+a7digU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL+8tZ+a7eLHc=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL+8tZ+a7fiuQ=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGL+8tZ+a7gF+o=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGL+8tZ+a7hbVM=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGL+8tZ+a7iO2M=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGL+8tZ+a7j0rE=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGL+8tZ+a7kGIo=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGL+8tZ+a7lIZQ=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGL+8tZ+a7mZBU=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGL+8tZ+a7nWnA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL+82j3FEcyoc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL+82j2lEaUGY=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL+82j3FEdnM8=", + "_parent": { + "$ref": "AAAAAAGL+82j3FEcyoc=" + }, + "model": { + "$ref": "AAAAAAGL+82j2lEaUGY=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL+82j3VEef7E=", + "_parent": { + "$ref": "AAAAAAGL+82j3FEdnM8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -64, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL+82j3VEfYy0=", + "_parent": { + "$ref": "AAAAAAGL+82j3FEdnM8=" + }, + "font": "Arial;13;1", + "left": 3605, + "top": 1295, + "width": 665.8564453125, + "height": 13, + "text": "IGenericRepository" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL+82j3VEgwrw=", + "_parent": { + "$ref": "AAAAAAGL+82j3FEdnM8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -64, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL+82j3VEha1o=", + "_parent": { + "$ref": "AAAAAAGL+82j3FEdnM8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -64, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3600, + "top": 1288, + "width": 675.8564453125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL+82j3VEef7E=" + }, + "nameLabel": { + "$ref": "AAAAAAGL+82j3VEfYy0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL+82j3VEgwrw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL+82j3VEha1o=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL+82j3VEiTxc=", + "_parent": { + "$ref": "AAAAAAGL+82j3FEcyoc=" + }, + "model": { + "$ref": "AAAAAAGL+82j2lEaUGY=" + }, + "font": "Arial;13;0", + "left": 3600, + "top": 1313, + "width": 675.8564453125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL+82j3VEjiyg=", + "_parent": { + "$ref": "AAAAAAGL+82j3FEcyoc=" + }, + "model": { + "$ref": "AAAAAAGL+82j2lEaUGY=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL+84t2m6K78I=", + "_parent": { + "$ref": "AAAAAAGL+82j3VEjiyg=" + }, + "model": { + "$ref": "AAAAAAGL+84tpm4nUBQ=" + }, + "font": "Arial;13;0", + "left": 3605, + "top": 1328, + "width": 665.8564453125, + "height": 13, + "text": "+getItemById(id: int)", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL+86cfHnTO3k=", + "_parent": { + "$ref": "AAAAAAGL+82j3VEjiyg=" + }, + "model": { + "$ref": "AAAAAAGL+86cPHlwc+E=" + }, + "font": "Arial;13;0", + "left": 3605, + "top": 1343, + "width": 665.8564453125, + "height": 13, + "text": "+getNbItems(): int", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL+86fd305Cww=", + "_parent": { + "$ref": "AAAAAAGL+82j3VEjiyg=" + }, + "model": { + "$ref": "AAAAAAGL+86fO3zWI0s=" + }, + "font": "Arial;13;0", + "left": 3605, + "top": 1358, + "width": 665.8564453125, + "height": 13, + "text": "+getItems(index: int, count: int, orderingPropertyName: ?String, descending: bool): array", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL+86ns4CfwV0=", + "_parent": { + "$ref": "AAAAAAGL+82j3VEjiyg=" + }, + "model": { + "$ref": "AAAAAAGL+86ncIA8/pY=" + }, + "font": "Arial;13;0", + "left": 3605, + "top": 1373, + "width": 665.8564453125, + "height": 13, + "text": "+getItemsByName(substring: String, index: int, count: int, orderingPropertyName: ?String, descending: bool): ?array", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL+86qHYQFmS4=", + "_parent": { + "$ref": "AAAAAAGL+82j3VEjiyg=" + }, + "model": { + "$ref": "AAAAAAGL+86p3oOiaNc=" + }, + "font": "Arial;13;0", + "left": 3605, + "top": 1388, + "width": 665.8564453125, + "height": 13, + "text": "+getItemsByName(substring: String, index: int, count: int, orderingPropertyName: ?String, descending: bool)", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL+86sjYdrzkU=", + "_parent": { + "$ref": "AAAAAAGL+82j3VEjiyg=" + }, + "model": { + "$ref": "AAAAAAGL+86sTYcItmQ=" + }, + "font": "Arial;13;0", + "left": 3605, + "top": 1403, + "width": 665.8564453125, + "height": 13, + "text": "+updateItem(oldItem, newItem): void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGL+86uxIrRU/g=", + "_parent": { + "$ref": "AAAAAAGL+82j3VEjiyg=" + }, + "model": { + "$ref": "AAAAAAGL+86ui4puvnk=" + }, + "font": "Arial;13;0", + "left": 3605, + "top": 1418, + "width": 665.8564453125, + "height": 13, + "text": "+deleteItem(item): bool", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 3600, + "top": 1323, + "width": 675.8564453125, + "height": 113 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL+82j3VEkf/0=", + "_parent": { + "$ref": "AAAAAAGL+82j3FEcyoc=" + }, + "model": { + "$ref": "AAAAAAGL+82j2lEaUGY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -32, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL+82j3VEleEk=", + "_parent": { + "$ref": "AAAAAAGL+82j3FEcyoc=" + }, + "model": { + "$ref": "AAAAAAGL+82j2lEaUGY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -32, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3600, + "top": 1288, + "width": 675.8564453125, + "height": 148, + "nameCompartment": { + "$ref": "AAAAAAGL+82j3FEdnM8=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL+82j3VEiTxc=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL+82j3VEjiyg=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL+82j3VEkf/0=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL+82j3VEleEk=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL+9O3Fr8A9kM=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL+9O3E77+iB4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL+9O3F78BOMg=", + "_parent": { + "$ref": "AAAAAAGL+9O3Fr8A9kM=" + }, + "model": { + "$ref": "AAAAAAGL+9O3E77+iB4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL+9O3F78CrIE=", + "_parent": { + "$ref": "AAAAAAGL+9O3F78BOMg=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL+9O3F78DySM=", + "_parent": { + "$ref": "AAAAAAGL+9O3F78BOMg=" + }, + "font": "Arial;13;1", + "left": 3709, + "top": 1519, + "width": 122.07177734375, + "height": 13, + "text": "ITrainingRepository" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL+9O3F78EMdg=", + "_parent": { + "$ref": "AAAAAAGL+9O3F78BOMg=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL+9O3F78FN9A=", + "_parent": { + "$ref": "AAAAAAGL+9O3F78BOMg=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3704, + "top": 1512, + "width": 132.07177734375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL+9O3F78CrIE=" + }, + "nameLabel": { + "$ref": "AAAAAAGL+9O3F78DySM=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL+9O3F78EMdg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL+9O3F78FN9A=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL+9O3F78GjZg=", + "_parent": { + "$ref": "AAAAAAGL+9O3Fr8A9kM=" + }, + "model": { + "$ref": "AAAAAAGL+9O3E77+iB4=" + }, + "font": "Arial;13;0", + "left": 3704, + "top": 1537, + "width": 132.07177734375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL+9O3F78H6KE=", + "_parent": { + "$ref": "AAAAAAGL+9O3Fr8A9kM=" + }, + "model": { + "$ref": "AAAAAAGL+9O3E77+iB4=" + }, + "font": "Arial;13;0", + "left": 3704, + "top": 1547, + "width": 132.07177734375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL+9O3F78IiiI=", + "_parent": { + "$ref": "AAAAAAGL+9O3Fr8A9kM=" + }, + "model": { + "$ref": "AAAAAAGL+9O3E77+iB4=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL+9O3GL8J2/s=", + "_parent": { + "$ref": "AAAAAAGL+9O3Fr8A9kM=" + }, + "model": { + "$ref": "AAAAAAGL+9O3E77+iB4=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3704, + "top": 1512, + "width": 132.07177734375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGL+9O3F78BOMg=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL+9O3F78GjZg=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL+9O3F78H6KE=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL+9O3F78IiiI=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL+9O3GL8J2/s=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL+9PoNNQIuXw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL+9PoMtQG54g=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL+9PoNdQJC5U=", + "_parent": { + "$ref": "AAAAAAGL+9PoNNQIuXw=" + }, + "model": { + "$ref": "AAAAAAGL+9PoMtQG54g=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL+9PoNdQKlXY=", + "_parent": { + "$ref": "AAAAAAGL+9PoNdQJC5U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 848, + "top": 48, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL+9PoNdQLUfI=", + "_parent": { + "$ref": "AAAAAAGL+9PoNdQJC5U=" + }, + "font": "Arial;13;1", + "left": 4085, + "top": 1527, + "width": 100.419921875, + "height": 13, + "text": "IUserRepository" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL+9PoNdQM5Ew=", + "_parent": { + "$ref": "AAAAAAGL+9PoNdQJC5U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 848, + "top": 48, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL+9PoNdQN2fA=", + "_parent": { + "$ref": "AAAAAAGL+9PoNdQJC5U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 848, + "top": 48, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 4080, + "top": 1520, + "width": 110.419921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL+9PoNdQKlXY=" + }, + "nameLabel": { + "$ref": "AAAAAAGL+9PoNdQLUfI=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL+9PoNdQM5Ew=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL+9PoNdQN2fA=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL+9PoNdQOmYg=", + "_parent": { + "$ref": "AAAAAAGL+9PoNNQIuXw=" + }, + "model": { + "$ref": "AAAAAAGL+9PoMtQG54g=" + }, + "font": "Arial;13;0", + "left": 4080, + "top": 1545, + "width": 110.419921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL+9PoNdQPg/M=", + "_parent": { + "$ref": "AAAAAAGL+9PoNNQIuXw=" + }, + "model": { + "$ref": "AAAAAAGL+9PoMtQG54g=" + }, + "font": "Arial;13;0", + "left": 4080, + "top": 1555, + "width": 110.419921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL+9PoNdQQOeE=", + "_parent": { + "$ref": "AAAAAAGL+9PoNNQIuXw=" + }, + "model": { + "$ref": "AAAAAAGL+9PoMtQG54g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 424, + "top": 24, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL+9PoNdQRN8A=", + "_parent": { + "$ref": "AAAAAAGL+9PoNNQIuXw=" + }, + "model": { + "$ref": "AAAAAAGL+9PoMtQG54g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 424, + "top": 24, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 4080, + "top": 1520, + "width": 110.419921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGL+9PoNdQJC5U=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL+9PoNdQOmYg=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL+9PoNdQPg/M=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL+9PoNdQQOeE=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL+9PoNdQRN8A=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGL+9RSGxB+nHc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL+9RSGRB8+vM=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9RSGxB/KpY=", + "_parent": { + "$ref": "AAAAAAGL+9RSGxB+nHc=" + }, + "model": { + "$ref": "AAAAAAGL+9RSGRB8+vM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3816, + "top": 1456, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+9RSGxB+nHc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9RSGxCAPdg=", + "_parent": { + "$ref": "AAAAAAGL+9RSGxB+nHc=" + }, + "model": { + "$ref": "AAAAAAGL+9RSGRB8+vM=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3805, + "top": 1445, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+9RSGxB+nHc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9RSGxCBVsg=", + "_parent": { + "$ref": "AAAAAAGL+9RSGxB+nHc=" + }, + "model": { + "$ref": "AAAAAAGL+9RSGRB8+vM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3837, + "top": 1477, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+9RSGxB+nHc=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL+82j3FEcyoc=" + }, + "tail": { + "$ref": "AAAAAAGL+9O3Fr8A9kM=" + }, + "lineStyle": 1, + "points": "3791:1511;3864:1436", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL+9RSGxB/KpY=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL+9RSGxCAPdg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL+9RSGxCBVsg=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGL+9RdJRsYynw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL+9RdJBsWH7s=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9RdJRsZl4s=", + "_parent": { + "$ref": "AAAAAAGL+9RdJRsYynw=" + }, + "model": { + "$ref": "AAAAAAGL+9RdJBsWH7s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4053, + "top": 1482, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+9RdJRsYynw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9RdJhsaMvs=", + "_parent": { + "$ref": "AAAAAAGL+9RdJRsYynw=" + }, + "model": { + "$ref": "AAAAAAGL+9RdJBsWH7s=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4043, + "top": 1493, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+9RdJRsYynw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9RdJhsbpBU=", + "_parent": { + "$ref": "AAAAAAGL+9RdJRsYynw=" + }, + "model": { + "$ref": "AAAAAAGL+9RdJBsWH7s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4074, + "top": 1459, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+9RdJRsYynw=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL+82j3FEcyoc=" + }, + "tail": { + "$ref": "AAAAAAGL+9PoNNQIuXw=" + }, + "lineStyle": 1, + "points": "4109:1519;4019:1436", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL+9RdJRsZl4s=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL+9RdJhsaMvs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL+9RdJhsbpBU=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGL+9Ru2jbFEaA=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL+9Ru2TbDJ+A=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9Ru2zbGfmg=", + "_parent": { + "$ref": "AAAAAAGL+9Ru2jbFEaA=" + }, + "model": { + "$ref": "AAAAAAGL+9Ru2TbDJ+A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4061, + "top": 1666, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+9Ru2jbFEaA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9Ru2zbHIig=", + "_parent": { + "$ref": "AAAAAAGL+9Ru2jbFEaA=" + }, + "model": { + "$ref": "AAAAAAGL+9Ru2TbDJ+A=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4047, + "top": 1660, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+9Ru2jbFEaA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9Ru2zbIGgw=", + "_parent": { + "$ref": "AAAAAAGL+9Ru2jbFEaA=" + }, + "model": { + "$ref": "AAAAAAGL+9Ru2TbDJ+A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4088, + "top": 1677, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+9Ru2jbFEaA=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL+9PoNNQIuXw=" + }, + "tail": { + "$ref": "AAAAAAGL8e8PL0VmSkQ=" + }, + "lineStyle": 1, + "points": "4027:1791;4124:1565", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL+9Ru2zbGfmg=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL+9Ru2zbHIig=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL+9Ru2zbIGgw=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGL+9Se8smboVw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL+9Se8MmZLdo=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9Se8smclxw=", + "_parent": { + "$ref": "AAAAAAGL+9Se8smboVw=" + }, + "model": { + "$ref": "AAAAAAGL+9Se8MmZLdo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3357, + "top": 1895, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+9Se8smboVw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9Se8smdmXM=", + "_parent": { + "$ref": "AAAAAAGL+9Se8smboVw=" + }, + "model": { + "$ref": "AAAAAAGL+9Se8MmZLdo=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3347, + "top": 1884, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+9Se8smboVw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9Se8smeaGk=", + "_parent": { + "$ref": "AAAAAAGL+9Se8smboVw=" + }, + "model": { + "$ref": "AAAAAAGL+9Se8MmZLdo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3378, + "top": 1916, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+9Se8smboVw=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL+9O3Fr8A9kM=" + }, + "tail": { + "$ref": "AAAAAAGL8kwWNOvs/ko=" + }, + "lineStyle": 1, + "points": "3266:2735;3368:1912;3745:1557", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL+9Se8smclxw=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL+9Se8smdmXM=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL+9Se8smeaGk=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAGL+9V6x0TV/+Y=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL+9V6xkTTcHA=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9V6yETWAtw=", + "_parent": { + "$ref": "AAAAAAGL+9V6x0TV/+Y=" + }, + "model": { + "$ref": "AAAAAAGL+9V6xkTTcHA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3526, + "top": 1588, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+9V6x0TV/+Y=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9V6yETXVbY=", + "_parent": { + "$ref": "AAAAAAGL+9V6x0TV/+Y=" + }, + "model": { + "$ref": "AAAAAAGL+9V6xkTTcHA=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3532, + "top": 1574, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+9V6x0TV/+Y=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9V6yETYeeg=", + "_parent": { + "$ref": "AAAAAAGL+9V6x0TV/+Y=" + }, + "model": { + "$ref": "AAAAAAGL+9V6xkTTcHA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3513, + "top": 1615, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+9V6x0TV/+Y=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL8e8PL0VmSkQ=" + }, + "tail": { + "$ref": "AAAAAAGL3EC6Nug8Ro0=" + }, + "lineStyle": 1, + "points": "3583:1029;3520:1608;3959:1803", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL+9V6yETWAtw=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL+9V6yETXVbY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL+9V6yETYeeg=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGL+9YU3awXKn8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL+9YU26wTNo0=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9YU3qwY2s8=", + "_parent": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "model": { + "$ref": "AAAAAAGL+9YU26wTNo0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4041, + "top": 1141, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9YU3qwZHX0=", + "_parent": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "model": { + "$ref": "AAAAAAGL+9YU26wTNo0=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4055, + "top": 1147, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9YU3qwaaAc=", + "_parent": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "model": { + "$ref": "AAAAAAGL+9YU26wTNo0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4014, + "top": 1130, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9YU3qwbL8I=", + "_parent": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "model": { + "$ref": "AAAAAAGL+9YU26wUZOY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4091, + "top": 1020, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9YU3qwcWnI=", + "_parent": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "model": { + "$ref": "AAAAAAGL+9YU26wUZOY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4103, + "top": 1027, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9YU3qwd9bg=", + "_parent": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "model": { + "$ref": "AAAAAAGL+9YU26wUZOY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4068, + "top": 1006, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9YU3qwe/3E=", + "_parent": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "model": { + "$ref": "AAAAAAGL+9YU26wVXhc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3991, + "top": 1262, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9YU3qwfUbg=", + "_parent": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "model": { + "$ref": "AAAAAAGL+9YU26wVXhc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4004, + "top": 1265, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9YU3qwgFmc=", + "_parent": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "model": { + "$ref": "AAAAAAGL+9YU26wVXhc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3964, + "top": 1256, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL+9YU3qwhe/Y=", + "_parent": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "model": { + "$ref": "AAAAAAGL+9YU26wUZOY=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL+9YU3qwiTuU=", + "_parent": { + "$ref": "AAAAAAGL+9YU3awXKn8=" + }, + "model": { + "$ref": "AAAAAAGL+9YU26wVXhc=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL+82j3FEcyoc=" + }, + "tail": { + "$ref": "AAAAAAGL8e9J0ldJrjo=" + }, + "lineStyle": 1, + "points": "4088:997;3968:1287", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL+9YU3qwY2s8=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL+9YU3qwZHX0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL+9YU3qwaaAc=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGL+9YU3qwbL8I=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGL+9YU3qwcWnI=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGL+9YU3qwd9bg=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGL+9YU3qwe/3E=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGL+9YU3qwfUbg=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGL+9YU3qwgFmc=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGL+9YU3qwhe/Y=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGL+9YU3qwiTuU=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGL+9lB22JQZ5E=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL+9lB2GJMfIE=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lB22JRtlE=", + "_parent": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "model": { + "$ref": "AAAAAAGL+9lB2GJMfIE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3666, + "top": 1082, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lB22JSZXA=", + "_parent": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "model": { + "$ref": "AAAAAAGL+9lB2GJMfIE=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3678, + "top": 1073, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lB22JT9HQ=", + "_parent": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "model": { + "$ref": "AAAAAAGL+9lB2GJMfIE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3643, + "top": 1101, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lB22JUfvg=", + "_parent": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "model": { + "$ref": "AAAAAAGL+9lB2WJNfVI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3630, + "top": 1034, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lB22JV6mA=", + "_parent": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "model": { + "$ref": "AAAAAAGL+9lB2WJNfVI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3642, + "top": 1028, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lB22JWWlA=", + "_parent": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "model": { + "$ref": "AAAAAAGL+9lB2WJNfVI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3606, + "top": 1047, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lB22JX5gk=", + "_parent": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "model": { + "$ref": "AAAAAAGL+9lB2WJO1RQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3704, + "top": 1131, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lB22JYWWM=", + "_parent": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "model": { + "$ref": "AAAAAAGL+9lB2WJO1RQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3713, + "top": 1121, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lB22JZ4j0=", + "_parent": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "model": { + "$ref": "AAAAAAGL+9lB2WJO1RQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3684, + "top": 1151, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL+9lB22JagX4=", + "_parent": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "model": { + "$ref": "AAAAAAGL+9lB2WJNfVI=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL+9lB3GJbP0E=", + "_parent": { + "$ref": "AAAAAAGL+9lB22JQZ5E=" + }, + "model": { + "$ref": "AAAAAAGL+9lB2WJO1RQ=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL8fAHTpcfcxQ=" + }, + "tail": { + "$ref": "AAAAAAGL3EC6Nug8Ro0=" + }, + "lineStyle": 1, + "points": "3603:1029;3708:1167", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL+9lB22JRtlE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL+9lB22JSZXA=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL+9lB22JT9HQ=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGL+9lB22JUfvg=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGL+9lB22JV6mA=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGL+9lB22JWWlA=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGL+9lB22JX5gk=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGL+9lB22JYWWM=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGL+9lB22JZ4j0=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGL+9lB22JagX4=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGL+9lB3GJbP0E=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGL+9lQ0XokzqM=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL+9lQz3og1pg=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lQ0XolXG4=", + "_parent": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "model": { + "$ref": "AAAAAAGL+9lQz3og1pg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3916, + "top": 1073, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lQ0Xomv/A=", + "_parent": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "model": { + "$ref": "AAAAAAGL+9lQz3og1pg=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3920, + "top": 1059, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lQ0XoniIU=", + "_parent": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "model": { + "$ref": "AAAAAAGL+9lQz3og1pg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3909, + "top": 1102, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lQ0XoorW0=", + "_parent": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "model": { + "$ref": "AAAAAAGL+9lQz3ohaCY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3640, + "top": 999, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lQ0Xop+7o=", + "_parent": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "model": { + "$ref": "AAAAAAGL+9lQz3ohaCY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3646, + "top": 987, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lQ0noqobQ=", + "_parent": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "model": { + "$ref": "AAAAAAGL+9lQz3ohaCY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3629, + "top": 1024, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lQ0norYrs=", + "_parent": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "model": { + "$ref": "AAAAAAGL+9lQz3oiCYc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4193, + "top": 1148, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lQ0nosRNA=", + "_parent": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "model": { + "$ref": "AAAAAAGL+9lQz3oiCYc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4195, + "top": 1135, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL+9lQ0notl+k=", + "_parent": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "model": { + "$ref": "AAAAAAGL+9lQz3oiCYc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4190, + "top": 1176, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL+9lQ0nou4Os=", + "_parent": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "model": { + "$ref": "AAAAAAGL+9lQz3ohaCY=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL+9lQ0nov3ao=", + "_parent": { + "$ref": "AAAAAAGL+9lQ0XokzqM=" + }, + "model": { + "$ref": "AAAAAAGL+9lQz3oiCYc=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3EA5py45w5E=" + }, + "tail": { + "$ref": "AAAAAAGL3EC6Nug8Ro0=" + }, + "lineStyle": 1, + "points": "3612:1013;4215:1176", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL+9lQ0XolXG4=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL+9lQ0Xomv/A=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL+9lQ0XoniIU=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGL+9lQ0XoorW0=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGL+9lQ0Xop+7o=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGL+9lQ0noqobQ=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGL+9lQ0norYrs=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGL+9lQ0nosRNA=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGL+9lQ0notl+k=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGL+9lQ0nou4Os=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGL+9lQ0nov3ao=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGL++Z1Ierpd8M=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL++Z1IOrl2bA=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++Z1Iurq+hE=", + "_parent": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "model": { + "$ref": "AAAAAAGL++Z1IOrl2bA=" + }, + "font": "Arial;13;0", + "left": 3351, + "top": 2848, + "width": 121.03076171875, + "height": 13, + "alpha": 0.6921845475682045, + "distance": 98.95453501482385, + "hostEdge": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "edgePosition": 1, + "text": "-entrainementList" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++Z1Iurrux4=", + "_parent": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "model": { + "$ref": "AAAAAAGL++Z1IOrl2bA=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3340, + "top": 2806, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++Z1IursKqY=", + "_parent": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "model": { + "$ref": "AAAAAAGL++Z1IOrl2bA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3303, + "top": 2832, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++Z1IurtNUc=", + "_parent": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "model": { + "$ref": "AAAAAAGL++Z1IOrmj24=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3307, + "top": 2787, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++Z1IuruW3k=", + "_parent": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "model": { + "$ref": "AAAAAAGL++Z1IOrmj24=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3319, + "top": 2781, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++Z1Iurv9ho=", + "_parent": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "model": { + "$ref": "AAAAAAGL++Z1IOrmj24=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3282, + "top": 2799, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++Z1Iurw9sk=", + "_parent": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "model": { + "$ref": "AAAAAAGL++Z1IOrnew4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3348, + "top": 2843, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++Z1Iurx+J8=", + "_parent": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "model": { + "$ref": "AAAAAAGL++Z1IOrnew4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3358, + "top": 2833, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++Z1IuryFxs=", + "_parent": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "model": { + "$ref": "AAAAAAGL++Z1IOrnew4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3329, + "top": 2862, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL++Z1Iurz82s=", + "_parent": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "model": { + "$ref": "AAAAAAGL++Z1IOrmj24=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL++Z1Iur0tvc=", + "_parent": { + "$ref": "AAAAAAGL++Z1Ierpd8M=" + }, + "model": { + "$ref": "AAAAAAGL++Z1IOrnew4=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3DMzZkmwpP8=" + }, + "tail": { + "$ref": "AAAAAAGL8kwWNOvs/ko=" + }, + "lineStyle": 1, + "points": "3280:2781;3352:2879", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL++Z1Iurq+hE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL++Z1Iurrux4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL++Z1IursKqY=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGL++Z1IurtNUc=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGL++Z1IuruW3k=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGL++Z1Iurv9ho=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGL++Z1Iurw9sk=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGL++Z1Iurx+J8=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGL++Z1IuryFxs=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGL++Z1Iurz82s=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGL++Z1Iur0tvc=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGL++aCHApuNNY=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL++aCGgpsPN4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGL++aCHApv9g0=", + "_parent": { + "$ref": "AAAAAAGL++aCHApuNNY=" + }, + "model": { + "$ref": "AAAAAAGL++aCGgpsPN4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGL++aCHApwYGY=", + "_parent": { + "$ref": "AAAAAAGL++aCHApv9g0=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL++aCHApxh8E=", + "_parent": { + "$ref": "AAAAAAGL++aCHApv9g0=" + }, + "font": "Arial;13;1", + "left": 3397, + "top": 3215, + "width": 124.95361328125, + "height": 13, + "text": "EntrainementSportif" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL++aCHApytmc=", + "_parent": { + "$ref": "AAAAAAGL++aCHApv9g0=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGL++aCHApzgMU=", + "_parent": { + "$ref": "AAAAAAGL++aCHApv9g0=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 3392, + "top": 3208, + "width": 134.95361328125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGL++aCHApwYGY=" + }, + "nameLabel": { + "$ref": "AAAAAAGL++aCHApxh8E=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGL++aCHApytmc=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL++aCHApzgMU=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGL++aCHAp0YNk=", + "_parent": { + "$ref": "AAAAAAGL++aCHApuNNY=" + }, + "model": { + "$ref": "AAAAAAGL++aCGgpsPN4=" + }, + "font": "Arial;13;0", + "left": 3392, + "top": 3233, + "width": 134.95361328125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGL++aCHQp1bng=", + "_parent": { + "$ref": "AAAAAAGL++aCHApuNNY=" + }, + "model": { + "$ref": "AAAAAAGL++aCGgpsPN4=" + }, + "font": "Arial;13;0", + "left": 3392, + "top": 3243, + "width": 134.95361328125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGL++aCHQp2hLc=", + "_parent": { + "$ref": "AAAAAAGL++aCHApuNNY=" + }, + "model": { + "$ref": "AAAAAAGL++aCGgpsPN4=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGL++aCHQp3KP0=", + "_parent": { + "$ref": "AAAAAAGL++aCHApuNNY=" + }, + "model": { + "$ref": "AAAAAAGL++aCGgpsPN4=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 3392, + "top": 3208, + "width": 134.95361328125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGL++aCHApv9g0=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGL++aCHAp0YNk=" + }, + "operationCompartment": { + "$ref": "AAAAAAGL++aCHQp1bng=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGL++aCHQp2hLc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGL++aCHQp3KP0=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGL++arOhiEW1s=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL++arORiCGus=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++arOxiFTMI=", + "_parent": { + "$ref": "AAAAAAGL++arOhiEW1s=" + }, + "model": { + "$ref": "AAAAAAGL++arORiCGus=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3437, + "top": 3154, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL++arOhiEW1s=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++arOxiGkAc=", + "_parent": { + "$ref": "AAAAAAGL++arOhiEW1s=" + }, + "model": { + "$ref": "AAAAAAGL++arORiCGus=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3422, + "top": 3155, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL++arOhiEW1s=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++arOxiHKFc=", + "_parent": { + "$ref": "AAAAAAGL++arOhiEW1s=" + }, + "model": { + "$ref": "AAAAAAGL++arORiCGus=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3466, + "top": 3153, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL++arOhiEW1s=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL3DMzZkmwpP8=" + }, + "tail": { + "$ref": "AAAAAAGL++aCHApuNNY=" + }, + "lineStyle": 1, + "points": "3456:3207;3449:3114", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL++arOxiFTMI=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL++arOxiGkAc=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL++arOxiHKFc=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGL++iBH/dTm1o=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGL++iBHvdP07A=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++iBH/dUZHc=", + "_parent": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "model": { + "$ref": "AAAAAAGL++iBHvdP07A=" + }, + "font": "Arial;13;0", + "left": 3352, + "top": 2440, + "width": 145.60888671875, + "height": 13, + "alpha": 3.678431948894711, + "distance": 42, + "hostEdge": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "edgePosition": 1, + "text": "#entrainementRepository" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++iBIPdVuVs=", + "_parent": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "model": { + "$ref": "AAAAAAGL++iBHvdP07A=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 3449, + "top": 2497, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++iBIPdW3Xk=", + "_parent": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "model": { + "$ref": "AAAAAAGL++iBHvdP07A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3411, + "top": 2474, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++iBIPdXmHU=", + "_parent": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "model": { + "$ref": "AAAAAAGL++iBHvdQzLE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3911, + "top": 2415, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++iBIPdY5+E=", + "_parent": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "model": { + "$ref": "AAAAAAGL++iBHvdQzLE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3911, + "top": 2428, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++iBIPdZNqU=", + "_parent": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "model": { + "$ref": "AAAAAAGL++iBHvdQzLE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3911, + "top": 2387, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++iBIPdaKH4=", + "_parent": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "model": { + "$ref": "AAAAAAGL++iBHvdR3xE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3303, + "top": 2714, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++iBIPdblc8=", + "_parent": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "model": { + "$ref": "AAAAAAGL++iBHvdR3xE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3315, + "top": 2719, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGL++iBIPdcVS0=", + "_parent": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "model": { + "$ref": "AAAAAAGL++iBHvdR3xE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 3277, + "top": 2704, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL++iBIPddals=", + "_parent": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "model": { + "$ref": "AAAAAAGL++iBHvdQzLE=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGL++iBIPdem5g=", + "_parent": { + "$ref": "AAAAAAGL++iBH/dTm1o=" + }, + "model": { + "$ref": "AAAAAAGL++iBHvdR3xE=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGL8kwWNOvs/ko=" + }, + "tail": { + "$ref": "AAAAAAGL3BqoCyTo5V4=" + }, + "lineStyle": 1, + "points": "3935:2402;3424:2488;3277:2735", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGL++iBH/dUZHc=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGL++iBIPdVuVs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGL++iBIPdW3Xk=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGL++iBIPdXmHU=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGL++iBIPdY5+E=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGL++iBIPdZNqU=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGL++iBIPdaKH4=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGL++iBIPdblc8=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGL++iBIPdcVS0=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGL++iBIPddals=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGL++iBIPdem5g=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGMBpdAZwuU9Ko=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGMBpdAZQuSkhA=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGMBpdAaAuVC8E=", + "_parent": { + "$ref": "AAAAAAGMBpdAZwuU9Ko=" + }, + "model": { + "$ref": "AAAAAAGMBpdAZQuSkhA=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGMBpdAaAuWiv8=", + "_parent": { + "$ref": "AAAAAAGMBpdAaAuVC8E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -16, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGMBpdAaAuXB5Q=", + "_parent": { + "$ref": "AAAAAAGMBpdAaAuVC8E=" + }, + "font": "Arial;13;1", + "left": 4613, + "top": 815, + "width": 70.08447265625, + "height": 13, + "text": "IFileReader" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGMBpdAaAuY0IM=", + "_parent": { + "$ref": "AAAAAAGMBpdAaAuVC8E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -16, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGMBpdAaAuZ2rI=", + "_parent": { + "$ref": "AAAAAAGMBpdAaAuVC8E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -16, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 4608, + "top": 808, + "width": 80.08447265625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGMBpdAaAuWiv8=" + }, + "nameLabel": { + "$ref": "AAAAAAGMBpdAaAuXB5Q=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGMBpdAaAuY0IM=" + }, + "propertyLabel": { + "$ref": "AAAAAAGMBpdAaAuZ2rI=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGMBpdAaQuaSkI=", + "_parent": { + "$ref": "AAAAAAGMBpdAZwuU9Ko=" + }, + "model": { + "$ref": "AAAAAAGMBpdAZQuSkhA=" + }, + "font": "Arial;13;0", + "left": 4608, + "top": 833, + "width": 80.08447265625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGMBpdAaQubhRA=", + "_parent": { + "$ref": "AAAAAAGMBpdAZwuU9Ko=" + }, + "model": { + "$ref": "AAAAAAGMBpdAZQuSkhA=" + }, + "font": "Arial;13;0", + "left": 4608, + "top": 843, + "width": 80.08447265625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGMBpdAaQucVWQ=", + "_parent": { + "$ref": "AAAAAAGMBpdAZwuU9Ko=" + }, + "model": { + "$ref": "AAAAAAGMBpdAZQuSkhA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -8, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGMBpdAaQudKxk=", + "_parent": { + "$ref": "AAAAAAGMBpdAZwuU9Ko=" + }, + "model": { + "$ref": "AAAAAAGMBpdAZQuSkhA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -8, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 4608, + "top": 808, + "width": 80.08447265625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGMBpdAaAuVC8E=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGMBpdAaQuaSkI=" + }, + "operationCompartment": { + "$ref": "AAAAAAGMBpdAaQubhRA=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGMBpdAaQucVWQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGMBpdAaQudKxk=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGMBpd9jA67nyk=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGMBpd9ig65uB8=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGMBpd9jA68eic=", + "_parent": { + "$ref": "AAAAAAGMBpd9jA67nyk=" + }, + "model": { + "$ref": "AAAAAAGMBpd9ig65uB8=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGMBpd9jA69DEg=", + "_parent": { + "$ref": "AAAAAAGMBpd9jA68eic=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGMBpd9jA6++N4=", + "_parent": { + "$ref": "AAAAAAGMBpd9jA68eic=" + }, + "font": "Arial;13;1", + "left": 4573, + "top": 1175, + "width": 75.1181640625, + "height": 13, + "text": "AthlketeMgr" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGMBpd9jA6/8qY=", + "_parent": { + "$ref": "AAAAAAGMBpd9jA68eic=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGMBpd9jA7AJO0=", + "_parent": { + "$ref": "AAAAAAGMBpd9jA68eic=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 4568, + "top": 1168, + "width": 85.1181640625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGMBpd9jA69DEg=" + }, + "nameLabel": { + "$ref": "AAAAAAGMBpd9jA6++N4=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGMBpd9jA6/8qY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGMBpd9jA7AJO0=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGMBpd9jA7B6Ps=", + "_parent": { + "$ref": "AAAAAAGMBpd9jA67nyk=" + }, + "model": { + "$ref": "AAAAAAGMBpd9ig65uB8=" + }, + "font": "Arial;13;0", + "left": 4568, + "top": 1193, + "width": 85.1181640625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGMBpd9jQ7CylI=", + "_parent": { + "$ref": "AAAAAAGMBpd9jA67nyk=" + }, + "model": { + "$ref": "AAAAAAGMBpd9ig65uB8=" + }, + "font": "Arial;13;0", + "left": 4568, + "top": 1203, + "width": 85.1181640625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGMBpd9jQ7DFus=", + "_parent": { + "$ref": "AAAAAAGMBpd9jA67nyk=" + }, + "model": { + "$ref": "AAAAAAGMBpd9ig65uB8=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGMBpd9jQ7EUI0=", + "_parent": { + "$ref": "AAAAAAGMBpd9jA67nyk=" + }, + "model": { + "$ref": "AAAAAAGMBpd9ig65uB8=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 4568, + "top": 1168, + "width": 85.1181640625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGMBpd9jA68eic=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGMBpd9jA7B6Ps=" + }, + "operationCompartment": { + "$ref": "AAAAAAGMBpd9jQ7CylI=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGMBpd9jQ7DFus=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGMBpd9jQ7EUI0=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGMBperHCDV/Mc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGMBperGiDRgno=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBperHCDWjP4=", + "_parent": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "model": { + "$ref": "AAAAAAGMBperGiDRgno=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4613, + "top": 1002, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBperHCDXrqs=", + "_parent": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "model": { + "$ref": "AAAAAAGMBperGiDRgno=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4598, + "top": 1000, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBperHCDYm6E=", + "_parent": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "model": { + "$ref": "AAAAAAGMBperGiDRgno=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4642, + "top": 1005, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBperHCDZ0hM=", + "_parent": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "model": { + "$ref": "AAAAAAGMBperGiDSkv4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4599, + "top": 1133, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBperHCDa9C0=", + "_parent": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "model": { + "$ref": "AAAAAAGMBperGiDSkv4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4586, + "top": 1129, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBperHCDbV2Q=", + "_parent": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "model": { + "$ref": "AAAAAAGMBperGiDSkv4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4626, + "top": 1140, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBperHSDcI7U=", + "_parent": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "model": { + "$ref": "AAAAAAGMBperGiDT2kA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4627, + "top": 871, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBperHSDdRYk=", + "_parent": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "model": { + "$ref": "AAAAAAGMBperGiDT2kA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4613, + "top": 872, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBperHSDee18=", + "_parent": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "model": { + "$ref": "AAAAAAGMBperGiDT2kA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4655, + "top": 869, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGMBperHSDfwBk=", + "_parent": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "model": { + "$ref": "AAAAAAGMBperGiDSkv4=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGMBperHSDgy0c=", + "_parent": { + "$ref": "AAAAAAGMBperHCDV/Mc=" + }, + "model": { + "$ref": "AAAAAAGMBperGiDT2kA=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGMBpdAZwuU9Ko=" + }, + "tail": { + "$ref": "AAAAAAGMBpd9jA67nyk=" + }, + "lineStyle": 1, + "points": "4612:1167;4645:853", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGMBperHCDWjP4=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGMBperHCDXrqs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGMBperHCDYm6E=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGMBperHCDZ0hM=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGMBperHCDa9C0=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGMBperHCDbV2Q=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGMBperHSDcI7U=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGMBperHSDdRYk=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGMBperHSDee18=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGMBperHSDfwBk=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGMBperHSDgy0c=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGMBpe7/iSd2yE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGMBpe7/CSbj9A=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGMBpe7/iSeTew=", + "_parent": { + "$ref": "AAAAAAGMBpe7/iSd2yE=" + }, + "model": { + "$ref": "AAAAAAGMBpe7/CSbj9A=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGMBpe7/iSfpKY=", + "_parent": { + "$ref": "AAAAAAGMBpe7/iSeTew=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGMBpe7/iSg9/o=", + "_parent": { + "$ref": "AAAAAAGMBpe7/iSeTew=" + }, + "font": "Arial;13;1", + "left": 4845, + "top": 999, + "width": 41.919921875, + "height": 13, + "text": "Fit" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGMBpe7/iShO0o=", + "_parent": { + "$ref": "AAAAAAGMBpe7/iSeTew=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGMBpe7/iSizgA=", + "_parent": { + "$ref": "AAAAAAGMBpe7/iSeTew=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 4840, + "top": 992, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGMBpe7/iSfpKY=" + }, + "nameLabel": { + "$ref": "AAAAAAGMBpe7/iSg9/o=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGMBpe7/iShO0o=" + }, + "propertyLabel": { + "$ref": "AAAAAAGMBpe7/iSizgA=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGMBpe7/iSjG28=", + "_parent": { + "$ref": "AAAAAAGMBpe7/iSd2yE=" + }, + "model": { + "$ref": "AAAAAAGMBpe7/CSbj9A=" + }, + "font": "Arial;13;0", + "left": 4840, + "top": 1017, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGMBpe7/iSkAzo=", + "_parent": { + "$ref": "AAAAAAGMBpe7/iSd2yE=" + }, + "model": { + "$ref": "AAAAAAGMBpe7/CSbj9A=" + }, + "font": "Arial;13;0", + "left": 4840, + "top": 1027, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGMBpe7/ySlufY=", + "_parent": { + "$ref": "AAAAAAGMBpe7/iSd2yE=" + }, + "model": { + "$ref": "AAAAAAGMBpe7/CSbj9A=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGMBpe7/ySmCFQ=", + "_parent": { + "$ref": "AAAAAAGMBpe7/iSd2yE=" + }, + "model": { + "$ref": "AAAAAAGMBpe7/CSbj9A=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 4840, + "top": 992, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGMBpe7/iSeTew=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGMBpe7/iSjG28=" + }, + "operationCompartment": { + "$ref": "AAAAAAGMBpe7/iSkAzo=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGMBpe7/ySlufY=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGMBpe7/ySmCFQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGMBpfYWy3ZgGs=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGMBpfYWi3Xomc=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBpfYXC3aIX8=", + "_parent": { + "$ref": "AAAAAAGMBpfYWy3ZgGs=" + }, + "model": { + "$ref": "AAAAAAGMBpfYWi3Xomc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4746, + "top": 927, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGMBpfYWy3ZgGs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBpfYXC3btwY=", + "_parent": { + "$ref": "AAAAAAGMBpfYWy3ZgGs=" + }, + "model": { + "$ref": "AAAAAAGMBpfYWi3Xomc=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4736, + "top": 938, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGMBpfYWy3ZgGs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBpfYXC3c538=", + "_parent": { + "$ref": "AAAAAAGMBpfYWy3ZgGs=" + }, + "model": { + "$ref": "AAAAAAGMBpfYWi3Xomc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4765, + "top": 904, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGMBpfYWy3ZgGs=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGMBpdAZwuU9Ko=" + }, + "tail": { + "$ref": "AAAAAAGMBpe7/iSd2yE=" + }, + "lineStyle": 1, + "points": "4839:992;4674:853", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGMBpfYXC3aIX8=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGMBpfYXC3btwY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGMBpfYXC3c538=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGMBpo0VtxckhI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGMBpo0VdxaKM0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGMBpo0V9xdlNU=", + "_parent": { + "$ref": "AAAAAAGMBpo0VtxckhI=" + }, + "model": { + "$ref": "AAAAAAGMBpo0VdxaKM0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGMBpo0V9xe4j4=", + "_parent": { + "$ref": "AAAAAAGMBpo0V9xdlNU=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGMBpo0V9xfU9w=", + "_parent": { + "$ref": "AAAAAAGMBpo0V9xdlNU=" + }, + "font": "Arial;13;1", + "left": 4805, + "top": 3055, + "width": 66.47265625, + "height": 13, + "text": "IAnalyseur" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGMBpo0V9xgOy8=", + "_parent": { + "$ref": "AAAAAAGMBpo0V9xdlNU=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGMBpo0V9xhYak=", + "_parent": { + "$ref": "AAAAAAGMBpo0V9xdlNU=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 4800, + "top": 3048, + "width": 76.47265625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGMBpo0V9xe4j4=" + }, + "nameLabel": { + "$ref": "AAAAAAGMBpo0V9xfU9w=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGMBpo0V9xgOy8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGMBpo0V9xhYak=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGMBpo0V9xinDc=", + "_parent": { + "$ref": "AAAAAAGMBpo0VtxckhI=" + }, + "model": { + "$ref": "AAAAAAGMBpo0VdxaKM0=" + }, + "font": "Arial;13;0", + "left": 4800, + "top": 3073, + "width": 76.47265625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGMBpo0V9xjdcE=", + "_parent": { + "$ref": "AAAAAAGMBpo0VtxckhI=" + }, + "model": { + "$ref": "AAAAAAGMBpo0VdxaKM0=" + }, + "font": "Arial;13;0", + "left": 4800, + "top": 3083, + "width": 76.47265625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGMBpo0V9xk5v8=", + "_parent": { + "$ref": "AAAAAAGMBpo0VtxckhI=" + }, + "model": { + "$ref": "AAAAAAGMBpo0VdxaKM0=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGMBpo0V9xl6vk=", + "_parent": { + "$ref": "AAAAAAGMBpo0VtxckhI=" + }, + "model": { + "$ref": "AAAAAAGMBpo0VdxaKM0=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 4800, + "top": 3048, + "width": 76.47265625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGMBpo0V9xdlNU=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGMBpo0V9xinDc=" + }, + "operationCompartment": { + "$ref": "AAAAAAGMBpo0V9xjdcE=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGMBpo0V9xk5v8=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGMBpo0V9xl6vk=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGMBppPXOnSowQ=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGMBppPWenO/AQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBppPXenT8H4=", + "_parent": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "model": { + "$ref": "AAAAAAGMBppPWenO/AQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4619, + "top": 3072, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBppPXenUjNw=", + "_parent": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "model": { + "$ref": "AAAAAAGMBppPWenO/AQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4617, + "top": 3057, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBppPXenVYiY=", + "_parent": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "model": { + "$ref": "AAAAAAGMBppPWenO/AQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4622, + "top": 3101, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBppPXenWrjU=", + "_parent": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "model": { + "$ref": "AAAAAAGMBppPWunPg3A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4467, + "top": 3088, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBppPXenXSC0=", + "_parent": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "model": { + "$ref": "AAAAAAGMBppPWunPg3A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4468, + "top": 3074, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBppPXenY2s0=", + "_parent": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "model": { + "$ref": "AAAAAAGMBppPWunPg3A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4465, + "top": 3116, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBppPXenZWUM=", + "_parent": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "model": { + "$ref": "AAAAAAGMBppPWunQr5E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4771, + "top": 3055, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBppPXenavXk=", + "_parent": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "model": { + "$ref": "AAAAAAGMBppPWunQr5E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4767, + "top": 3042, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBppPXenbBMk=", + "_parent": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "model": { + "$ref": "AAAAAAGMBppPWunQr5E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4778, + "top": 3082, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGMBppPXunclvs=", + "_parent": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "model": { + "$ref": "AAAAAAGMBppPWunPg3A=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGMBppPXundICc=", + "_parent": { + "$ref": "AAAAAAGMBppPXOnSowQ=" + }, + "model": { + "$ref": "AAAAAAGMBppPWunQr5E=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGMBpo0VtxckhI=" + }, + "tail": { + "$ref": "AAAAAAGL3DH0VM3eelw=" + }, + "lineStyle": 1, + "points": "4443:3112;4799:3074", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGMBppPXenT8H4=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGMBppPXenUjNw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGMBppPXenVYiY=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGMBppPXenWrjU=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGMBppPXenXSC0=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGMBppPXenY2s0=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGMBppPXenZWUM=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGMBppPXenavXk=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGMBppPXenbBMk=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGMBppPXunclvs=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGMBppPXundICc=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGMBqILMi7wY5A=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGMBqILMC7uP0g=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGMBqILMi7xX9g=", + "_parent": { + "$ref": "AAAAAAGMBqILMi7wY5A=" + }, + "model": { + "$ref": "AAAAAAGMBqILMC7uP0g=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGMBqILMi7yY/E=", + "_parent": { + "$ref": "AAAAAAGMBqILMi7xX9g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -496, + "top": 224, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGMBqILMi7zRDg=", + "_parent": { + "$ref": "AAAAAAGMBqILMi7xX9g=" + }, + "font": "Arial;13;1", + "left": 4805, + "top": 3191, + "width": 62.86083984375, + "height": 13, + "text": "Analyseur" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGMBqILMi70pg8=", + "_parent": { + "$ref": "AAAAAAGMBqILMi7xX9g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -496, + "top": 224, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGMBqILMi71Nx4=", + "_parent": { + "$ref": "AAAAAAGMBqILMi7xX9g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -496, + "top": 224, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 4800, + "top": 3184, + "width": 72.86083984375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGMBqILMi7yY/E=" + }, + "nameLabel": { + "$ref": "AAAAAAGMBqILMi7zRDg=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGMBqILMi70pg8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGMBqILMi71Nx4=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGMBqILMi72bC0=", + "_parent": { + "$ref": "AAAAAAGMBqILMi7wY5A=" + }, + "model": { + "$ref": "AAAAAAGMBqILMC7uP0g=" + }, + "font": "Arial;13;0", + "left": 4800, + "top": 3209, + "width": 72.86083984375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGMBqILMy73IbQ=", + "_parent": { + "$ref": "AAAAAAGMBqILMi7wY5A=" + }, + "model": { + "$ref": "AAAAAAGMBqILMC7uP0g=" + }, + "font": "Arial;13;0", + "left": 4800, + "top": 3219, + "width": 72.86083984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGMBqILMy74L7c=", + "_parent": { + "$ref": "AAAAAAGMBqILMi7wY5A=" + }, + "model": { + "$ref": "AAAAAAGMBqILMC7uP0g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -248, + "top": 112, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGMBqILMy75p6M=", + "_parent": { + "$ref": "AAAAAAGMBqILMi7wY5A=" + }, + "model": { + "$ref": "AAAAAAGMBqILMC7uP0g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -248, + "top": 112, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 4800, + "top": 3184, + "width": 72.86083984375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGMBqILMi7xX9g=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGMBqILMi72bC0=" + }, + "operationCompartment": { + "$ref": "AAAAAAGMBqILMy73IbQ=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGMBqILMy74L7c=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGMBqILMy75p6M=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGMBsEyOiaLjws=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGMBsEyOCaJKLw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBsEyOiaMm/Q=", + "_parent": { + "$ref": "AAAAAAGMBsEyOiaLjws=" + }, + "model": { + "$ref": "AAAAAAGMBsEyOCaJKLw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4821, + "top": 3131, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGMBsEyOiaLjws=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBsEyOiaNpAg=", + "_parent": { + "$ref": "AAAAAAGMBsEyOiaLjws=" + }, + "model": { + "$ref": "AAAAAAGMBsEyOCaJKLw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 4806, + "top": 3131, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGMBsEyOiaLjws=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGMBsEyOiaOgTs=", + "_parent": { + "$ref": "AAAAAAGMBsEyOiaLjws=" + }, + "model": { + "$ref": "AAAAAAGMBsEyOCaJKLw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 4850, + "top": 3132, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGMBsEyOiaLjws=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGMBpo0VtxckhI=" + }, + "tail": { + "$ref": "AAAAAAGMBqILMi7wY5A=" + }, + "lineStyle": 1, + "points": "4835:3183;4837:3093", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGMBsEyOiaMm/Q=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGMBsEyOiaNpAg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGMBsEyOiaOgTs=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLo/fkFXnWSO0=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Utilisateur", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGLpAecPh2uaoQ=", + "_parent": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "source": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "target": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + } + }, + { + "_type": "UMLConstraint", + "_id": "AAAAAAGLpAxpgR4ZI4c=", + "_parent": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "name": "Constraint1" + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLw8Girlz2pU0=", + "_parent": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw8Girlz3DrY=", + "_parent": { + "$ref": "AAAAAAGLw8Girlz2pU0=" + }, + "reference": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw8Girlz43FQ=", + "_parent": { + "$ref": "AAAAAAGLw8Girlz2pU0=" + }, + "reference": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL3BrkDnIc/Ag=", + "_parent": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "name": "role", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3BrkD3IdNgc=", + "_parent": { + "$ref": "AAAAAAGL3BrkDnIc/Ag=" + }, + "reference": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3BrkD3IeED0=", + "_parent": { + "$ref": "AAAAAAGL3BrkDnIc/Ag=" + }, + "reference": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "navigable": "navigable" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGL+9pa8rlijfg=", + "_parent": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "name": "id", + "visibility": "private", + "type": "int" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGL4p5pjeQNzxA=", + "_parent": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "name": "username", + "visibility": "private", + "type": "String" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLpAD5vx0yijE=", + "_parent": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "name": "id", + "type": "" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLpAHrOB1Dmpw=", + "_parent": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "name": "nom", + "visibility": "private", + "type": "String" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLpAHubx1JTgc=", + "_parent": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "name": "prenom", + "visibility": "private", + "type": "String" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLpAHxSR1PUSs=", + "_parent": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "name": "email", + "visibility": "private", + "type": "String" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLpAH0SB1VgF8=", + "_parent": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "name": "sexe", + "visibility": "private", + "type": "String" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLpAH2wh1b3Gg=", + "_parent": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "name": "taille", + "visibility": "private", + "type": "Float" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLpAH5dB1h8j4=", + "_parent": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "name": "poids", + "visibility": "private", + "type": "float" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLpAH8Jx1ngTU=", + "_parent": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "name": "motDePasse", + "visibility": "private", + "type": "String" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLpAH+3B1t8HQ=", + "_parent": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "name": "dateNaissance", + "visibility": "private", + "type": "Date" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLpAZHmx2CSnc=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Coach", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGLpAzL8h4kabg=", + "_parent": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "source": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "target": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLpCliuwcCjzg=", + "_parent": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpCliuwcDUVw=", + "_parent": { + "$ref": "AAAAAAGLpCliuwcCjzg=" + }, + "reference": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpCliuwcEgfY=", + "_parent": { + "$ref": "AAAAAAGLpCliuwcCjzg=" + }, + "reference": { + "$ref": "AAAAAAGLpCIKk+d152w=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLrxtF+5qFc8A=", + "_parent": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLrxtF+5qGyTw=", + "_parent": { + "$ref": "AAAAAAGLrxtF+5qFc8A=" + }, + "reference": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLrxtF+5qHrhY=", + "_parent": { + "$ref": "AAAAAAGLrxtF+5qFc8A=" + }, + "reference": { + "$ref": "AAAAAAGLrxlW1I2zOyU=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLDependency", + "_id": "AAAAAAGLrxumQrU4vyI=", + "_parent": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "source": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "target": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGLw8G3EmoOXHk=", + "_parent": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "source": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "target": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL3BvCOTlsc2M=", + "_parent": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "name": "*lesAthletes", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3BvCOjltmkU=", + "_parent": { + "$ref": "AAAAAAGL3BvCOTlsc2M=" + }, + "reference": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3BvCOjluKwE=", + "_parent": { + "$ref": "AAAAAAGL3BvCOTlsc2M=" + }, + "reference": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGL3B0hp6VJcj4=", + "_parent": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "source": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + }, + "target": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + } + } + ], + "stereotype": "abstract" + }, + { + "_type": "UMLInterface", + "_id": "AAAAAAGLpAwf8B3QX1g=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Interface1" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLpAzboB41ECQ=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Athlete", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGLpAz8rx5frvk=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "source": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "target": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLpCNbyef3xVM=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpCNbyuf4TUk=", + "_parent": { + "$ref": "AAAAAAGLpCNbyef3xVM=" + }, + "reference": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpCNbyuf5Owk=", + "_parent": { + "$ref": "AAAAAAGLpCNbyef3xVM=" + }, + "reference": { + "$ref": "AAAAAAGLpCMdQOfM2Wo=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLDependency", + "_id": "AAAAAAGLpCUhQfKy6BM=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "source": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "target": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLrw2ZlZxbXCg=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLrw2ZlZxcFvQ=", + "_parent": { + "$ref": "AAAAAAGLrw2ZlZxbXCg=" + }, + "reference": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLrw2ZlZxdZjo=", + "_parent": { + "$ref": "AAAAAAGLrw2ZlZxbXCg=" + }, + "reference": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLrxtvS62Q1yw=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLrxtvS62RQtA=", + "_parent": { + "$ref": "AAAAAAGLrxtvS62Q1yw=" + }, + "reference": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLrxtvTK2SVQE=", + "_parent": { + "$ref": "AAAAAAGLrxtvS62Q1yw=" + }, + "reference": { + "$ref": "AAAAAAGLrxlW1I2zOyU=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLDependency", + "_id": "AAAAAAGLrx7/fTi27wg=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "source": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "target": { + "$ref": "AAAAAAGLpCMdQOfM2Wo=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLrx/5OVEi78k=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLrx/5OVEjXTE=", + "_parent": { + "$ref": "AAAAAAGLrx/5OVEi78k=" + }, + "reference": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLrx/5OVEkE+s=", + "_parent": { + "$ref": "AAAAAAGLrx/5OVEi78k=" + }, + "reference": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLDependency", + "_id": "AAAAAAGLryAmY1g6f3w=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "source": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "target": { + "$ref": "AAAAAAGLpC6+3hxaFwM=" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGLw8HHMXjjv4w=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "source": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "target": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGL3B0TsZu6iEw=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "source": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "target": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL3DO5CWGzYdk=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "name": "*activiteList", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3DO5CWG0ZOw=", + "_parent": { + "$ref": "AAAAAAGL3DO5CWGzYdk=" + }, + "reference": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3DO5CmG1yFk=", + "_parent": { + "$ref": "AAAAAAGL3DO5CWGzYdk=" + }, + "reference": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "navigable": "navigable" + }, + "visibility": "private" + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL3Ddn/grGOiw=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "name": "*sdList", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3Ddn/grHlaI=", + "_parent": { + "$ref": "AAAAAAGL3Ddn/grGOiw=" + }, + "reference": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3Ddn/grIS6Y=", + "_parent": { + "$ref": "AAAAAAGL3Ddn/grGOiw=" + }, + "reference": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "navigable": "navigable" + }, + "visibility": "private" + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL3DgOmzocF5c=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "name": "*statsList", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3DgOnDodXGk=", + "_parent": { + "$ref": "AAAAAAGL3DgOmzocF5c=" + }, + "reference": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3DgOnDoedKI=", + "_parent": { + "$ref": "AAAAAAGL3DgOmzocF5c=" + }, + "reference": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "navigable": "navigable" + }, + "visibility": "private" + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL3D32NRysQcE=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3D32NRytcgc=", + "_parent": { + "$ref": "AAAAAAGL3D32NRysQcE=" + }, + "reference": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3D32NRyuVZo=", + "_parent": { + "$ref": "AAAAAAGL3D32NRysQcE=" + }, + "name": "ent", + "reference": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "navigable": "navigable" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGL3Cav216fXX4=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "name": "getAthlete", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3CbrLmGdRT8=", + "_parent": { + "$ref": "AAAAAAGL3Cav216fXX4=" + }, + "type": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL3CcA1GT//kE=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "name": "getActivite", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3Cg0I2bvypE=", + "_parent": { + "$ref": "AAAAAAGL3CcA1GT//kE=" + }, + "type": "lesActivite", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL3DDNcZtsRlI=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "name": "getStatistiques", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3DEvup1chzs=", + "_parent": { + "$ref": "AAAAAAGL3DDNcZtsRlI=" + }, + "type": "lesStats", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL3EaRsi0pEF4=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "name": "getSourceDonnees", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3EbayDAnCWI=", + "_parent": { + "$ref": "AAAAAAGL3EaRsi0pEF4=" + }, + "type": "lesSD", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL3DEwGp4As4s=", + "_parent": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "name": "__toString", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3DGxWJ/xM/c=", + "_parent": { + "$ref": "AAAAAAGL3DEwGp4As4s=" + }, + "type": "String", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLpCIKk+d152w=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Analyse", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLpDFQTUb/JFU=", + "_parent": { + "$ref": "AAAAAAGLpCIKk+d152w=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpDFQTUcAb8I=", + "_parent": { + "$ref": "AAAAAAGLpDFQTUb/JFU=" + }, + "reference": { + "$ref": "AAAAAAGLpCIKk+d152w=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpDFQTUcBF6U=", + "_parent": { + "$ref": "AAAAAAGLpDFQTUb/JFU=" + }, + "reference": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "navigable": "navigable" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLpCJOKOeiXS4=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Activite", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAGLpCQyD+pd5dY=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "source": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "target": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLpCkkyQISTtc=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpCkkyQIT3V8=", + "_parent": { + "$ref": "AAAAAAGLpCkkyQISTtc=" + }, + "reference": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpCkkyQIUk7c=", + "_parent": { + "$ref": "AAAAAAGLpCkkyQISTtc=" + }, + "reference": { + "$ref": "AAAAAAGLpCIKk+d152w=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLpCrtIwt6IIM=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpCrtJAt7teE=", + "_parent": { + "$ref": "AAAAAAGLpCrtIwt6IIM=" + }, + "reference": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpCrtJAt8tqE=", + "_parent": { + "$ref": "AAAAAAGLpCrtIwt6IIM=" + }, + "reference": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL3DewVSCksyY=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3DewViClTrY=", + "_parent": { + "$ref": "AAAAAAGL3DewVSCksyY=" + }, + "reference": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3DewViCmmWs=", + "_parent": { + "$ref": "AAAAAAGL3DewVSCksyY=" + }, + "reference": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGMBppPWenO/AQ=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGMBppPWunPg3A=", + "_parent": { + "$ref": "AAAAAAGMBppPWenO/AQ=" + }, + "reference": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGMBppPWunQr5E=", + "_parent": { + "$ref": "AAAAAAGMBppPWenO/AQ=" + }, + "reference": { + "$ref": "AAAAAAGMBpo0VdxaKM0=" + }, + "navigable": "navigable" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLpCXSK/WOLkA=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "idActivite", + "visibility": "private", + "type": "int" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxCVfeebjRQ=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "type", + "visibility": "private", + "type": "string" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxCvKejL/fw=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "date", + "visibility": "private", + "type": "Date" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxDHu+n7GHc=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "heureDebut", + "visibility": "private", + "type": "time" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxDu8esr6vo=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "heureFin", + "visibility": "private", + "type": "time" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxEIwOxboHI=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "effortRessenti", + "visibility": "private", + "type": "int" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxJXpe2Lor0=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "variabilite", + "visibility": "private", + "type": "float" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxKISe67v6E=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "variance", + "visibility": "private", + "type": "float" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxKpzu/rHo4=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "ecartType", + "visibility": "private", + "type": "float" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxLaO/Ebr8k=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "moyenne", + "visibility": "private", + "type": "float" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxL5PfJLk04=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "maximum", + "visibility": "private", + "type": "int" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxM0SfWY9pQ=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "minimum", + "visibility": "private", + "type": "int" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxNQCvbIr2U=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "TemperatureMoyenne", + "visibility": "private", + "type": "float" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGMBkKf7yn3AyI=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "pause", + "visibility": "private", + "type": "bool" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGL3DQ2catj1/Q=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "getActivite", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3DSrMq6LST8=", + "_parent": { + "$ref": "AAAAAAGL3DQ2catj1/Q=" + }, + "type": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL3DTgKchiipU=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "getAnalyse", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3DXHucptwRw=", + "_parent": { + "$ref": "AAAAAAGL3DTgKchiipU=" + }, + "name": "a1", + "type": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + } + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3DXHuspuz9Q=", + "_parent": { + "$ref": "AAAAAAGL3DTgKchiipU=" + }, + "type": "String", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL3DXeGc46SeI=", + "_parent": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "name": "toString", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3DYdBdBF0T4=", + "_parent": { + "$ref": "AAAAAAGL3DXeGc46SeI=" + }, + "name": "Activite", + "type": "" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3DYdBtBGMg8=", + "_parent": { + "$ref": "AAAAAAGL3DXeGc46SeI=" + }, + "type": "String", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLpCMdQOfM2Wo=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Activitheque", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLpCN16+h8aQ0=", + "_parent": { + "$ref": "AAAAAAGLpCMdQOfM2Wo=" + }, + "name": "lesActivites", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpCN17+h9pms=", + "_parent": { + "$ref": "AAAAAAGLpCN16+h8aQ0=" + }, + "reference": { + "$ref": "AAAAAAGLpCMdQOfM2Wo=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpCN17+h+bfw=", + "_parent": { + "$ref": "AAAAAAGLpCN16+h8aQ0=" + }, + "reference": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "navigable": "navigable" + }, + "visibility": "private" + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLpCTkfe4C0zU=", + "_parent": { + "$ref": "AAAAAAGLpCMdQOfM2Wo=" + }, + "name": "*lesActivites", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpCTkfu4DUbA=", + "_parent": { + "$ref": "AAAAAAGLpCTkfe4C0zU=" + }, + "reference": { + "$ref": "AAAAAAGLpCMdQOfM2Wo=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpCTkfu4EADw=", + "_parent": { + "$ref": "AAAAAAGLpCTkfe4C0zU=" + }, + "reference": { + "$ref": "AAAAAAGLpCJOKOeiXS4=" + }, + "navigable": "navigable" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGLpCVoW/TUDTs=", + "_parent": { + "$ref": "AAAAAAGLpCMdQOfM2Wo=" + }, + "name": "Operation1" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLpCqsVQhTM54=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "SourceDonnee", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxTIICbUAdU=", + "_parent": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "name": "idSource", + "visibility": "private", + "type": "int" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxTswiiLUpA=", + "_parent": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "name": "Type", + "visibility": "private", + "type": "enum" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxVKVSm7bms=", + "_parent": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "name": "modele", + "visibility": "private", + "type": "string" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxV3+SrrCr8=", + "_parent": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "name": "precision", + "visibility": "private", + "type": "enum" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxWfnSwbQ58=", + "_parent": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "name": "dateDerniereUtilisation", + "visibility": "private", + "type": "Date" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGL3EcVFjuykz0=", + "_parent": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "name": "getSD", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3Ed/tEBUogw=", + "_parent": { + "$ref": "AAAAAAGL3EcVFjuykz0=" + }, + "name": "SourceDonnee", + "type": "" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3Ed/tUBVIpo=", + "_parent": { + "$ref": "AAAAAAGL3EcVFjuykz0=" + }, + "type": "String", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL3EeezUzS6YA=", + "_parent": { + "$ref": "AAAAAAGLpCqsVQhTM54=" + }, + "name": "to_String", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3EfxCE/QIC8=", + "_parent": { + "$ref": "AAAAAAGL3EeezUzS6YA=" + }, + "name": "SourceDonnee", + "type": "" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3EfxCk/RWz4=", + "_parent": { + "$ref": "AAAAAAGL3EeezUzS6YA=" + }, + "type": "String", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLpC6+3hxaFwM=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Notification", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLpC8ityhF+Rs=", + "_parent": { + "$ref": "AAAAAAGLpC6+3hxaFwM=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpC8iuChGpgc=", + "_parent": { + "$ref": "AAAAAAGLpC8ityhF+Rs=" + }, + "reference": { + "$ref": "AAAAAAGLpC6+3hxaFwM=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpC8iuChHuYc=", + "_parent": { + "$ref": "AAAAAAGLpC8ityhF+Rs=" + }, + "reference": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "navigable": "navigable" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrwTQNkoBs18=", + "_parent": { + "$ref": "AAAAAAGLpC6+3hxaFwM=" + }, + "name": "idNotification", + "visibility": "private", + "type": "int" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrwWAclJrDg4=", + "_parent": { + "$ref": "AAAAAAGLpC6+3hxaFwM=" + }, + "name": "message", + "visibility": "private", + "type": "text" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrwXMTFPyfWM=", + "_parent": { + "$ref": "AAAAAAGLpC6+3hxaFwM=" + }, + "name": "date", + "visibility": "private", + "type": "Date" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrwXq6FUBKfs=", + "_parent": { + "$ref": "AAAAAAGLpC6+3hxaFwM=" + }, + "name": "statut", + "visibility": "private", + "type": "boolean" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrwhVcFox6nk=", + "_parent": { + "$ref": "AAAAAAGLpC6+3hxaFwM=" + }, + "name": "Urgence", + "visibility": "private", + "type": "enum" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGLrwVqf1F1q2A=", + "_parent": { + "$ref": "AAAAAAGLpC6+3hxaFwM=" + }, + "name": "Operation1" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLpDCydyvBWA4=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Statistique", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLpDDf2zNOiFs=", + "_parent": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpDDf2zNP3wA=", + "_parent": { + "$ref": "AAAAAAGLpDDf2zNOiFs=" + }, + "reference": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLpDDf2zNQzDU=", + "_parent": { + "$ref": "AAAAAAGLpDDf2zNOiFs=" + }, + "reference": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "navigable": "navigable" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrwixuGGJpE4=", + "_parent": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "name": "idStatistique", + "visibility": "private", + "type": "int" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrwlhdmOIz0E=", + "_parent": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "name": "distanceTotale", + "visibility": "private", + "type": "float" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrwmwgWUPuog=", + "_parent": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "name": "poids", + "visibility": "private", + "type": "float" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrwnYLWYeNa4=", + "_parent": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "name": "tempsTotal", + "visibility": "private", + "type": "time" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrwoPTGct0ws=", + "_parent": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "name": "FCmoyenne", + "visibility": "private", + "type": "int" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrwps72g8dI8=", + "_parent": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "name": "FCmin", + "visibility": "private", + "type": "int" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrwqb7mlLpYw=", + "_parent": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "name": "FCmax", + "visibility": "private", + "type": "int" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrwq/JGpaMCs=", + "_parent": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "name": "caloriesBrulées", + "visibility": "private", + "type": "int" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGL3EVAEQqWm2c=", + "_parent": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "name": "getStatistique", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3EWyFw84O9s=", + "_parent": { + "$ref": "AAAAAAGL3EVAEQqWm2c=" + }, + "type": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL3EWydxA200E=", + "_parent": { + "$ref": "AAAAAAGLpDCydyvBWA4=" + }, + "name": "__toString", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3EX7bBOIgbw=", + "_parent": { + "$ref": "AAAAAAGL3EWydxA200E=" + }, + "name": "Statistique", + "type": "" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3EX7bROJu3A=", + "_parent": { + "$ref": "AAAAAAGL3EWydxA200E=" + }, + "type": "String", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLpDGNPV37CeU=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Main", + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGLpDG1k1/VDfE=", + "_parent": { + "$ref": "AAAAAAGLpDGNPV37CeU=" + }, + "name": "Operation1" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLpDN9jGOcNzo=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Afficheur" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLpDOU2mUWdIY=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Saissiseur" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLpDO85Wao3Xs=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Suppresseur" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLrxb6dUqeBKo=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Entrainement", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGL++OFOjnitkY=", + "_parent": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "source": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "target": { + "$ref": "AAAAAAGL8lJC3yKeddk=" + } + } + ], + "stereotype": "abstract", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxcxm0yu9ck=", + "_parent": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "name": "idEntrainement", + "type": "int" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxdjg05lkd0=", + "_parent": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "name": "date", + "type": "Date" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGL7QbRBNAl41g=", + "_parent": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "name": "latitude", + "type": "float" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxeDFU+VhpI=", + "_parent": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "name": "longitude", + "type": "float" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxezwlDFkh4=", + "_parent": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "name": "description", + "type": "text" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGLrxfiTFH1ArI=", + "_parent": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "name": "feedback", + "type": "text" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGL3D2F3gDGuRs=", + "_parent": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "name": "getId", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3D3LVQdJ3C4=", + "_parent": { + "$ref": "AAAAAAGL3D2F3gDGuRs=" + }, + "type": "int", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL++UQDELkhBM=", + "_parent": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "name": "getDate", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL++U2OEZpVpc=", + "_parent": { + "$ref": "AAAAAAGL++UQDELkhBM=" + }, + "type": "DateTime", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL++U2j0eU938=", + "_parent": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "name": "getLocation", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL++VhlEsZBcw=", + "_parent": { + "$ref": "AAAAAAGL++U2j0eU938=" + }, + "type": "String", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL++Vh50xEGPg=", + "_parent": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "name": "getDescription", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL++Wi6k/JzIU=", + "_parent": { + "$ref": "AAAAAAGL++Vh50xEGPg=" + }, + "type": "Text", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL++WjUVD03ak=", + "_parent": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "name": "getFeedBack", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL++XGtVR5vT8=", + "_parent": { + "$ref": "AAAAAAGL++WjUVD03ak=" + }, + "type": "String", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL++XHM1Wk8GA=", + "_parent": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "name": "__toString", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL++XvGlkp8eA=", + "_parent": { + "$ref": "AAAAAAGL++XHM1Wk8GA=" + }, + "type": "String", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLrxlW1I2zOyU=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Groupe", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLrxtgF6RW9mw=", + "_parent": { + "$ref": "AAAAAAGLrxlW1I2zOyU=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLrxtgF6RXHhs=", + "_parent": { + "$ref": "AAAAAAGLrxtgF6RW9mw=" + }, + "reference": { + "$ref": "AAAAAAGLrxlW1I2zOyU=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLrxtgF6RY8Ic=", + "_parent": { + "$ref": "AAAAAAGLrxtgF6RW9mw=" + }, + "reference": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLrxxzThcUhGA=", + "_parent": { + "$ref": "AAAAAAGLrxlW1I2zOyU=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLrxxzThcVL6o=", + "_parent": { + "$ref": "AAAAAAGLrxxzThcUhGA=" + }, + "reference": { + "$ref": "AAAAAAGLrxlW1I2zOyU=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLrxxzThcWPZ8=", + "_parent": { + "$ref": "AAAAAAGLrxxzThcUhGA=" + }, + "reference": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + }, + "navigable": "navigable" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLw7nD48sOfVM=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "index.php", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLw7pt1PGAP1c=", + "_parent": { + "$ref": "AAAAAAGLw7nD48sOfVM=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw7pt1PGB1i0=", + "_parent": { + "$ref": "AAAAAAGLw7pt1PGAP1c=" + }, + "reference": { + "$ref": "AAAAAAGLw7nD48sOfVM=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw7pt1PGCpVw=", + "_parent": { + "$ref": "AAAAAAGLw7pt1PGAP1c=" + }, + "reference": { + "$ref": "AAAAAAGLw7oXg9WQpWI=" + }, + "navigable": "navigable" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLw7oXg9WQpWI=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Console.php", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLw7x8nxMcncI=", + "_parent": { + "$ref": "AAAAAAGLw7oXg9WQpWI=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw7x8nxMdRU0=", + "_parent": { + "$ref": "AAAAAAGLw7x8nxMcncI=" + }, + "reference": { + "$ref": "AAAAAAGLw7oXg9WQpWI=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw7x8nxMeKxY=", + "_parent": { + "$ref": "AAAAAAGLw7x8nxMcncI=" + }, + "reference": { + "$ref": "AAAAAAGLw7v65PPlleU=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLDependency", + "_id": "AAAAAAGLw8OfyokBM5A=", + "_parent": { + "$ref": "AAAAAAGLw7oXg9WQpWI=" + }, + "source": { + "$ref": "AAAAAAGLw7oXg9WQpWI=" + }, + "target": { + "$ref": "AAAAAAGLw7v65PPlleU=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLw7v65PPlleU=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "DataManager", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLw739qDtrDhg=", + "_parent": { + "$ref": "AAAAAAGLw7v65PPlleU=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw739qDtsLsw=", + "_parent": { + "$ref": "AAAAAAGLw739qDtrDhg=" + }, + "reference": { + "$ref": "AAAAAAGLw7v65PPlleU=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw739qDtt8oQ=", + "_parent": { + "$ref": "AAAAAAGLw739qDtrDhg=" + }, + "reference": { + "$ref": "AAAAAAGLw722NTGx6eY=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL3EEppBTCx28=", + "_parent": { + "$ref": "AAAAAAGLw7v65PPlleU=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3EEppBTDPCs=", + "_parent": { + "$ref": "AAAAAAGL3EEppBTCx28=" + }, + "reference": { + "$ref": "AAAAAAGLw7v65PPlleU=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3EEppBTE3EY=", + "_parent": { + "$ref": "AAAAAAGL3EEppBTCx28=" + }, + "reference": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL8lXBSa6/2w4=", + "_parent": { + "$ref": "AAAAAAGLw7v65PPlleU=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lXBSa7AoxY=", + "_parent": { + "$ref": "AAAAAAGL8lXBSa6/2w4=" + }, + "reference": { + "$ref": "AAAAAAGLw7v65PPlleU=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lXBSa7B00o=", + "_parent": { + "$ref": "AAAAAAGL8lXBSa6/2w4=" + }, + "reference": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + }, + "navigable": "navigable" + } + } + ], + "stereotype": "abstract" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLw7wcvPtpS0g=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Stub", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGLw7xJLQpG+ik=", + "_parent": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "source": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "target": { + "$ref": "AAAAAAGLw7v65PPlleU=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLw79ywHVPvfw=", + "_parent": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw79ywHVQcT8=", + "_parent": { + "$ref": "AAAAAAGLw79ywHVPvfw=" + }, + "reference": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw79ywHVRW1U=", + "_parent": { + "$ref": "AAAAAAGLw79ywHVPvfw=" + }, + "reference": { + "$ref": "AAAAAAGLw722NTGx6eY=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLDependency", + "_id": "AAAAAAGLw8O3vpcZDOs=", + "_parent": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "source": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "target": { + "$ref": "AAAAAAGLw722NTGx6eY=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL8e3m2zur3i0=", + "_parent": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8e3m3DusHLI=", + "_parent": { + "$ref": "AAAAAAGL8e3m2zur3i0=" + }, + "reference": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8e3m3Dut15M=", + "_parent": { + "$ref": "AAAAAAGL8e3m2zur3i0=" + }, + "reference": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL8lNA6tzH31s=", + "_parent": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lNA6tzIag0=", + "_parent": { + "$ref": "AAAAAAGL8lNA6tzH31s=" + }, + "reference": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lNA6tzJ0wg=", + "_parent": { + "$ref": "AAAAAAGL8lNA6tzH31s=" + }, + "reference": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL+8owjNKG+JM=", + "_parent": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL+8owjNKHXMk=", + "_parent": { + "$ref": "AAAAAAGL+8owjNKG+JM=" + }, + "reference": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL+8owjNKIBW4=", + "_parent": { + "$ref": "AAAAAAGL+8owjNKG+JM=" + }, + "reference": { + "$ref": "AAAAAAGL+8nHIFKZGGE=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLDependency", + "_id": "AAAAAAGL+9V6xkTTcHA=", + "_parent": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "source": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "target": { + "$ref": "AAAAAAGL8e8PLkVkOWg=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL+9lB2GJMfIE=", + "_parent": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL+9lB2WJNfVI=", + "_parent": { + "$ref": "AAAAAAGL+9lB2GJMfIE=" + }, + "reference": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL+9lB2WJO1RQ=", + "_parent": { + "$ref": "AAAAAAGL+9lB2GJMfIE=" + }, + "reference": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL+9lQz3og1pg=", + "_parent": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL+9lQz3ohaCY=", + "_parent": { + "$ref": "AAAAAAGL+9lQz3og1pg=" + }, + "reference": { + "$ref": "AAAAAAGLw7wcvPtpS0g=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL+9lQz3oiCYc=", + "_parent": { + "$ref": "AAAAAAGL+9lQz3og1pg=" + }, + "reference": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "navigable": "navigable" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLw722NTGx6eY=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "IUserManager", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLw77Um1toR1M=", + "_parent": { + "$ref": "AAAAAAGLw722NTGx6eY=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw77Um1tpvS8=", + "_parent": { + "$ref": "AAAAAAGLw77Um1toR1M=" + }, + "reference": { + "$ref": "AAAAAAGLw722NTGx6eY=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw77Um1tqTz8=", + "_parent": { + "$ref": "AAAAAAGLw77Um1toR1M=" + }, + "reference": { + "$ref": "AAAAAAGLw75/NVNSG5E=" + }, + "navigable": "navigable" + } + } + ], + "stereotype": "sbtract" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLw74acUM+FsM=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "UserManager", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGLw75J1lDRG8o=", + "_parent": { + "$ref": "AAAAAAGLw74acUM+FsM=" + }, + "source": { + "$ref": "AAAAAAGLw74acUM+FsM=" + }, + "target": { + "$ref": "AAAAAAGLw722NTGx6eY=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLw7+J/n3/B1Y=", + "_parent": { + "$ref": "AAAAAAGLw74acUM+FsM=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw7+J/n4AoQo=", + "_parent": { + "$ref": "AAAAAAGLw7+J/n3/B1Y=" + }, + "reference": { + "$ref": "AAAAAAGLw74acUM+FsM=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw7+J/n4BrBk=", + "_parent": { + "$ref": "AAAAAAGLw7+J/n3/B1Y=" + }, + "reference": { + "$ref": "AAAAAAGLw75/NVNSG5E=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLDependency", + "_id": "AAAAAAGLw8PRbqZ11JM=", + "_parent": { + "$ref": "AAAAAAGLw74acUM+FsM=" + }, + "source": { + "$ref": "AAAAAAGLw74acUM+FsM=" + }, + "target": { + "$ref": "AAAAAAGLw75/NVNSG5E=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLw75/NVNSG5E=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "IAuthService", + "stereotype": "abstract" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLw77mx15mj/c=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "AuthService", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGLw78az2rf0JI=", + "_parent": { + "$ref": "AAAAAAGLw77mx15mj/c=" + }, + "source": { + "$ref": "AAAAAAGLw77mx15mj/c=" + }, + "target": { + "$ref": "AAAAAAGLw75/NVNSG5E=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLw8AdI58up9U=", + "_parent": { + "$ref": "AAAAAAGLw77mx15mj/c=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw8AdI58v8mI=", + "_parent": { + "$ref": "AAAAAAGLw8AdI58up9U=" + }, + "reference": { + "$ref": "AAAAAAGLw77mx15mj/c=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw8AdI58w4bI=", + "_parent": { + "$ref": "AAAAAAGLw8AdI58up9U=" + }, + "reference": { + "$ref": "AAAAAAGLw7+uCZK14Kw=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLw8DsaAT3Z3E=", + "_parent": { + "$ref": "AAAAAAGLw77mx15mj/c=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw8DsaQT4sn8=", + "_parent": { + "$ref": "AAAAAAGLw8DsaAT3Z3E=" + }, + "reference": { + "$ref": "AAAAAAGLw77mx15mj/c=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw8DsaQT5+dg=", + "_parent": { + "$ref": "AAAAAAGLw8DsaAT3Z3E=" + }, + "reference": { + "$ref": "AAAAAAGLw8CsTvtt06M=" + }, + "navigable": "navigable" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLw7+uCZK14Kw=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "IHashPasswd", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLw8CDXMoYIRA=", + "_parent": { + "$ref": "AAAAAAGLw7+uCZK14Kw=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw8CDXMoZH4o=", + "_parent": { + "$ref": "AAAAAAGLw8CDXMoYIRA=" + }, + "reference": { + "$ref": "AAAAAAGLw7+uCZK14Kw=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw8CDXMoaWgc=", + "_parent": { + "$ref": "AAAAAAGLw8CDXMoYIRA=" + }, + "reference": { + "$ref": "AAAAAAGLw8A1cbelFNg=" + }, + "navigable": "navigable" + } + } + ], + "stereotype": "abstract" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLw8A1cbelFNg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "HashPasswd", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGLw8P2P7Eq0Zg=", + "_parent": { + "$ref": "AAAAAAGLw8A1cbelFNg=" + }, + "source": { + "$ref": "AAAAAAGLw8A1cbelFNg=" + }, + "target": { + "$ref": "AAAAAAGLw7+uCZK14Kw=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLw8CsTvtt06M=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "IUserRepository", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLw8E4dyjMplk=", + "_parent": { + "$ref": "AAAAAAGLw8CsTvtt06M=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw8E4dyjNt00=", + "_parent": { + "$ref": "AAAAAAGLw8E4dyjMplk=" + }, + "reference": { + "$ref": "AAAAAAGLw8CsTvtt06M=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw8E4dyjOpGg=", + "_parent": { + "$ref": "AAAAAAGLw8E4dyjMplk=" + }, + "reference": { + "$ref": "AAAAAAGLw8ERdB3gYJY=" + }, + "navigable": "navigable" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLw8ERdB3gYJY=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "UserRepository", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGLw8FINzNWfKU=", + "_parent": { + "$ref": "AAAAAAGLw8ERdB3gYJY=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw8FINzNXfFM=", + "_parent": { + "$ref": "AAAAAAGLw8FINzNWfKU=" + }, + "reference": { + "$ref": "AAAAAAGLw8ERdB3gYJY=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGLw8FINzNYczE=", + "_parent": { + "$ref": "AAAAAAGLw8FINzNWfKU=" + }, + "reference": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "navigable": "navigable" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGLw8GJdFMAfwk=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Role", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL3B3/yvI7wq4=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "name": "*lesUsers", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3B3/yvI8/hQ=", + "_parent": { + "$ref": "AAAAAAGL3B3/yvI7wq4=" + }, + "reference": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3B3/yvI9HQU=", + "_parent": { + "$ref": "AAAAAAGL3B3/yvI7wq4=" + }, + "reference": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "navigable": "navigable" + }, + "visibility": "protected" + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL8lAAXUGgrrQ=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lAAXUGh/wI=", + "_parent": { + "$ref": "AAAAAAGL8lAAXUGgrrQ=" + }, + "reference": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lAAXUGi4/c=", + "_parent": { + "$ref": "AAAAAAGL8lAAXUGgrrQ=" + }, + "reference": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL8lKzBWBVyb4=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lKzBWBWoKM=", + "_parent": { + "$ref": "AAAAAAGL8lKzBWBVyb4=" + }, + "reference": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lKzBWBXFpY=", + "_parent": { + "$ref": "AAAAAAGL8lKzBWBVyb4=" + }, + "reference": { + "$ref": "AAAAAAGL8lJC3yKeddk=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL++ZRWq9wC2Q=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL++ZRWq9xmHA=", + "_parent": { + "$ref": "AAAAAAGL++ZRWq9wC2Q=" + }, + "reference": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL++ZRWq9yVyo=", + "_parent": { + "$ref": "AAAAAAGL++ZRWq9wC2Q=" + }, + "reference": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL++iBHvdP07A=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "name": "entrainementRepository", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL++iBHvdQzLE=", + "_parent": { + "$ref": "AAAAAAGL++iBHvdP07A=" + }, + "reference": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL++iBHvdR3xE=", + "_parent": { + "$ref": "AAAAAAGL++iBHvdP07A=" + }, + "reference": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "navigable": "navigable" + }, + "visibility": "protected" + } + ], + "stereotype": "abstract", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGL3EO77J2JFbo=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "name": "id", + "visibility": "protected", + "type": "int" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGL8lDIQHjxa7g=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "name": "getUsersList", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9z2Wk7Rkl0=", + "_parent": { + "$ref": "AAAAAAGL8lDIQHjxa7g=" + }, + "type": "?array", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL+91tC2YUaHo=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "name": "getUserList", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+93WVmslMmk=", + "_parent": { + "$ref": "AAAAAAGL+91tC2YUaHo=" + }, + "name": "user", + "type": "User" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+93WWGsme7k=", + "_parent": { + "$ref": "AAAAAAGL+91tC2YUaHo=" + }, + "type": "?User", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL+93v8Z0NH0E=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "name": "getEntrainement", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+95FxaCSyVw=", + "_parent": { + "$ref": "AAAAAAGL+93v8Z0NH0E=" + }, + "type": "?EntrainementRepository", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL+90Kble5JDw=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "name": "getEntrainementsList", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+91Bwls+tYg=", + "_parent": { + "$ref": "AAAAAAGL+90Kble5JDw=" + }, + "type": "?array", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL+95b8qX+sig=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "name": "getEntrainementList", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+97c6amDCSE=", + "_parent": { + "$ref": "AAAAAAGL+95b8qX+sig=" + }, + "name": "entrainement", + "type": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + } + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+97c66mEPPE=", + "_parent": { + "$ref": "AAAAAAGL+95b8qX+sig=" + }, + "type": "?EntrainementSportif", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL8lQnmhRLfho=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "name": "checkAdd", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL8lRFEBfQcoA=", + "_parent": { + "$ref": "AAAAAAGL8lQnmhRLfho=" + }, + "type": "bool", + "direction": "return" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL8lTMXSaTy7k=", + "_parent": { + "$ref": "AAAAAAGL8lQnmhRLfho=" + }, + "name": "user", + "type": "User" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL8lROwx08WBA=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "name": "chackAddEntrainement", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL8lSScCDBz5M=", + "_parent": { + "$ref": "AAAAAAGL8lROwx08WBA=" + }, + "name": "entrainement", + "type": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + } + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL8lSSciDCofo=", + "_parent": { + "$ref": "AAAAAAGL8lROwx08WBA=" + }, + "type": "bool", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL3B61dD33CBk=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "name": "addUser", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3CF8BUD1MaE=", + "_parent": { + "$ref": "AAAAAAGL3B61dD33CBk=" + }, + "name": "user", + "type": "User" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL3CF8BkD2uFE=", + "_parent": { + "$ref": "AAAAAAGL3B61dD33CBk=" + }, + "type": "bool", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL58RPF/SE7Hs=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "name": "removeUser", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL58SDNfeCYS0=", + "_parent": { + "$ref": "AAAAAAGL58RPF/SE7Hs=" + }, + "name": "user", + "type": "User" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL58SDN/eDi6M=", + "_parent": { + "$ref": "AAAAAAGL58RPF/SE7Hs=" + }, + "type": "bool", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL8lBBHXFLScI=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "name": "addEntrainement", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL8lCF13QufIw=", + "_parent": { + "$ref": "AAAAAAGL8lBBHXFLScI=" + }, + "name": "entr", + "type": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + } + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL8lCF2HQvGso=", + "_parent": { + "$ref": "AAAAAAGL8lBBHXFLScI=" + }, + "type": "bool", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL++Fe3CpxsSg=", + "_parent": { + "$ref": "AAAAAAGLw8GJdFMAfwk=" + }, + "name": "removeEntrainement", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL++GDKi32bTY=", + "_parent": { + "$ref": "AAAAAAGL++Fe3CpxsSg=" + }, + "name": "entr", + "type": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + } + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL++GDKy3305U=", + "_parent": { + "$ref": "AAAAAAGL++Fe3CpxsSg=" + }, + "type": "bool", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGL3CMxnEguLCQ=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "CoachAthlete", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGL3CS00FlI+OY=", + "_parent": { + "$ref": "AAAAAAGL3CMxnEguLCQ=" + }, + "source": { + "$ref": "AAAAAAGL3CMxnEguLCQ=" + }, + "target": { + "$ref": "AAAAAAGLpAZHmx2CSnc=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL3DzrydAwEjA=", + "_parent": { + "$ref": "AAAAAAGL3CMxnEguLCQ=" + }, + "name": "ent", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3DzrydAx3B4=", + "_parent": { + "$ref": "AAAAAAGL3DzrydAwEjA=" + }, + "reference": { + "$ref": "AAAAAAGL3CMxnEguLCQ=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3DzrydAyGD8=", + "_parent": { + "$ref": "AAAAAAGL3DzrydAwEjA=" + }, + "reference": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLDependency", + "_id": "AAAAAAGL3EhnKwk9Pw0=", + "_parent": { + "$ref": "AAAAAAGL3CMxnEguLCQ=" + }, + "source": { + "$ref": "AAAAAAGL3CMxnEguLCQ=" + }, + "target": { + "$ref": "AAAAAAGLpAzboB41ECQ=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL++fe3kQi84s=", + "_parent": { + "$ref": "AAAAAAGL3CMxnEguLCQ=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL++fe3kQjPRk=", + "_parent": { + "$ref": "AAAAAAGL++fe3kQi84s=" + }, + "reference": { + "$ref": "AAAAAAGL3CMxnEguLCQ=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL++fe3kQkqMw=", + "_parent": { + "$ref": "AAAAAAGL++fe3kQi84s=" + }, + "reference": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL++hbOMaLLhI=", + "_parent": { + "$ref": "AAAAAAGL3CMxnEguLCQ=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL++hbOMaMnnU=", + "_parent": { + "$ref": "AAAAAAGL++hbOMaLLhI=" + }, + "reference": { + "$ref": "AAAAAAGL3CMxnEguLCQ=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL++hbOMaN3HA=", + "_parent": { + "$ref": "AAAAAAGL++hbOMaLLhI=" + }, + "reference": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "navigable": "navigable" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGL3EA5pS43tRY=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "CoachManager", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL3EE9vyQmH2s=", + "_parent": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3EE9wCQnjEA=", + "_parent": { + "$ref": "AAAAAAGL3EE9vyQmH2s=" + }, + "reference": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL3EE9wCQorTo=", + "_parent": { + "$ref": "AAAAAAGL3EE9vyQmH2s=" + }, + "reference": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL8lOXnTwD+Jk=", + "_parent": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lOXnTwEKpY=", + "_parent": { + "$ref": "AAAAAAGL8lOXnTwD+Jk=" + }, + "reference": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lOXnTwFBh4=", + "_parent": { + "$ref": "AAAAAAGL8lOXnTwD+Jk=" + }, + "reference": { + "$ref": "AAAAAAGL8e8PLkVkOWg=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGL+8nwg3agVXE=", + "_parent": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "source": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "target": { + "$ref": "AAAAAAGL+8nHIFKZGGE=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL+8rOHkkjQa8=", + "_parent": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL+8rOH0kk5Us=", + "_parent": { + "$ref": "AAAAAAGL+8rOHkkjQa8=" + }, + "reference": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL+8rOH0kl1Ag=", + "_parent": { + "$ref": "AAAAAAGL+8rOHkkjQa8=" + }, + "reference": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGL+9dNnjZFrD0=", + "_parent": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "source": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "target": { + "$ref": "AAAAAAGLw7v65PPlleU=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGL8e8PLkVkOWg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "UserRepository", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL8lO7+GO/UQE=", + "_parent": { + "$ref": "AAAAAAGL8e8PLkVkOWg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lO7+GPAblU=", + "_parent": { + "$ref": "AAAAAAGL8lO7+GO/UQE=" + }, + "reference": { + "$ref": "AAAAAAGL8e8PLkVkOWg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lO7+GPBs+g=", + "_parent": { + "$ref": "AAAAAAGL8lO7+GO/UQE=" + }, + "reference": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGL+9Ru2TbDJ+A=", + "_parent": { + "$ref": "AAAAAAGL8e8PLkVkOWg=" + }, + "source": { + "$ref": "AAAAAAGL8e8PLkVkOWg=" + }, + "target": { + "$ref": "AAAAAAGL+9PoMtQG54g=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGL+8w3liysleM=", + "_parent": { + "$ref": "AAAAAAGL8e8PLkVkOWg=" + }, + "name": "users", + "visibility": "private", + "type": "array" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGL8e9J0FdHmso=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "AuthService", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL8lNUk/Ru41c=", + "_parent": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lNUk/RvtFM=", + "_parent": { + "$ref": "AAAAAAGL8lNUk/Ru41c=" + }, + "reference": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lNUk/RwcBM=", + "_parent": { + "$ref": "AAAAAAGL8lNUk/Ru41c=" + }, + "reference": { + "$ref": "AAAAAAGL3EA5pS43tRY=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL8lNl2wXc834=", + "_parent": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lNl2wXdgpY=", + "_parent": { + "$ref": "AAAAAAGL8lNl2wXc834=" + }, + "reference": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lNl2wXekOo=", + "_parent": { + "$ref": "AAAAAAGL8lNl2wXc834=" + }, + "reference": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL+8pYQv2ZiyI=", + "_parent": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL+8pYQv2aok8=", + "_parent": { + "$ref": "AAAAAAGL+8pYQv2ZiyI=" + }, + "reference": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL+8pYQv2bihk=", + "_parent": { + "$ref": "AAAAAAGL+8pYQv2ZiyI=" + }, + "reference": { + "$ref": "AAAAAAGL8e8PLkVkOWg=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL+9YU26wTNo0=", + "_parent": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL+9YU26wUZOY=", + "_parent": { + "$ref": "AAAAAAGL+9YU26wTNo0=" + }, + "reference": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL+9YU26wVXhc=", + "_parent": { + "$ref": "AAAAAAGL+9YU26wTNo0=" + }, + "reference": { + "$ref": "AAAAAAGL+82j2lEaUGY=" + }, + "navigable": "navigable" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGL8fAHTJcd2Kc=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "UserManager", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL8lNzphcjVzA=", + "_parent": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lNzphckA0Q=", + "_parent": { + "$ref": "AAAAAAGL8lNzphcjVzA=" + }, + "reference": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lNzphcloeU=", + "_parent": { + "$ref": "AAAAAAGL8lNzphcjVzA=" + }, + "reference": { + "$ref": "AAAAAAGLo/fkFXnWSO0=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL8lOuHlPLHnQ=", + "_parent": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lOuHlPMMOQ=", + "_parent": { + "$ref": "AAAAAAGL8lOuHlPLHnQ=" + }, + "reference": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lOuHlPNza4=", + "_parent": { + "$ref": "AAAAAAGL8lOuHlPLHnQ=" + }, + "reference": { + "$ref": "AAAAAAGL8e8PLkVkOWg=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGL+8oAEIaDan4=", + "_parent": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + }, + "source": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + }, + "target": { + "$ref": "AAAAAAGL+8nHIFKZGGE=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL+8tZ967YT0Q=", + "_parent": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL+8tZ967ZQD0=", + "_parent": { + "$ref": "AAAAAAGL+8tZ967YT0Q=" + }, + "reference": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL+8tZ967azMY=", + "_parent": { + "$ref": "AAAAAAGL+8tZ967YT0Q=" + }, + "reference": { + "$ref": "AAAAAAGL8e9J0FdHmso=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGL+9c7CRuveJk=", + "_parent": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + }, + "source": { + "$ref": "AAAAAAGL8fAHTJcd2Kc=" + }, + "target": { + "$ref": "AAAAAAGLw7v65PPlleU=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGL8kwWMOvqRNg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "EntrainementRepository", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL8kz1eGm5YVc=", + "_parent": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "name": "*lesEntrainements", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8kz1eGm6iIc=", + "_parent": { + "$ref": "AAAAAAGL8kz1eGm5YVc=" + }, + "reference": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8kz1eWm7nGc=", + "_parent": { + "$ref": "AAAAAAGL8kz1eGm5YVc=" + }, + "reference": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGL+9Se8MmZLdo=", + "_parent": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "source": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "target": { + "$ref": "AAAAAAGL+9O3E77+iB4=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL++NtKh6cvUs=", + "_parent": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL++NtKh6dcW8=", + "_parent": { + "$ref": "AAAAAAGL++NtKh6cvUs=" + }, + "reference": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL++NtKh6eGOg=", + "_parent": { + "$ref": "AAAAAAGL++NtKh6cvUs=" + }, + "reference": { + "$ref": "AAAAAAGL8lJC3yKeddk=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL++Z1IOrl2bA=", + "_parent": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "name": "entrainementList", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL++Z1IOrmj24=", + "_parent": { + "$ref": "AAAAAAGL++Z1IOrl2bA=" + }, + "reference": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL++Z1IOrnew4=", + "_parent": { + "$ref": "AAAAAAGL++Z1IOrl2bA=" + }, + "reference": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + }, + "navigable": "navigable" + }, + "visibility": "private" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGL8lJC3yKeddk=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Entrainement", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGL8lLYKYP6eHU=", + "_parent": { + "$ref": "AAAAAAGL8lJC3yKeddk=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lLYKYP7ejM=", + "_parent": { + "$ref": "AAAAAAGL8lLYKYP6eHU=" + }, + "reference": { + "$ref": "AAAAAAGL8lJC3yKeddk=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGL8lLYKYP8bHc=", + "_parent": { + "$ref": "AAAAAAGL8lLYKYP6eHU=" + }, + "reference": { + "$ref": "AAAAAAGL8kwWMOvqRNg=" + }, + "navigable": "navigable" + } + } + ], + "stereotype": "interfaces", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGL++Q3gS35XNs=", + "_parent": { + "$ref": "AAAAAAGL8lJC3yKeddk=" + }, + "name": "Attribute1", + "type": "" + } + ] + }, + { + "_type": "UMLModel", + "_id": "AAAAAAGL8oOYXQr/AQc=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Models" + }, + { + "_type": "UMLPackage", + "_id": "AAAAAAGL8oPx1E8rJeI=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Package1" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGL8qWWJj6joa0=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Responsabilité", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGL8qXHfUcNtPA=", + "_parent": { + "$ref": "AAAAAAGL8qWWJj6joa0=" + }, + "name": "But principale de la classe", + "type": "" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGL+8nHIFKZGGE=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "DataManager" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGL+82j2lEaUGY=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "IGenericRepository", + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGL+84tpm4nUBQ=", + "_parent": { + "$ref": "AAAAAAGL+82j2lEaUGY=" + }, + "name": "getItemById", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+86GNHNuQcE=", + "_parent": { + "$ref": "AAAAAAGL+84tpm4nUBQ=" + }, + "name": "id", + "type": "int" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL+86cPHlwc+E=", + "_parent": { + "$ref": "AAAAAAGL+82j2lEaUGY=" + }, + "name": "getNbItems", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+88J8ZbWW34=", + "_parent": { + "$ref": "AAAAAAGL+86cPHlwc+E=" + }, + "type": "int", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL+86fO3zWI0s=", + "_parent": { + "$ref": "AAAAAAGL+82j2lEaUGY=" + }, + "name": "getItems", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9DcKZwZz84=", + "_parent": { + "$ref": "AAAAAAGL+86fO3zWI0s=" + }, + "name": "index", + "type": "int" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9DcLJwaaCk=", + "_parent": { + "$ref": "AAAAAAGL+86fO3zWI0s=" + }, + "name": "count", + "type": "int" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9DcLJwbnOI=", + "_parent": { + "$ref": "AAAAAAGL+86fO3zWI0s=" + }, + "name": "orderingPropertyName", + "type": "?String" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9DcLZwcFiA=", + "_parent": { + "$ref": "AAAAAAGL+86fO3zWI0s=" + }, + "name": "descending", + "type": "bool" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9DcLZwdTV8=", + "_parent": { + "$ref": "AAAAAAGL+86fO3zWI0s=" + }, + "type": "array", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL+86ncIA8/pY=", + "_parent": { + "$ref": "AAAAAAGL+82j2lEaUGY=" + }, + "name": "getItemsByName", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9H4NaLkbQE=", + "_parent": { + "$ref": "AAAAAAGL+86ncIA8/pY=" + }, + "name": "substring", + "type": "String" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9H4N6Llqjg=", + "_parent": { + "$ref": "AAAAAAGL+86ncIA8/pY=" + }, + "name": "index", + "type": "int" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9H4N6LmObw=", + "_parent": { + "$ref": "AAAAAAGL+86ncIA8/pY=" + }, + "name": "count", + "type": "int" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9H4N6LnQEw=", + "_parent": { + "$ref": "AAAAAAGL+86ncIA8/pY=" + }, + "name": "orderingPropertyName", + "type": "?String" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9H4OKLo8r8=", + "_parent": { + "$ref": "AAAAAAGL+86ncIA8/pY=" + }, + "name": "descending", + "type": "bool" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9H4OKLph44=", + "_parent": { + "$ref": "AAAAAAGL+86ncIA8/pY=" + }, + "type": "?array", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL+86p3oOiaNc=", + "_parent": { + "$ref": "AAAAAAGL+82j2lEaUGY=" + }, + "name": "getItemsByName", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9JcOrExLOI=", + "_parent": { + "$ref": "AAAAAAGL+86p3oOiaNc=" + }, + "name": "substring", + "type": "String" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9JcPLEybNk=", + "_parent": { + "$ref": "AAAAAAGL+86p3oOiaNc=" + }, + "name": "index", + "type": "int" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9JcPbEz+zo=", + "_parent": { + "$ref": "AAAAAAGL+86p3oOiaNc=" + }, + "name": "count", + "type": "int" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9JcPbE0XQI=", + "_parent": { + "$ref": "AAAAAAGL+86p3oOiaNc=" + }, + "name": "orderingPropertyName", + "type": "?String" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9JcPbE1q0s=", + "_parent": { + "$ref": "AAAAAAGL+86p3oOiaNc=" + }, + "name": "descending", + "type": "bool" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL+86sTYcItmQ=", + "_parent": { + "$ref": "AAAAAAGL+82j2lEaUGY=" + }, + "name": "updateItem", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9LXLLf8t0A=", + "_parent": { + "$ref": "AAAAAAGL+86sTYcItmQ=" + }, + "name": "oldItem", + "type": "" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9LXLrf9C5A=", + "_parent": { + "$ref": "AAAAAAGL+86sTYcItmQ=" + }, + "name": "newItem", + "type": "" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9LXLrf+Tzg=", + "_parent": { + "$ref": "AAAAAAGL+86sTYcItmQ=" + }, + "type": "void", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGL+86ui4puvnk=", + "_parent": { + "$ref": "AAAAAAGL+82j2lEaUGY=" + }, + "name": "deleteItem", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9MCVL4Dc40=", + "_parent": { + "$ref": "AAAAAAGL+86ui4puvnk=" + }, + "name": "item", + "type": "" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAGL+9MCVb4E2Hk=", + "_parent": { + "$ref": "AAAAAAGL+86ui4puvnk=" + }, + "type": "bool", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGL+9O3E77+iB4=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "ITrainingRepository", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGL+9RSGRB8+vM=", + "_parent": { + "$ref": "AAAAAAGL+9O3E77+iB4=" + }, + "source": { + "$ref": "AAAAAAGL+9O3E77+iB4=" + }, + "target": { + "$ref": "AAAAAAGL+82j2lEaUGY=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGL+9PlDtA7iBo=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Class1" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGL+9PoMtQG54g=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "IUserRepository", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGL+9RdJBsWH7s=", + "_parent": { + "$ref": "AAAAAAGL+9PoMtQG54g=" + }, + "source": { + "$ref": "AAAAAAGL+9PoMtQG54g=" + }, + "target": { + "$ref": "AAAAAAGL+82j2lEaUGY=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGL+9Qa4uFEN74=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Class2" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGL++aCGgpsPN4=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "EntrainementSportif", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGL++arORiCGus=", + "_parent": { + "$ref": "AAAAAAGL++aCGgpsPN4=" + }, + "source": { + "$ref": "AAAAAAGL++aCGgpsPN4=" + }, + "target": { + "$ref": "AAAAAAGLrxb6dUqeBKo=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGMBpdAZQuSkhA=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "IFileReader" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGMBpd9ig65uB8=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "AthlketeMgr", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGMBperGiDRgno=", + "_parent": { + "$ref": "AAAAAAGMBpd9ig65uB8=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGMBperGiDSkv4=", + "_parent": { + "$ref": "AAAAAAGMBperGiDRgno=" + }, + "reference": { + "$ref": "AAAAAAGMBpd9ig65uB8=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGMBperGiDT2kA=", + "_parent": { + "$ref": "AAAAAAGMBperGiDRgno=" + }, + "reference": { + "$ref": "AAAAAAGMBpdAZQuSkhA=" + }, + "navigable": "navigable" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGMBpe7/CSbj9A=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Fit", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGMBpfYWi3Xomc=", + "_parent": { + "$ref": "AAAAAAGMBpe7/CSbj9A=" + }, + "source": { + "$ref": "AAAAAAGMBpe7/CSbj9A=" + }, + "target": { + "$ref": "AAAAAAGMBpdAZQuSkhA=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGMBpo0VdxaKM0=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "IAnalyseur" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGMBqILMC7uP0g=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Analyseur", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGMBsEyOCaJKLw=", + "_parent": { + "$ref": "AAAAAAGMBqILMC7uP0g=" + }, + "source": { + "$ref": "AAAAAAGMBqILMC7uP0g=" + }, + "target": { + "$ref": "AAAAAAGMBpo0VdxaKM0=" + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/Documents/Diagramme/DiagrammeDeClasses/README_DIAGRAMME.md b/Documents/Diagramme/DiagrammeDeClasses/README_DIAGRAMME.md new file mode 100644 index 00000000..5ee68278 --- /dev/null +++ b/Documents/Diagramme/DiagrammeDeClasses/README_DIAGRAMME.md @@ -0,0 +1,203 @@ +[retour au README.md](../../../README.md) +[Retour aux Documents](../../README_DOCUMENTS.md) +[Retour au diagramme de classes](../README_DIAGRAMMES.md) + +# Introduction au Diagramme de Classes : Plateforme de Gestion d'Activités Sportives + +Bienvenue dans l'écosystème dynamique de notre plateforme de gestion d'activités sportives ! Ce diagramme de classes offre une vision complète des entités et des relations qui façonnent l'expérience des utilisateurs au sein de notre système. + +**Entités Principales :** + +- **Utilisateur (User) :** Représente les individus inscrits sur notre plateforme, avec des détails personnels tels que le nom, le prénom, l'email, etc. Chaque utilisateur a un rôle spécifique (Athlete, Coach) qui détermine ses interactions au sein de l'application. + +- **Rôle (Role) :** Classe abstraite qui définit les rôles spécifiques des utilisateurs (Athlete, Coach). Contient des méthodes pour gérer les amis, les entraînements, et les demandes. + +- **Athlète (Athlete) :** Spécialisation de la classe Role, représentant les utilisateurs actifs qui enregistrent des activités sportives, des statistiques, et interagissent avec d'autres athlètes. + +- **Activité (Activite) :** Contient des détails sur une activité sportive tels que le type, la date, la durée, la fréquence cardiaque, etc. + +- **Notification (Notification) :** Messages pour informer les utilisateurs des actions importantes. + +- **Entraînement (Entrainement) :** Sessions planifiées d'activités physiques avec des détails comme la date, la localisation, la description, et les retours. + +- **Statistique (Statistique) :** Informations détaillées sur les performances sportives d'un athlète, comprenant la distance totale, le poids, le temps total, la fréquence cardiaque, etc. + +- **Source de Données (SourceDonnees) :** Représente les sources utilisées pour collecter des données, telles que les montres connectées. + +**Relations Clés :** + +- Les Utilisateurs ont un rôle spécifique (Athlete, Coach) qui détermine leurs fonctionnalités. + +- Un Athlète peut enregistrer plusieurs Activités, Statistiques, et interagir avec différentes Sources de Données. + +- Les Entraînements sont liés aux Utilisateurs, permettant une planification efficace. + +- Les Notifications informent les Utilisateurs des événements importants. + +Explorez ce diagramme pour comprendre comment notre plateforme offre une expérience complète, de la gestion des utilisateurs à l'enregistrement des activités sportives et au suivi des performances. + + +```plantuml +@startuml +class User { + - id: int + - username: String + - nom: string + - prenom: string + - email: string + - motDePasse: string + - sexe: string + - taille: float + - poids: float + - dateNaissance: \DateTime + + getId(): int + + getUsername(): string + + setUsername(string $username): void + + setId(int $id): void + + getNom(): string + + setNom(string $nom): void + + getPrenom(): string + + setPrenom(string $prenom): void + + getEmail(): string + + setEmail(string $email): void + + getMotDePasse(): string + + setMotDePasse(string $motDePasse): void + + getSexe(): string + + setSexe(string $sexe): void + + getTaille(): float + + setTaille(float $taille): void + + getPoids(): float + + setPoids(float $poids): void + + getDateNaissance(): \DateTime + + setDateNaissance(\DateTime $dateNaissance): void + + getRole(): Role + + setRole(Role $role): void + + addNotification($notification): void + + deleteNotification($index): void + + isValidPassword(string $password): bool + + __toString(): string +} +abstract class Role { + - id: int + - usersRequests: array + + getUsersList(): array + + getUsersRequests(): array + + addUsersRequests(RelationshipRequest $request): void + + removeRequest(RelationshipRequest $req): bool + + CheckAdd(User $user): bool + + addUser(User $user): bool + + removeUser(User $user): bool + + addTraining(Training $training): bool + + getTrainingsList(): array +} +abstract class Coach extends Role { +} +class CoachAthlete extends Coach { + + CheckAdd(User $user): bool +} +class Athlete extends Role { + + getActivities(): array + + addActivity(Activity $myActivity): bool + + CheckAdd(User $user): bool +} +class Activite { + - idActivity: int + - type: String + - date: \DateTime + - heureDebut: \DateTime + - heureFin: \DateTime + - effortRessenti: int + - variability: float + - variance: float + - standardDeviation: float + - average: int + - maximum: int + - minimum: int + - avrTemperature: float + - hasAutoPause: bool + + getIdActivity(): int + + getType(): String + + getDate(): \DateTime + + getHeureDebut(): \DateTime + + getHeureFin(): \DateTime + + getEffortRessenti(): int + + getVariability(): float + + getVariance(): float + + getStandardDeviation(): float + + getAverage(): float + + getMaximum(): int + + getMinimum(): int + + getAvrTemperature(): float + + setType(String $type): void + + setEffortRessenti(int $effortRessenti): void + + __toString(): String +} +class Notification { + - type: string + - message: string + - toUserId: int + + getType(): string + + setType(string $type): void + + getMessage(): string + + setMessage(string $message): void + + getToUserId(): int + + setToUserId(int $toUserId): void + + __construct(int $toUserId,string $type, string $message) + + __toString(): string +} +class Entrainement { + - idTraining: int + - date: \DateTime + - latitude: float + - longitude: float + - description: String + - feedback: String + + getId(): int + + getDate(): \DateTime + + getLocation(): String + + getDescription(): String + + getFeedback(): String + + __toString(): String +} +class Statistique { + - idStat: int + - distanceTotale: float + - poids: float + - tempsTotal: time + - FCmoyenne: int + - FCmin: int + - FCmax: int + - cloriesBrulees: int + + getIdStat(): int + + getDistanceTotale(): float + + getPoids(): float + + getTempsTotal(): time + + getFCmoyenne(): int + + getFCmin(): int + + getFCmax(): int + + getCloriesBrulees(): int + + __toString(): String +} +class SourceDonnees { + - idSource: int + - nom: String + - type: String + - precision: enum + - dateDerniereUtilisation: \DateTime + + getIdSource(): int + + getNom(): String + + getType(): String + + getPrecision(): enum + + getDateDerniereUtilisation(): \DateTime + + __toString(): String +} +User -> Role : role +Role -> User : usersList +Athlete -> Statistique : statsList +Athlete -> Activite : activityList +Athlete -> SourceDonnees : sdList +User -> Notification : notificationList +User -> Entrainement : trainingsList +Activite -> SourceDonnees : maSource +@enduml +``` \ No newline at end of file diff --git a/Documents/Diagramme/DiagrammeDeClasses/README_accesDonnees.md b/Documents/Diagramme/DiagrammeDeClasses/README_accesDonnees.md new file mode 100644 index 00000000..c580460f --- /dev/null +++ b/Documents/Diagramme/DiagrammeDeClasses/README_accesDonnees.md @@ -0,0 +1,91 @@ +[retour au README.md](../../../README.md) +[Retour aux Documents](../../README_DOCUMENTS.md) +[Retour au diagramme de classes](../README_DIAGRAMMES.md) + +# Introduction au Diagramme de la Couche d'Accès aux Données + +Bienvenue dans le cœur de notre système, où les données prennent vie à travers des ensembles de données (repositories) structurés et performants. Ce diagramme met en lumière la conception de la couche d'accès aux données de notre application, offrant un aperçu clair de la gestion des entités clées telles que les utilisateurs, les notifications, les demandes de relations et les entraînements. + +**Principes Fondamentaux :** + +- **IGenericRepository :** Une abstraction générique établissant les contrats essentiels pour l'accès aux données. Définissant des opérations standardisées telles que la récupération, la mise à jour, l'ajout et la suppression d'entités. + +- **Interfaces Spécialisées :** Des interfaces telles que `IUserRepository`, `INotificationRepository`, `IRelationshipRequestRepository` et `ITrainingRepository` étendent les fonctionnalités génériques pour répondre aux besoins spécifiques de chaque entité. + +**Repositories Concrets :** + +- **UserRepository :** Gère les données relatives aux utilisateurs, permettant des opérations de récupération, de mise à jour et de suppression avec une efficacité optimale. + +- **NotificationRepository :** Responsable de la gestion des notifications, assurant un accès structuré et une manipulation sécurisée de ces informations cruciales. + +- **RelationshipRequestRepository :** Facilite la gestion des demandes de relations entre utilisateurs, garantissant une interaction claire et ordonnée. + +- **TrainingRepository :** Permet l'accès et la manipulation des données liées aux entraînements, facilitant le suivi des performances athlétiques. + +Explorez ce diagramme pour découvrir la robustesse de notre architecture de gestion des données, mettant en œuvre des pratiques de développement SOLID pour assurer une expérience utilisateur fiable et évolutive. + +```plantuml +@startuml couche_acces_aux_donnees +abstract class IGenericRepository { + + getItemById(int id) : object + + getNbItems() : int + + getItems(int index, int count, string orderingPropertyName, bool descending) : array + + getItemsByName(string substring, int index, int count, string orderingPropertyName, bool descending) : array + + getItemByName(string substring, int index, int count, string orderingPropertyName, bool descending) : object + + updateItem(oldItem, newItem) : void + + addItem(item) : void + + deleteItem(item) : bool +} +interface IUserRepository extends IGenericRepository { +} +interface INotificationRepository extends IGenericRepository { +} +interface IRelationshipRequestRepository extends IGenericRepository { +} +interface ITrainingRepository extends IGenericRepository { +} +class NotificationRepository implements INotificationRepository { + - notifications : array + + getItemById(int id) : object + + getNbItems() : int + + getItems(int index, int count, string orderingPropertyName, bool descending) : array + + getItemsByName(string substring, int index, int count, string orderingPropertyName, bool descending) : array + + getItemByName(string substring, int index, int count, string orderingPropertyName, bool descending) : object + + updateItem(oldItem, newItem) : void + + addItem(item) : void + + deleteItem(item) : bool +} +class RelationshipRequestRepository implements IRelationshipRequestRepository { + - requests : array + + getItemById(int id) : object + + getNbItems() : int + + getItems(int index, int count, string orderingPropertyName, bool descending) : array + + getItemsByName(string substring, int index, int count, string orderingPropertyName, bool descending) : array + + getItemByName(string substring, int index, int count, string orderingPropertyName, bool descending) : object + + updateItem(oldItem, newItem) : void + + addItem(item) : void + + deleteItem(item) : bool +} +class TrainingRepository implements ITrainingRepository { + - trainings : array + + getItemById(int id) : object + + getNbItems() : int + + getItems(int index, int count, string orderingPropertyName, bool descending) : array + + getItemsByDate(date, int index, int count, string orderingPropertyName, bool descending) : array + + updateItem(oldItem, newItem) : void + + addItem(item) : void + + deleteItem(item) : bool +} +class UserRepository implements IUserRepository { + - users : array + + getItemById(int id) : object + + getNbItems() : int + + getItems(int index, int count, string orderingPropertyName, bool descending) : array + + getItemsByName(string substring, int index, int count, string orderingPropertyName, bool descending) : array + + getItemByName(string substring, int index, int count, string orderingPropertyName, bool descending) : object + + updateItem(oldItem, newItem) : void + + addItem(item) : void + + deleteItem(item) : bool +} +@enduml +``` \ No newline at end of file diff --git a/Documents/Diagramme/DiagrammeDeClasses/README_issue016.md b/Documents/Diagramme/DiagrammeDeClasses/README_issue016.md new file mode 100644 index 00000000..035cde6d --- /dev/null +++ b/Documents/Diagramme/DiagrammeDeClasses/README_issue016.md @@ -0,0 +1,139 @@ +[retour au README.md](../../../README.md) +[Retour aux Documents](../../README_DOCUMENTS.md) +[Retour au diagramme de classes](../README_DIAGRAMMES.md) + +# Introduction au Diagramme de Classes : Statistiques pour Coach + +Bienvenue dans l'univers captivant de notre système de gestion d'activités sportives avec une mise au point spéciale sur les statistiques destinées aux coaches. Ce diagramme de classes offre une vue approfondie de la manière dont les utilisateurs, en particulier les athlètes et les coaches, interagissent avec les données de performance. + +**Entités Principales :** + +- **Utilisateur (User) :** Représente les individus inscrits sur notre plateforme, avec des détails personnels et un rôle spécifique dans l'écosystème sportif. + +- **Athlète (Athlete) :** Un type spécialisé d'utilisateur qui peut enregistrer des statistiques liées à ses activités sportives. + +- **Coach (Coach) :** Un rôle qui s'étend à partir de la classe abstraite Role, dédié à la gestion des athlètes et de leurs statistiques. + +- **Statistique (Statistique) :** Contient des informations détaillées sur les performances sportives d'un athlète, telles que la distance totale, le poids, le temps total, la fréquence cardiaque moyenne, minimale et maximale, ainsi que les calories brûlées. + +**Relations Clés :** + +- Les Utilisateurs ont un rôle spécifique (Athlete, Coach) qui influence leurs interactions au sein de la plateforme. + +- Un Coach peut gérer une liste d'athlètes et avoir accès à leurs statistiques. + +- Un Athlète peut enregistrer plusieurs statistiques liées à ses activités. + +**Objectif Principal :** + +- Permettre aux coaches d'accéder et de surveiller les statistiques détaillées de leurs athlètes, offrant ainsi un aperçu complet de leurs performances sportives. + +Explorez ce diagramme pour découvrir comment notre application crée une synergie entre les utilisateurs, les rôles, et les statistiques, contribuant ainsi à une expérience enrichissante dans le suivi des activités sportives. + + +```plantuml +@startuml +class Athlete { + + getAthlete(): Athlete + + getStatistic(): ?array + + getUsersList(): array + + getUserList(user: User): User + + CheckAdd(user: User): bool + + addUser(user: User): bool + + removeUser(user: User): bool +} + +abstract class Coach { + + abstract getUsersList(): ?array + + abstract getUserList(user: User): User +} + +class CoachAthlete { + + getUsersList(): ?array + + getUserList(user: User): User +} + +abstract class Role { + - int id + - array usersList + - TrainingRepository trainingRepository + + abstract __construct(trainingRepository: ?TrainingRepository) + + abstract getUsersList(): ?array + + abstract getUserList(user: User): User + + abstract getTraining(): ?TrainingRepository + + abstract getTrainingsList(): ?array + + abstract getTrainingList(training: Training): ?Training + + abstract CheckAdd(user: User): bool + + abstract CheckAddTraining(training: Training): bool + + abstract addUser(user: User): bool + + abstract removeUser(user: User): bool + + abstract addTraining(training: Training): bool + + abstract removeTraining(training: Training): bool +} + +class User { + - int id + - String username + - string nom + - string prenom + - string email + - string motDePasse + - string sexe + - float taille + - float poids + - DateTime dateNaissance + + __construct(id: int, username: String, nom: string, prenom: string, email: string, motDePasse: string, sexe: string, taille: float, poids: float, dateNaissance: DateTime, role: Role) + + getId(): int + + setId(id: int): void + + getUsername(): String + + setUsername(username: int): void + + getNom(): string + + setNom(nom: string): void + + getPrenom(): string + + setPrenom(prenom: string): void + + getEmail(): string + + setEmail(email: string): void + + getMotDePasse(): string + + setMotDePasse(motDePasse: string): void + + getSexe(): string + + setSexe(sexe: string): void + + getTaille(): float + + setTaille(taille: float): void + + getPoids(): float + + setPoids(poids: float): void + + getDateNaissance(): DateTime + + setDateNaissance(dateNaissance: DateTime): void + + getRole(): Role + + setRole(role: Role): void + + isValidPassword(password: string): bool + + __toString(): String +} + +class Statistique { + - idStat: int + - distanceTotale: float + - poids: float + - tempsTotal: time + - FCmoyenne: int + - FCmin: int + - FCmax: int + - cloriesBrulees: int + + getIdStat(): int + + getDistanceTotale(): float + + getPoids(): float + + getTempsTotal(): time + + getFCmoyenne(): int + + getFCmin(): int + + getFCmax(): int + + getCloriesBrulees(): int + + __toString(): String +} + +CoachAthlete --|> Coach +Coach --|> Role +Athlete --|> Role +User -> Role : role +Role -> User : usersList +Athlete -> Statistique : statsList +@enduml +```` diff --git a/Documents/Diagramme/DiagrammeDeClasses/README_issue022.md b/Documents/Diagramme/DiagrammeDeClasses/README_issue022.md new file mode 100644 index 00000000..77b8e832 --- /dev/null +++ b/Documents/Diagramme/DiagrammeDeClasses/README_issue022.md @@ -0,0 +1,92 @@ +[retour au README.md](../../../README.md) +[Retour aux Documents](../../README_DOCUMENTS.md) +[Retour au diagramme de classes](../README_DIAGRAMMES.md) + +# Diagramme de Classes : Gestion des Utilisateurs et Notifications + +Bienvenue dans le cœur de notre système, où la gestion des utilisateurs et des notifications prend vie à travers ce diagramme de classes. Explorez les relations et les fonctionnalités essentielles qui orchestrent l'interaction entre les utilisateurs, les demandes d'amis, et les notifications. + +**Entités Principales :** + +- **Utilisateur (User) :** Représente les individus inscrits sur notre plateforme, caractérisés par leur nom et établissant des liens d'amitié avec d'autres utilisateurs. + +- **Notification (Notification) :** Contient le texte informatif des notifications qui peuvent être émises par le système. + +- **Demande d'Ami (Ask) :** Modélise une demande d'amitié émise par un utilisateur en direction d'un autre. + +**Interfaces et Classes Abstraites :** + +- **INotifier :** Interface définissant la méthode `notify()`, implémentée par des classes concrètes pour gérer la notification aux observateurs. + +- **Observer :** Interface définissant la méthode `update()`, implémentée par les classes qui souhaitent être informées des changements dans un sujet observé. + +- **UserManager :** Classe abstraite gérant la logique métier liée aux utilisateurs, tels que l'ajout ou la suppression d'amis, la réponse aux demandes d'amis, et la récupération de la liste d'amis. + +- **IUserRepository :** Interface définissant les méthodes pour la recherche d'utilisateurs et l'ajout d'un nouvel utilisateur. + +**Relations Clés :** + +- Les utilisateurs peuvent avoir plusieurs amis et plusieurs notifications. + +- La classe UserManager est connectée à IUserRepository pour gérer les opérations liées aux utilisateurs. + +- Observer et Subject sont des composants du modèle de conception "Observer", permettant la notification efficace des changements dans le système. + +Plongez-vous dans ce diagramme pour découvrir comment notre application crée un écosystème social dynamique, permettant aux utilisateurs d'interagir, de rester informés et de développer des liens significatifs au sein de la communauté. + + +```plantuml +class User { + + name : string +} + +User "1" --> "*" User: friends +User "1" --> "*" Notification: notifications +User "1" --> "*" Ask: friendRequests +class Notification { + - text : string +} + +interface INotifier { + + notify() : void +} + +INotifier --|> Observer + +abstract class UserManager { + - currentUser : User + + deleteFriend(userId : int) : void + + addFriend(userId : int) : void + + respondToFriendRequest(requestId : int, choice : bool) : void + + getFriends(userId : int) : User[] +} + +class Ask { + - fromUser : int + - toUser : int +} + +Ask --|> Subject + +abstract class Subject { + + attach(o : Observer) : void + + detach(o : Observer) : void + + notify() : void +} + +Subject "1" --> "*" Observer +interface Observer { + + update() : void +} + +UserManager ..> User +UserManager o-- IUserRepository +UserManager o-- INotifier + +interface IUserRepository { + + findByUsername(username : string) : User + + addUser(user : User) : bool +} + +IUserRepository ..> User +``` \ No newline at end of file diff --git a/Documents/Diagramme/DiagrammeDeClasses/README_issue023.md b/Documents/Diagramme/DiagrammeDeClasses/README_issue023.md new file mode 100644 index 00000000..9c3dc5d8 --- /dev/null +++ b/Documents/Diagramme/DiagrammeDeClasses/README_issue023.md @@ -0,0 +1,201 @@ +[retour au README.md](../../../README.md) +[Retour aux Documents](../../README_DOCUMENTS.md) +[Retour au diagramme de classes](../README_DIAGRAMMES.md) + +# Introduction au Modèle de Données de l'Application + +L'architecture de données de notre application de suivi d'activités sportives repose sur un modèle robuste, avec des entités clés pour représenter les activités, les athlètes et les coachs. Découvrez les composants principaux de notre modèle de données : + +## Activité +L'entité Activité représente une session d'activité sportive avec des détails variés tels que le type d'activité, la date, la durée, l'effort ressenti, etc. Le `ActiviteEntity` encapsule ces données, tandis que le `ActiviteGateway` gère la communication avec la base de données pour les activités. + +## Athlète +L'entité Athlète représente un utilisateur de l'application qui participe à des activités sportives. Le `AthleteEntity` stocke les détails de l'athlète, et le `AtheletGateway` facilite l'accès et la gestion des données des athlètes. + +## Coach +L'entité Coach représente un utilisateur qui peut superviser et coacher d'autres athlètes. Le `CoachEntity` stocke les détails du coach, tandis que le `CoachGateway` gère les interactions avec la base de données. + +## Mapper +Les mappers, tels que `ActiviteMapper`, `AthleteMapper`, et `CoachMapper`, facilitent la conversion entre les entités et les modèles utilisés dans l'application. + +## Connexion à la Base de Données +La classe `Connection` étend de `PDO` et assure la connexion à la base de données. Chaque Gateway utilise cette connexion pour interagir avec la base de données. + + +```plantuml +@startuml +class ActiviteEntity { + - idActivite: int + - type: string + - date: string + - heureDebut: string + - heureFin: string + - effortRessenti: int + - variabilite: int + - variance: int + - ecartType: int + - moyenne: int + - maximum: int + - minimum: int + - temperatureMoyenne: int + + getIdActivite(): int + + getType(): string + + getDate(): string + + getHeureDebut(): string + + getHeureFin(): string + + getEffortRessenti(): int + + getVariabilite(): int + + getVariance(): int + + getEcartType(): int + + getMoyenne(): int + + getMaximum(): int + + getMinimum(): int + + getTemperatureMoyenne(): int + + setIdActivite(idActivite: int): void + + setType(type: string): void + + setDate(date: string): void + + setHeureDebut(heureDebut: string): void + + setHeureFin(heureFin: string): void + + setEffortRessenti(effortRessenti: int): void + + setVariabilite(variabilite: int): void + + setVariance(variance: int): void + + setEcartType(ecartType: int): void + + setMoyenne(moyenne: int): void + + setMaximum(maximum: int): void + + setMinimum(minimum: int): void + + setTemperatureMoyenne(temperatureMoyenne: int): void +} +class ActiviteGateway { + + __construct(connection: Connection) + + getActivite(): ?array + + getActiviteById(activiteId: int): ?array + + getActiviteByType(type: string): ?array + + getActiviteByDate(date: string): ?array + + getActiviteByTimeRange(startTime: string, endTime: string): ?array + + getActiviteByEffort(effortRessenti: int): ?array + + getActiviteByVariability(variabilite: int): ?array + + getActiviteByTemperature(temperatureMoyenne: int): ?array + + addActivite(activite: ActiviteEntity): bool + + updateActivite(oldActivite: ActiviteEntity, newActivite: ActiviteEntity): bool + + deleteActivite(idActivite: int): bool +} +class ActiviteMapper { + + map(data: array): ActiviteEntity + + ActiviteEntityToModel(activiteEntity: ActiviteEntity): Activite +} +class AthleteEntity { + - idAthlete: int + - nom: string + - prenom: string + - email: string + - sexe: string + - taille: float + - poids: float + - motDePasse: string + - dateNaissance: string + + getIdAthlete(): int + + getNom(): string + + getPrenom(): string + + getEmail(): string + + getSexe(): string + + getTaille(): float + + getPoids(): float + + getMotDePasse(): string + + getDateNaissance(): string + + setIdAthlete(idAthlete: int): void + + setNom(nom: string): void + + setPrenom(prenom: string): void + + setEmail(email: string): void + + setSexe(sexe: string): void + + setTaille(taille: float): void + + setPoids(poids: float): void + + setMotDePasse(motDePasse: string): void + + setDateNaissance(dateNaissance: string): void +} +class AtheletGateway { + + __construct(connection: Connection) + + getAthlete(): ?array + + getAthleteById(userId: int): ?array + + getAthleteByName(name: string): ?array + + getAthleteByFirstName(firstName: string): ?array + + getAthleteByEmail(email: string): ?array + + getAthleteByGender(gender: string): ?array + + getAthleteByHeight(height: int): ?array + + getAthleteByWeight(weight: int): ?array + + getAthleteByBirthDate(birthdate: string): ?array + + addAthlete(athlete: AthleteEntity): bool + + updateAthlete(oldAthlete: AthleteEntity, newAthlete: AthleteEntity): bool + + deleteAthlete(idAthlete: int): bool +} +class AthleteMapper { + + fromSqlToEntity(data: array): array + + athleteEntityToModel(athleteEntity: AthleteEntity): User + + athleteToEntity(user: User): AthleteEntity +} +class CoachEntity { + - idCoach: int + - nom: string + - prenom: string + - email: string + - sexe: string + - taille: float + - poids: float + - motDePasse: string + - dateNaissance: string + + getIdCoach(): int + + getNom(): string + + getPrenom(): string + + getEmail(): string + + getSexe(): string + + getTaille(): float + + getPoids(): float + + getMotDePasse(): string + + getDateNaissance(): string + + setIdCoach(idCoach: int): void + + setNom(nom: string): void + + setPrenom(prenom: string): void + + setEmail(email: string): void + + setSexe(sexe: string): void + + setTaille(taille: float): void + + setPoids(poids: float): void + + setMotDePasse(motDePasse: string): void + + setDateNaissance(dateNaissance: string): void +} +class CoachGateway { + + __construct(connection: Connection) + + getCoach(): ?array + + getCoachById(userId: int): ?array + + getCoachByName(name: string): ?array + + getCoachByFirstName(firstName: string): ?array + + getCoachByEmail(email: string): ?array + + getCoachByGender(gender : string): ?array + + getCoachByHeight(height: int): ?array + + getCoachByBirthDate(birthdate: string): ?array + + addCoach(coach: CoachEntity): bool + + updateCoach(oldCoach: CoachEntity, newCoach: CoachEntity): bool + + deleteCoach(idCoach: int): bool +} +class CoachMapper { + + map(data: array): CoachEntity + + CoachEntityToModel(coachEntity: CoachEntity): User + + CoachToEntity(user: User): CoachEntity +} +class Connection extends PDO { + - stmt + + __construct(dsn: string, username: string, password: string) + + executeQuery(query: string, parameters: array): bool + + executeWithErrorHandling(query: string, params: array): array + + getResults(): array +} + +Connection <- ActiviteGateway : connection +Connection <- AtheletGateway : connection +Connection <- CoachGateway : connection +AthleteMapper -> AthleteEntity +CoachMapper -> CoachEntity +ActiviteMapper -> ActiviteEntity +ActiviteMapper -> ActiviteGateway +CoachMapper -> CoachGateway +AthleteMapper -> AtheletGateway +@enduml +``` \ No newline at end of file diff --git a/Documents/Diagramme/DiagrammeDeClasses/README_issue028.md b/Documents/Diagramme/DiagrammeDeClasses/README_issue028.md new file mode 100644 index 00000000..b029361f --- /dev/null +++ b/Documents/Diagramme/DiagrammeDeClasses/README_issue028.md @@ -0,0 +1,137 @@ +[retour au README.md](../../../README.md) +[Retour aux Documents](../../README_DOCUMENTS.md) +[Retour au diagramme de classes](../README_DIAGRAMMES.md) + +# Diagramme de classes pour l'importation de fichiers .fit + +Bienvenue dans le monde de la gestion d'activités sportives avec notre application innovante ! Cette user story se concentre sur une fonctionnalité essentielle qui améliorera l'expérience des utilisateurs : l'importation de fichiers .fit. Nous avons conçu un diagramme de classes pour vous offrir une vision claire et structurée de la manière dont cette fonctionnalité est implémentée au sein de notre application. + +**Acteurs Principaux :** + +- Utilisateur (User) : Représente un individu inscrit sur notre plateforme, avec la capacité d'importer des fichiers .fit. +- Athlète (Athlete) : Un type spécialisé d'utilisateur, bénéficiant de fonctionnalités supplémentaires liées à la gestion d'activités sportives. + +**Entités Clés :** + +- Activité (Activity) : Représente une session d'activité physique, avec des détails tels que le type, la date, la durée, et plus encore. +- Gestionnaires (Managers) : Gérant différentes facettes de l'application, notamment les utilisateurs, les activités et les fichiers. + +**Fonctionnalité Clé :** + +- Importation de fichiers .fit : Permet aux utilisateurs de charger des données provenant de fichiers .fit, générés par des dispositifs de suivi d'activité. Ces fichiers contiennent des informations précieuses telles que la fréquence cardiaque, la distance parcourue et d'autres métriques essentielles. + +**Architecture :** + +- AuthService (Service d'Authentification) : Gère l'authentification des utilisateurs, garantissant un accès sécurisé à la fonction d'importation. +- UserManager (Gestionnaire d'Utilisateurs) : Gère les opérations liées aux utilisateurs, y compris l'importation de fichiers .fit. +ActivityManager (Gestionnaire d'Activités) : Responsable du stockage et de la gestion des activités importées. + +**Objectif :** + +Offrir aux utilisateurs, en particulier aux athlètes, la possibilité d'enrichir leur profil et de suivre leur performance en important des données détaillées à partir de fichiers .fit. + + +```plantuml +@startuml issue028_DiagrammeDeClasses +class Activite { + -idActivite:int + -type:String + -date:Date + -heureDebut:Date + -heureFin:Date + -effortRessenti:int + -variability:float + -variance:float + -standardDeviation:float + -average:float + -maximum:int + -minimum:int + -avrTemperature:float + -hasAutoPause:boolean + +getIdActivite():int + +getType():String + +getDate():Date + +getHeureDebut():Date + +getHeureFin():Date + +getEffortRessenti():int + +getVariability():float + +getVariance():float + +getStandardDeviation():float + +getAverage():float + +getMaximum():int + +getMinimum():int + +getAvrTemperature():float + +setType(type:String):void + +setEffortRessenti(effortRessenti:int):void + +__toString():String +} +class Role { + -id:int +} +class Athlete { + +getActivities():array + +addActivity(myActivity:Activity):boolean +} +class User { + -id:int + -username:String + -nom:String + -prenom:String + -email:String + -motDePasse:String + -sexe:String + -taille:float + -poids:float + -dateNaissance:Date + +getId():int + +setId(id:int):void + +getUsername():String + +setUsername(username:String):void + +getNom():String + +setNom(nom:String):void + +getPrenom():String + +setPrenom(prenom:String):void + +getEmail():String + +setEmail(email:String):void + +getMotDePasse():String + +setMotDePasse(motDePasse:String):void + +getSexe():String + +setSexe(sexe:String):void + +getTaille():float + +setTaille(taille:float):void + +getPoids():float + +setPoids(poids:float):void + +getDateNaissance():Date + +setDateNaissance(dateNaissance:Date):void + +getRole():Role + +setRole(role:Role):void + +isValidPassword(password:String):boolean + +__toString():String +} +class AthleteManager { + +getActivities():array +} +class ActivityManager { + +saveFitFileToJSON(monFichierFit:object):boolean + +uploadFile(type:string, effortRessenti:int, file_path_or_data:string|resource, options:array):boolean +} +class DataManager { +} +class UserManager { + +login(loginUser:string, passwordUser:string):boolean + +register(loginUser:string, passwordUser:string, data:array):boolean + +deconnecter():boolean +} + +User -> Role: role +Athlete -|> Role +DataManager -> UserManager: -userMgr +DataManager -> AthleteManager: -athleteMgr +DataManager -> ActivityManager: -activityMgr +UserManager -> AuthService: -authService +UserManager -> User: -currentUser +ActivityManager -> AuthService: -authService +Athlete -> Activite: listActivite +AthleteManager -> AuthService: -authService +@enduml +``` \ No newline at end of file diff --git a/Documents/Diagram/Analyse/Sequence/AjouterAmis.png b/Documents/Diagramme/DiagrammeDeSequence/AjouterAmis.png similarity index 100% rename from Documents/Diagram/Analyse/Sequence/AjouterAmis.png rename to Documents/Diagramme/DiagrammeDeSequence/AjouterAmis.png diff --git a/Documents/Diagramme/DiagrammeDeSequence/README_accepterAmi.md b/Documents/Diagramme/DiagrammeDeSequence/README_accepterAmi.md new file mode 100644 index 00000000..0d62e391 --- /dev/null +++ b/Documents/Diagramme/DiagrammeDeSequence/README_accepterAmi.md @@ -0,0 +1,50 @@ +[retour au README.md](../../../README.md) +[Retour aux Documents](../../README_DOCUMENTS.md) +[Retour au diagramme de classes](../README_DIAGRAMMES.md) + +# Introduction au Diagramme de Séquence : Gestion des Demandes d'Amis + +Bienvenue dans le processus dynamique de gestion des demandes d'amis au sein de notre application ! Ce diagramme de séquence met en évidence les étapes clés impliquées dans la gestion des demandes d'amis entre utilisateurs. + +**Acteurs Principaux :** + +- **Utilisateur (u) :** L'individu interagissant avec l'application, recevant et répondant aux demandes d'amis. + +**Flux d'Interaction :** + +1. **Réception d'une Demande d'Ami :** Lorsqu'un utilisateur reçoit une demande d'ami, le modèle (Model) notifie le contrôleur (Controller) de la nouvelle demande, spécifiant l'identifiant de l'utilisateur émetteur. + +2. **Affichage de la Demande d'Ami :** Le contrôleur transmet l'information à la vue (View), qui affiche la demande d'ami à l'utilisateur. + +3. **Affichage de la Page des Demandes d'Amis :** L'utilisateur visualise la page des demandes d'amis dans l'interface utilisateur. + +4. **Réponse à la Demande d'Ami :** L'utilisateur prend une décision quant à la demande d'ami, en répondant par un choix binaire (accepter ou refuser). + +5. **Enregistrement de la Réponse :** La vue (View) transmet la réponse de l'utilisateur au contrôleur, qui enregistre cette réponse. + +6. **Envoi de la Réponse :** Le contrôleur communique avec le modèle pour envoyer la réponse, indiquant si la demande a été acceptée (true) ou refusée (false). + +À travers ce diagramme de séquence, découvrez comment notre application gère efficacement le processus de gestion des demandes d'amis, offrant aux utilisateurs une expérience transparente et réactive lors de l'établissement de connexions sociales au sein de la plateforme. + +````plantuml +@startuml +actor User as u +boundary View as v +control Controller as c +entity Model as m + +m-->c: pendingRequests: Request[] + +c-->v: DisplayPendingRequests(pendingRequests) +v-->u: Show Friend Requests + +u->v: RespondToRequest(requestId, response) +v-->c: RecordResponse(requestId, response) + + c->m: UpdateRequestStatus(requestId, response) + m-->c: updateStatus: success/failure + c-->v: NotifyUpdateResult(updateStatus) + v-->u: Show Response Result + +@enduml +`````` \ No newline at end of file diff --git a/Documents/Diagramme/DiagrammeDeSequence/README_demandeAmi.md b/Documents/Diagramme/DiagrammeDeSequence/README_demandeAmi.md new file mode 100644 index 00000000..c5a1fa9d --- /dev/null +++ b/Documents/Diagramme/DiagrammeDeSequence/README_demandeAmi.md @@ -0,0 +1,31 @@ +[retour au README.md](../../../README.md) +[Retour aux Documents](../../README_DOCUMENTS.md) +[Retour au diagramme de classes](../README_DIAGRAMMES.md) + +# Introduction au Diagramme de Séquence : Recherche d'Amis + +Bienvenue dans le processus dynamique de recherche d'amis au sein de notre application ! Ce diagramme de séquence met en lumière les étapes clés impliquées lorsque les utilisateurs recherchent des amis en utilisant un pseudo spécifique. + +**Acteurs Principaux :** + +- **Utilisateur (u) :** L'individu interagissant avec l'application, initié à la recherche d'amis. + +**Flux d'Interaction :** + +1. **Accès à la Fonctionnalité de Recherche :** L'utilisateur déclenche la fonctionnalité de recherche d'amis depuis son interface utilisateur. + +2. **Saisie du Pseudo :** L'utilisateur entre le pseudo de l'ami qu'il souhaite rechercher. + +3. **Requête de Recherche :** La vue (View) transmet la demande de recherche au contrôleur (Controller), qui déclenche une requête GET au serveur pour récupérer la liste des amis correspondant au pseudo saisi. + +4. **Traitement de la Requête :** Le modèle (Model) récupère la liste d'amis correspondante en utilisant l'identifiant de l'utilisateur et notifie le contrôleur du résultat. + +5. **Notification des Utilisateurs :** Le modèle informe également les utilisateurs concernés (émetteur et destinataire) de l'action de recherche effectuée. + +6. **Rendu de la Vue :** Le contrôleur reçoit la liste d'amis du modèle et rend cette liste à la vue. + +7. **Affichage des Résultats :** La vue affiche les résultats de la recherche à l'utilisateur, montrant les amis qui correspondent au pseudo saisi. + +À travers ce diagramme de séquence, découvrez comment notre application facilite le processus de recherche d'amis, fournissant aux utilisateurs une interface conviviale et réactive pour élargir leur réseau social au sein de la plateforme. + +Diagramme de Séquence : Recherche d'Amis \ No newline at end of file diff --git a/Documents/Diagramme/DiagrammeDeSequence/README_issue021.md b/Documents/Diagramme/DiagrammeDeSequence/README_issue021.md new file mode 100644 index 00000000..0cb1e1bf --- /dev/null +++ b/Documents/Diagramme/DiagrammeDeSequence/README_issue021.md @@ -0,0 +1,41 @@ +[retour au README.md](../../../README.md) +[Retour aux Documents](../../README_DOCUMENTS.md) +[Retour au diagramme de classes](../README_DIAGRAMMES.md) + +# Introduction au Processus de Connexion sur la Plateforme + +Bienvenue sur notre plateforme de gestion d'activités sportives ! Pour offrir une expérience fluide et sécurisée, nous avons mis en place un processus de connexion intuitif. Découvrez comment accéder à votre compte ou créer un nouveau compte en quelques étapes simples. + +**Étapes du Processus :** + +1. **Demande de Page de Connexion :** L'utilisateur démarre en exprimant le désir de se connecter à la plateforme. + +2. **Vérification de la Connexion Préexistante :** Le système vérifie si l'utilisateur est déjà connecté. En cas de connexion active, l'utilisateur est redirigé directement vers sa page de compte. + +3. **Page de Connexion :** Si l'utilisateur n'est pas encore connecté, il est dirigé vers la page de connexion, où il peut saisir ses informations d'identification. + +4. **Choix pour les Utilisateurs Possédant un Compte :** Si l'utilisateur a déjà un compte, il peut fournir ses informations de connexion existantes. + +5. **Création de Compte pour les Nouveaux Utilisateurs :** Pour ceux qui n'ont pas encore de compte, l'option de création de compte est disponible. L'utilisateur peut fournir les détails nécessaires pour créer son compte. + +6. **Page de Création de Compte :** Une page dédiée guide l'utilisateur tout au long du processus de création de compte, lui permettant de saisir les informations nécessaires. + +7. **Validation et Connexion :** Une fois que les informations de connexion ou de création de compte sont fournies, le système procède à la vérification et connecte l'utilisateur à son compte. + + +```plantuml +actor User as u +u->Systeme : demandePageConnexion() +alt User déjà connecté + Systeme-->u : redirectionPageCompte() +end +Systeme-->u : PageConnexion() +alt User possède déjà un compte + u->Systeme:InfosConnexion() +else + u->Systeme:CreerCompte() + Systeme-->u :PageCreationCompte() + u->Systeme:InfosCreationCompte() +end +Systeme-->u :Connecter() +``` \ No newline at end of file diff --git a/Documents/Diagramme/DiagrammeDeSequence/README_suppressionAmi.md b/Documents/Diagramme/DiagrammeDeSequence/README_suppressionAmi.md new file mode 100644 index 00000000..f741e08a --- /dev/null +++ b/Documents/Diagramme/DiagrammeDeSequence/README_suppressionAmi.md @@ -0,0 +1,64 @@ +[retour au README.md](../../../README.md) +[Retour aux Documents](../../README_DOCUMENTS.md) +[Retour au diagramme de classes](../README_DIAGRAMMES.md) + +# Introduction au Diagramme de Séquence : Gestion des Amis + +Bienvenue dans le processus dynamique de gestion des amis au sein de notre application ! Ce diagramme de séquence met en lumière les interactions entre l'utilisateur et l'application, ainsi que le flux d'informations entre les différentes composantes du système. + +**Acteurs Principaux :** + +- **Utilisateur (u) :** L'individu interagissant avec l'application, souhaitant consulter et gérer sa liste d'amis. + +**Flux d'Interaction :** + +1. **Demande de la Page d'Amis :** L'utilisateur déclenche la demande de la page d'amis, amorçant le processus d'affichage de sa liste d'amis. + +2. **Récupération des Amis :** Le contrôleur (Controller) reçoit la demande et interagit avec le modèle (Model) pour récupérer la liste d'amis associée à l'identifiant de l'utilisateur. + + - *Cas de Récupération Réussi :* Si la récupération est réussie, le modèle transmet la liste d'amis au contrôleur. + + - *Cas d'Échec de Récupération :* En cas d'échec, une notification d'erreur est renvoyée. + +3. **Affichage de la Liste d'Amis :** Le contrôleur rend la vue (View) en utilisant la liste d'amis récupérée, qui est ensuite affichée à l'utilisateur. + +4. **Suppression d'un Ami :** L'utilisateur décide de supprimer un ami spécifique en cliquant sur l'option correspondante. + +5. **Traitement de la Suppression :** Le contrôleur, en réponse à la demande de suppression, envoie une requête au modèle pour effectuer la suppression de l'ami identifié par son identifiant utilisateur (idUser). + + - *Cas de Suppression Réussie :* Si la suppression est réussie, le modèle renvoie la liste d'amis mise à jour. + + - *Cas d'Échec de Suppression :* En cas d'échec, une notification d'erreur est renvoyée. + +6. **Affichage de la Liste d'Amis Mise à Jour :** La vue est mise à jour avec la nouvelle liste d'amis, qui est ensuite affichée à l'utilisateur. + +À travers ce diagramme de séquence, découvrez comment notre application gère de manière fluide et réactive les interactions de l'utilisateur avec sa liste d'amis, garantissant une expérience utilisateur cohérente et sans heurts. + +```plantuml +actor User as u +boundary View as v +control Controller as c +entity Model as m + +u->v: Request Friends Page +v->c: Get /Friends +c->m: getFriends(userId) +alt successful retrieval + m-->c: friendsList: User[] +else retrieval failed + m-->c: error +end +c-->v: renderView(friendsList) +v-->u: Display Friends + +u->v: clickDeleteFriend(idUser) +v->c: Post: deleteFriend(idUser) +c->m: deleteFriend(idUser) +alt successful deletion + m-->c: updatedFriendsList: User[] +else deletion failed + m-->c: error +end +c-->v: renderView(updatedFriendsList) +v-->u: Display Updated Friends +``` \ No newline at end of file diff --git a/Documents/Diagramme/README_DIAGRAMMES.md b/Documents/Diagramme/README_DIAGRAMMES.md new file mode 100644 index 00000000..ae7c906e --- /dev/null +++ b/Documents/Diagramme/README_DIAGRAMMES.md @@ -0,0 +1,23 @@ +[retour au README.md](../../README.md) +[Retour aux Documents](../README_DOCUMENTS.md) + +# Diagrammes nécéssaires à notre projet + +## Diagrammes de classes +- [issue016 - Statistiques coach ](DiagrammeDeClasses/README_issue016.md) +- [issue022 - Ajout des amis ](DiagrammeDeClasses/README_issue022.md) +- [issue023 - User Gateway ](DiagrammeDeClasses/README_issue023.md) +- [issue028 - Importation de fichiers .fit](DiagrammeDeClasses/README_issue028.md) +- [couche d'accès aux données](DiagrammeDeClasses/README_accesDonnees.md) +- [Diagramme général](DiagrammeDeClasses/README_DIAGRAMME.md) + +## Diagrammes de séquence +- [Envoi de demande d'ami](DiagrammeDeSequence/README_demandeAmi.md) +- [Accepter une demande d'ami](DiagrammeDeSequence/README_accepterAmi.md) +- [Supprimer un ami](DiagrammeDeSequence/README_suppressionAmi.md) +- [issue021 - Authentification ](DiagrammeDeSequence/README_issue021.md) + +## Diagrammes de cas d'utilisation +- [Cas d'utilisation pour la gestion du compte et des amitiés](CasUtilisations/README_gestionCompteAmitie.md) +- [Cas d'utilisation pour la gestion des activités et données](CasUtilisations/README_gestionActivites.md) +- [Cas d'utilisation pour la suivi d'une équipe sportive](CasUtilisations/README_coachSuiviSportif.md) \ No newline at end of file diff --git a/Documents/Gantt Antoine David Paul Kevin Antoine.mpp b/Documents/Gantt Antoine David Paul Kevin Antoine.mpp deleted file mode 100755 index e934e2dc..00000000 Binary files a/Documents/Gantt Antoine David Paul Kevin Antoine.mpp and /dev/null differ diff --git a/Documents/Gestion/BILAN_AVANCEMENT_2.pptx b/Documents/Gestion/BILAN_AVANCEMENT_2.pptx new file mode 100644 index 00000000..5405c57e Binary files /dev/null and b/Documents/Gestion/BILAN_AVANCEMENT_2.pptx differ diff --git a/Documents/ComparaisonGANTT.png b/Documents/Gestion/GANTT/ComparaisonGANTT.png similarity index 100% rename from Documents/ComparaisonGANTT.png rename to Documents/Gestion/GANTT/ComparaisonGANTT.png diff --git a/Documents/CompraraisonGANTT.xlsx b/Documents/Gestion/GANTT/CompraraisonGANTT.xlsx similarity index 100% rename from Documents/CompraraisonGANTT.xlsx rename to Documents/Gestion/GANTT/CompraraisonGANTT.xlsx diff --git a/Documents/Gestion/GANTT/GANTTPrevisionel-old.mpp b/Documents/Gestion/GANTT/GANTTPrevisionel-old.mpp new file mode 100644 index 00000000..5e328c54 Binary files /dev/null and b/Documents/Gestion/GANTT/GANTTPrevisionel-old.mpp differ diff --git a/Documents/Gestion/GANTT/GANTTPrevisionnelV2 - Copie.mpp b/Documents/Gestion/GANTT/GANTTPrevisionnelV2 - Copie.mpp new file mode 100755 index 00000000..1f5ad1a7 Binary files /dev/null and b/Documents/Gestion/GANTT/GANTTPrevisionnelV2 - Copie.mpp differ diff --git a/Documents/Gestion/GANTT/GANTTReel-old.mpp b/Documents/Gestion/GANTT/GANTTReel-old.mpp new file mode 100644 index 00000000..361aacef Binary files /dev/null and b/Documents/Gestion/GANTT/GANTTReel-old.mpp differ diff --git a/Documents/Gestion/GANTT/GANTTReel.mpp b/Documents/Gestion/GANTT/GANTTReel.mpp new file mode 100755 index 00000000..d716efa5 Binary files /dev/null and b/Documents/Gestion/GANTT/GANTTReel.mpp differ diff --git a/Documents/Gestion/GANTT/GANTTReel.pdf b/Documents/Gestion/GANTT/GANTTReel.pdf new file mode 100755 index 00000000..c8e22967 Binary files /dev/null and b/Documents/Gestion/GANTT/GANTTReel.pdf differ diff --git a/Documents/Gantt Antoine David Paul Kevin Antoine.pdf b/Documents/Gestion/GANTT/Gantt.pdf similarity index 100% rename from Documents/Gantt Antoine David Paul Kevin Antoine.pdf rename to Documents/Gestion/GANTT/Gantt.pdf diff --git a/Documents/Gestion/GANTT/README_GANTT.md b/Documents/Gestion/GANTT/README_GANTT.md new file mode 100644 index 00000000..4f5460e0 --- /dev/null +++ b/Documents/Gestion/GANTT/README_GANTT.md @@ -0,0 +1,13 @@ +[retour au README.md](../../../README.md) +[Retour aux Documents](../../README_DOCUMENTS.md) +[Retour à la Gestion](../README_GESTION.md) + +# GANTT +## Comparaison GANTT +- [Comparaison GANTT - Excel](CompraraisonGANTT.xlsx) + + + +## Gestion de projet - MSProject +- [Gestion de projet - MSProject](Gantt.mpp) +- [GANTT - PDF](Gantt.pdf) \ No newline at end of file diff --git a/Documents/Gestion/GANTT/couts.png b/Documents/Gestion/GANTT/couts.png new file mode 100755 index 00000000..3ec2f67b Binary files /dev/null and b/Documents/Gestion/GANTT/couts.png differ diff --git a/Documents/Gestion/PERT temps.xlsx b/Documents/Gestion/PERT/PERT.xlsx similarity index 100% rename from Documents/Gestion/PERT temps.xlsx rename to Documents/Gestion/PERT/PERT.xlsx diff --git a/Documents/PERT1.png b/Documents/Gestion/PERT/PERT1.png similarity index 100% rename from Documents/PERT1.png rename to Documents/Gestion/PERT/PERT1.png diff --git a/Documents/PERT2.png b/Documents/Gestion/PERT/PERT2.png similarity index 100% rename from Documents/PERT2.png rename to Documents/Gestion/PERT/PERT2.png diff --git a/Documents/Gestion/PERT/README_PERT.md b/Documents/Gestion/PERT/README_PERT.md new file mode 100644 index 00000000..ddc8e348 --- /dev/null +++ b/Documents/Gestion/PERT/README_PERT.md @@ -0,0 +1,10 @@ +[retour au README.md](../../../README.md) +[Retour aux Documents](../../README_DOCUMENTS.md) +[Retour à la Gestion](../README_GESTION.md) + +## PERT +- [PERT - Excel](PERT.xlsx) + +### PERT - Image + + \ No newline at end of file diff --git a/Documents/Gestion/README_GESTION.md b/Documents/Gestion/README_GESTION.md new file mode 100644 index 00000000..6497de0f --- /dev/null +++ b/Documents/Gestion/README_GESTION.md @@ -0,0 +1,10 @@ +[retour au README.md](../../README.md) +[Retour aux Documents](../README_DOCUMENTS.md) + +# Gestion de projet + +## PERT +- [PERT](PERT/README_PERT.md) + +## GANTT +- [GANTT](GANTT/README_GANTT.md) diff --git a/Documents/Partie prenantes/Parties prenantes.docx b/Documents/PartiePrenantes/partiesPrenantes.docx similarity index 100% rename from Documents/Partie prenantes/Parties prenantes.docx rename to Documents/PartiePrenantes/partiesPrenantes.docx diff --git a/Documents/Persona/Elsa Justin.pdf b/Documents/Personnas/ElsaJustin.pdf similarity index 100% rename from Documents/Persona/Elsa Justin.pdf rename to Documents/Personnas/ElsaJustin.pdf diff --git a/Documents/Persona/Ethan Hulist.pdf b/Documents/Personnas/EthanHulist.pdf similarity index 100% rename from Documents/Persona/Ethan Hulist.pdf rename to Documents/Personnas/EthanHulist.pdf diff --git a/Documents/Persona/Jules Gerdoli.pdf b/Documents/Personnas/JulesGerdoli.pdf similarity index 100% rename from Documents/Persona/Jules Gerdoli.pdf rename to Documents/Personnas/JulesGerdoli.pdf diff --git a/Documents/Personnas/README_PERSONNAS.md b/Documents/Personnas/README_PERSONNAS.md new file mode 100644 index 00000000..a7292b29 --- /dev/null +++ b/Documents/Personnas/README_PERSONNAS.md @@ -0,0 +1,8 @@ +[retour au README.md](../../README.md) +[Retour aux Documents](../README_DOCUMENTS.md) + + +# Personas +- [Personas Elsa Justin - PDF](ElsaJustin.pdf) +- [Personas Ethan Hulist - PDF](EthanHulist.pdf) +- [Personas Jules Gerdoli - PDF](JulesGerdoli.pdf) \ No newline at end of file diff --git a/Documents/Questionnaire/Questionnaire 1.docx b/Documents/Questionnaire/Questionnaire.docx similarity index 100% rename from Documents/Questionnaire/Questionnaire 1.docx rename to Documents/Questionnaire/Questionnaire.docx diff --git a/Documents/README_DOCUMENTS.md b/Documents/README_DOCUMENTS.md new file mode 100644 index 00000000..80bdd98c --- /dev/null +++ b/Documents/README_DOCUMENTS.md @@ -0,0 +1,11 @@ +[README.md](../README.md) +## SOMMAIRE +# Diagrammes +- [Diagrammes](Diagramme/README_DIAGRAMMES.md) + +# Personnas +- [Personnas](Personnas/README_PERSONNAS.md) + + +# Gestion de projet +- [Gestion de projet](Gestion/README_GESTION.md) diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..7f497918 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 antoine.perederii + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index 7e1db97d..d42495b8 100755 --- a/README.md +++ b/README.md @@ -1,26 +1,34 @@
+

HeartTrack

+ + +
-[Présentation](#présentation) | [Répartion](#répartition-du-git) | [Développement](#développement) | [Wiki](https://codefirst.iut.uca.fr/git/HeartTrack_Dev/Web/wiki) ---- +---   ![PHP](https://img.shields.io/badge/PHP-000?style=for-the-badge&logo=Php&logoColor=white&color=purple)   ![CSS](https://img.shields.io/badge/CSS-000?style=for-the-badge&logo=css3&logoColor=white&color=darkblue)   ![DOCKER](https://img.shields.io/badge/Docker-2496ED.svg?style=for-the-badge&logo=Docker&logoColor=white)   ![PostgreSQL](https://img.shields.io/badge/Postgresql-000?style=for-the-badge&logo=postgresql&logoColor=white&color=blue)   ![JAVASCRIPT](https://img.shields.io/badge/JavaScript-000?style=for-the-badge&logo=javascript&logoColor=white&color=yellow) -
+
+ ---- - -
+ + +# Table des matières +[Présentation](#présentation) | [Répartition du Git](#répartition-du-git) | [Documentation](#documentation) | [Prerequisites](#prerequisites) | [Getting Started](#getting-started) | [Features](#features) | [Ce que nous avons fait](#ce-que-nous-avons-fait) | [Fabriqué avec](#fabriqué-avec) | [Contributeurs](#contributeurs) | [Comment contribuer](#comment-contribuer) | [License](#license) | [Remerciements](#remerciements) -# HeartTrack ## Présentation @@ -29,20 +37,22 @@ ### Contexte -HeartTrack est une application web PHP et mobile Android destinée aux sportifs pour l'analyse de courbes cardiaques. L'objectif principal de cette application est de récupérer les données de fréquence cardiaque à partir d'une montre, de les afficher sous forme de courbes, d'identifier des patterns, de fournir des statistiques et de réaliser des prédictions liées à l'effort physique, à la chaleur, à la récupération, etc. +HeartTrack est une application web PHP et mobile Android destinée aux sportifs et aux coachs afin de permettre l'analyse de courbes de fréquences cardiaques et le suivi d'équipe sportive. L'objectif principal de cette application est de récupérer les données de fréquence cardiaque à partir de fichiers .FIT, de les afficher sous forme de courbes, d'identifier des paternes, de fournir des statistiques et de réaliser des prédictions liées à l'effort physique, à la chaleur, à la récupération, etc. ### Récapitulatif du Projet -Le projet HeartTrack, avec son application HeartTrack, vise à offrir une solution complète pour l'analyse des données de fréquence cardiaque, en mettant l'accent sur les besoins des sportifs. L'application sera capable de traiter et d'interpréter les données de manière intelligente, fournissant ainsi des informations précieuses pour optimiser les performances sportives et la santé. +Le projet HeartTrack, avec son application HeartTrack, vise à offrir une solution Open Source d'analyse des données de fréquence cardiaque, en mettant l'accent sur les besoins des sportifs et des coachs. L'application sera capable de traiter et d'interpréter les données de manière intelligente, fournissant ainsi des informations précieuses pour optimiser les performances sportives et la santé. ## Répartition du Git -[**Sources**](Sources) : **Code de l'application** +[**Sources**](Sources/) : **Code de l'application** -[**Documents**](Documents) : **Documentation de l'application** +[**Documents**](Documents/README_DOCUMENTS.md) : **Documentation de l'application et diagrammes** --- +[**Wiki**](https://codefirst.iut.uca.fr/git/HeartDev/Web/wiki/PHP) : **Wiki de notre projet (attendus PHP)** + +--- Le projet HeartTrack utilise un modèle de flux de travail Git (Gitflow) pour organiser le développement. Voici une brève explication des principales branches : @@ -50,70 +60,79 @@ Le projet HeartTrack utilise un modèle de flux de travail Git (Gitflow) pour or - **branche master** : La branche master est similaire à la branche de production, mais elle peut contenir des fonctionnalités en cours de développement qui sont presque prêtes pour une mise en production. -- **branche test** : Cette branche est utilisée pour déployer une version démo de l'application. Elle est mise à jour avec les dernières fonctionnalités et surtout la totalité de leurs test en développement. +- **branche test** : Cette branche est utilisée pour permettre différents tests sur l'application. - **branche issue** : Pour chaque problème (issue) que vous résolvez, vous devez créer une branche portant le nom de l'issue, par exemple, "issue_#32_nom" où 32 est le numéro de l'issue et nom est une description courte de l'issue. Une fois l'issue résolue, assurez-vous de mettre à jour le changelog et de créer une merge request. - - -## Développement - -### Travailler sur une Issue - -Si vous êtes amené à travailler sur une issue, suivez ces principes : - -1. Les issues sont créées dans le système de gestion de versions (Git), chaque issue ayant un numéro unique. - -2. Lorsque vous décidez de travailler sur une issue, attribuez-vous l'issue et créez une branche avec un nom correspondant à l'issue sous la forme suivante : "issue_#32_nom" où 32 est le numéro de l'issue et nom est son libellé. - -3. Une fois que vous avez résolu l'issue dans votre branche, assurez-vous de mettre à jour le changelog avec les modifications apportées. - -4. Ensuite, poussez votre branche sur le référentiel distant et créez une merge request pour que vos modifications soient examinées par les autres membres de l'équipe. - -## Prérequis - -Avant de commencer à travailler sur le projet HeartTrack, assurez-vous d'avoir les prérequis suivants installés : - -- Serveur web (par exemple, Apache) -- PHP (version recommandée) -- Base de données (par exemple, MySQL) -- Git - -## Installation - -Pour installer et exécuter le projet HeartTrack, suivez ces étapes : - -1. Clonez ce référentiel sur votre machine locale en utilisant la commande suivante : - `git clone https://codefirst.iut.uca.fr/git/FitDev/Projet_fit_web` - -2. Configurez votre environnement de développement avec les prérequis mentionnés ci-dessus. - -3. Copiez le fichier de configuration d'exemple et configurez les paramètres de l'application : - -cp config/config.example.php config/config.php -[pas encore la pour l'instant] -4. Importez la structure de la base de données à partir du fichier SQL fourni : - -mysql -u votre_nom_utilisateur -p < db_schema.sql ou psql comme vous le souhaitez - - -5. Démarrez votre serveur web et accédez à l'application via le navigateur. - -`npm run dev` -ou -`composer dev` e.q `php composer.phar dev` - -## Exécution - -Pour exécuter l'application, suivez les instructions d'installation ci-dessus. Une fois l'application configurée et le serveur web en cours d'exécution, accédez à l'application via votre navigateur web. - -## Déploiement en Démo - -Pour déployer une version de démonstration de l'application, utilisez la branche "demo" du référentiel. Cette branche est généralement mise à jour avec les dernières fonctionnalités en développement. - -## Déploiement en Production - -Pour déployer la version de production de l'application, utilisez la branche "prod" du référentiel. - ---- - -N'hésitez pas à contribuer au développement de HeartTrack en résolvant des issues ou en ajoutant de nouvelles fonctionnalités. Nous vous encourageons à suivre les principes et les pratiques décrites dans ce document pour un développement efficace et collaboratif. \ No newline at end of file +- **branche démo** : Cette branche est utilisée pour déployer une version démo de l'application. Elle est mise à jour avec les dernières fonctionnalités en développement. + +## Documentation +Documentation et informations à propos de `HearthTrack` disponible [ici]() + +### Prerequisites +* [Visual Studio code](https://code.visualstudio.com/) - exemple d'IDE gratuit +* [Git](https://git-scm.com/) - Versioning +* [XAMPP : X, Apache, MySQL, Perl, PHP](https://www.apachefriends.org/fr/index.html) - Langages + +## Getting Started +1. Cloner le répos +2. Faire un `composer install` dans le dossier `Sources/` +3. Importer la base de données `Sources/Database/hearttrack.sql` +4. Lancer le serveur Apache et MySQL +5. Lancer le projet avec `php -S localhost:8000 -t Sources/` +6. Ouvrir le navigateur et aller sur `localhost:8000/index.php` + +## Features +* [x] Import de fichier .fit +* [x] Ajout d'amis +* [x] Création de compte +* [x] Ajout d'athlete pour le coach +* [x] Création d'entrainement +* [x] Création de courbes +* [x] Gérer ses permissions + +## Ce que nous avons fait +* [x] PDO et Pattern Gateway +* [x] implémentation MVC et 2 contrôleurs +* [x] pattern Frontcontroleur sans routage +* [x] autoloader simple sans namespace ? +* [x] validation des entrées +* [x] vues dont vue erreur +* [x] partie administration ou équivalent +* [x] vues complètes bien segmentées et utilisation bootstrap +* [x] utilisation namespace et psr4 +* [x] moteur twig pour les vues +* [x] pattern Frontcontroleur avec routage +* [x] Javascript +* [x] pattern fabrique + +## Fabriqué avec +* [JetBrains Toolbox](https://www.jetbrains.com/fr-fr/toolbox-app/) - IDE +* [CodeFirst](https://codefirst.iut.uca.fr/) - Gitea + * [Drone](https://codefirst.iut.uca.fr/) - CI + * [SonarQube](https://codefirst.iut.uca.fr/sonar/) - Qualité +* [PHP 8](https://www.php.net/downloads) - Langage + * [html 5, CSS 3](https://developer.mozilla.org/fr/docs/Web/HTML) - Langage + * [Twig](https://twig.symfony.com/) - Langage +* [Doxygen](https://codefirst.iut.uca.fr/sonar/) - Documentation + + +## Contributeurs +* [Antoine PEREDERII](https://codefirst.iut.uca.fr/git/antoine.perederii) +* [Paul LEVRAULT](https://codefirst.iut.uca.fr/git/paul.levrault) +* [Kevin MONTEIRO](https://codefirst.iut.uca.fr/git/kevin.monteiro) +* [Antoine PINAGOT](https://codefirst.iut.uca.fr/git/antoine.pinagot) +* [David D'HALMEIDA](https://codefirst.iut.uca.fr/git/david.d_almeida) + +## Comment contribuer +1. Forkez le projet () +2. Créez votre branche (`git checkout -b feature/featureName`) +3. commit vos changements (`git commit -am 'Add some feature'`) +4. Push sur la branche (`git push origin feature/featureName`) +5. Créez une nouvelle Pull Request + + +## License +Ce projet est sous licence ``MIT`` - voir le fichier [LICENSE.md](LICENSE.md) pour plus d'informations. + +## Remerciements +Ce projet a été réalisé dans le cadre de la SAÉ Projet Web et Mobile de l'IUT de Clermont-Ferrand. \ No newline at end of file diff --git a/Sources/composer.json b/Sources/composer.json index a891bd8d..ac9236b7 100755 --- a/Sources/composer.json +++ b/Sources/composer.json @@ -9,12 +9,12 @@ "Repository\\": "src/data/model/repository", "Manager\\": "src/data/model/manager", "Network\\": "src/data/core/network", - "Console\\": "src/console", "Stub\\": [ "src/data/stub", "src/data/stub/service", "src/data/stub/repository" ], + "Console\\": "src/console", "Shared\\": "src/shared", "App\\Router\\": "src/app/router", "App\\Controller\\": "src/app/controller", @@ -23,16 +23,19 @@ "App\\Router\\Request\\": "src/app/router/request", "Shared\\Exception\\": "src/shared/exception", "Shared\\Attributes\\": "src/shared/attributes", - "App\\Views\\Directives\\": "src/app/views/directives", - "Data\\Core\\": "src/data/core/" + "App\\Views\\Directives\\" : "src/app/views/directives", + "Data\\Core\\": "src/data/core/", + "Database\\": "src/data/core/database" } }, "require": { "twig/twig": "^3.0", + "altorouter/altorouter": "1.1.0", "vlucas/phpdotenv": "^5.5", + "psr/container": "^2.0", "adriangibbons/php-fit-file-analysis": "^3.2.0", - "altorouter/altorouter": "1.1.0", - "psr/container": "^2.0" + "ext-couchbase": "*", + "ext-pdo": "*" }, "config": { "process-timeout": 2000 @@ -41,7 +44,7 @@ "phpunit/phpunit": "*" }, "scripts": { - "dev": "php -S localhost:8081 -t public -d display_errors=1 -d error_reporting=E_ALL", + "dev": "php -S localhost:8080 -t public -d display_errors=1 -d error_reporting=E_ALL", "dev:console": "export APP_ENV=console && php public/index.php", "dev:html": "export APP_ENV=html && php -S localhost:8080 -t public -d display_errors=1 -d error_reporting=E_ALL" } diff --git a/Sources/config/config.php b/Sources/config/config.php index 2471db5c..8d5b276e 100755 --- a/Sources/config/config.php +++ b/Sources/config/config.php @@ -1,6 +1,5 @@ safeLoad(); // const DB_PASSWORD = $_ENV['DB_PASSWORD'] ?? 'achanger'; define("APP_ENV", getenv('APP_ENV')); +const DB_SERVER = 'pgsql'; const DB_HOST = 'localhost'; -const DB_DATABASE = 'heartTrack'; -const DB_USER = 'toto'; -const DB_PASSWORD = 'achanger'; +const DB_DATABASE = 'sae_3'; +const DB_USER = 'Perederii'; +const DB_PASSWORD = ''; +//const APP_ENV = 'console'; -const DSN = "mysql:host=" . DB_HOST . ";dbname=" . DB_DATABASE; +const DSN = DB_SERVER . ":host=" . DB_HOST . ";dbname=" . DB_DATABASE; diff --git a/Sources/public/assets/img/bg1.png b/Sources/public/assets/img/bg1.png new file mode 100644 index 00000000..3c6eeb4a Binary files /dev/null and b/Sources/public/assets/img/bg1.png differ diff --git a/Sources/public/assets/img/demo-screen.mp4 b/Sources/public/assets/img/demo-screen.mp4 new file mode 100644 index 00000000..9ab43610 Binary files /dev/null and b/Sources/public/assets/img/demo-screen.mp4 differ diff --git a/Sources/public/assets/img/portrait_black.png b/Sources/public/assets/img/portrait_black.png new file mode 100644 index 00000000..31ad82a2 Binary files /dev/null and b/Sources/public/assets/img/portrait_black.png differ diff --git a/Sources/public/assets/img/upload.png b/Sources/public/assets/img/upload.png index 63675602..2a2c733b 100644 Binary files a/Sources/public/assets/img/upload.png and b/Sources/public/assets/img/upload.png differ diff --git a/Sources/public/css/styles2.css b/Sources/public/css/styles2.css new file mode 100644 index 00000000..91ca5131 --- /dev/null +++ b/Sources/public/css/styles2.css @@ -0,0 +1,11162 @@ +@charset "UTF-8"; +/*! +* Start Bootstrap - New Age v6.0.7 (https://startbootstrap.com/theme/new-age) +* Copyright 2013-2023 Start Bootstrap +* Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-new-age/blob/master/LICENSE) +*/ +/*! + * Bootstrap v5.2.3 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Copyright 2011-2022 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root { + --bs-blue: #2937f0; + --bs-indigo: #6610f2; + --bs-purple: #9f1ae2; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-black: #000; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #2937f0; + --bs-secondary: #9f1ae2; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 41, 55, 240; + --bs-secondary-rgb: 159, 26, 226; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg-rgb: 255, 255, 255; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: Mulish, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji; + --bs-body-font-size: 1rem; + --bs-body-font-weight: 500; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-bg: #fff; + --bs-border-width: 1px; + --bs-border-style: solid; + --bs-border-color: #dee2e6; + --bs-border-color-translucent: rgba(0, 0, 0, 0.175); + --bs-border-radius: 0.375rem; + --bs-border-radius-sm: 0.25rem; + --bs-border-radius-lg: 0.5rem; + --bs-border-radius-xl: 1rem; + --bs-border-radius-2xl: 2rem; + --bs-border-radius-pill: 50rem; + --bs-link-color: #2937f0; + --bs-link-hover-color: #212cc0; + --bs-code-color: #d63384; + --bs-highlight-bg: #fff3cd; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +@media (prefers-reduced-motion: no-preference) { + :root { + scroll-behavior: smooth; + } +} + +body { + margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: 1px solid; + opacity: 0.25; +} + +h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-family: "Newsreader", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-weight: 600; + line-height: 1.2; +} + +h1, .h1 { + font-size: calc(1.375rem + 1.5vw); +} +@media (min-width: 1200px) { + h1, .h1 { + font-size: 2.5rem; + } +} + +h2, .h2 { + font-size: calc(1.325rem + 0.9vw); +} +@media (min-width: 1200px) { + h2, .h2 { + font-size: 2rem; + } +} + +h3, .h3 { + font-size: calc(1.3rem + 0.6vw); +} +@media (min-width: 1200px) { + h3, .h3 { + font-size: 1.75rem; + } +} + +h4, .h4 { + font-size: calc(1.275rem + 0.3vw); +} +@media (min-width: 1200px) { + h4, .h4 { + font-size: 1.5rem; + } +} + +h5, .h5 { + font-size: 1.25rem; +} + +h6, .h6 { + font-size: 1rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title] { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul { + padding-left: 2rem; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small, .small { + font-size: 0.875em; +} + +mark, .mark { + padding: 0.1875em; + background-color: var(--bs-highlight-bg); +} + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +a { + color: var(--bs-link-color); + text-decoration: underline; +} +a:hover { + color: var(--bs-link-hover-color); +} + +a:not([href]):not([class]), a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em; +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +code { + font-size: 0.875em; + color: var(--bs-code-color); + word-wrap: break-word; +} +a > code { + color: inherit; +} + +kbd { + padding: 0.1875rem 0.375rem; + font-size: 0.875em; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + border-radius: 0.25rem; +} +kbd kbd { + padding: 0; + font-size: 1em; +} + +figure { + margin: 0 0 1rem; +} + +img, +svg { + vertical-align: middle; +} + +table { + caption-side: bottom; + border-collapse: collapse; +} + +caption { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: #6c757d; + text-align: left; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +thead, +tbody, +tfoot, +tr, +td, +th { + border-color: inherit; + border-style: solid; + border-width: 0; +} + +label { + display: inline-block; +} + +button { + border-radius: 0; +} + +button:focus:not(:focus-visible) { + outline: 0; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +select { + text-transform: none; +} + +[role=button] { + cursor: pointer; +} + +select { + word-wrap: normal; +} +select:disabled { + opacity: 1; +} + +[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { + display: none !important; +} + +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; +} +button:not(:disabled), +[type=button]:not(:disabled), +[type=reset]:not(:disabled), +[type=submit]:not(:disabled) { + cursor: pointer; +} + +::-moz-focus-inner { + padding: 0; + border-style: none; +} + +textarea { + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; +} +@media (min-width: 1200px) { + legend { + font-size: 1.5rem; + } +} +legend + * { + clear: left; +} + +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-year-field { + padding: 0; +} + +::-webkit-inner-spin-button { + height: auto; +} + +[type=search] { + outline-offset: -2px; + -webkit-appearance: textfield; +} + +/* rtl:raw: +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +*/ +::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-color-swatch-wrapper { + padding: 0; +} + +::file-selector-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +iframe { + border: 0; +} + +summary { + display: list-item; + cursor: pointer; +} + +progress { + vertical-align: baseline; +} + +[hidden] { + display: none !important; +} + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +.display-1 { + font-size: calc(1.625rem + 4.5vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-1 { + font-size: 5rem; + } +} + +.display-2 { + font-size: calc(1.575rem + 3.9vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-2 { + font-size: 4.5rem; + } +} + +.display-3 { + font-size: calc(1.525rem + 3.3vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-3 { + font-size: 4rem; + } +} + +.display-4 { + font-size: calc(1.475rem + 2.7vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-4 { + font-size: 3.5rem; + } +} + +.display-5 { + font-size: calc(1.425rem + 2.1vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-5 { + font-size: 3rem; + } +} + +.display-6 { + font-size: calc(1.375rem + 1.5vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-6 { + font-size: 2.5rem; + } +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.initialism { + font-size: 0.875em; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} +.blockquote > :last-child { + margin-bottom: 0; +} + +.blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 0.875em; + color: #6c757d; +} +.blockquote-footer::before { + content: "— "; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid var(--bs-border-color); + border-radius: 0.375rem; + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 0.875em; + color: #6c757d; +} + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } +} +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); +} +.row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} + +.col { + flex: 1 0 0%; +} + +.row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} + +.row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} + +.row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} + +.row-cols-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; +} + +.row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} + +.row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} + +.row-cols-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; +} + +.col-auto { + flex: 0 0 auto; + width: auto; +} + +.col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} + +.col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} + +.col-3 { + flex: 0 0 auto; + width: 25%; +} + +.col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} + +.col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} + +.col-6 { + flex: 0 0 auto; + width: 50%; +} + +.col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} + +.col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} + +.col-9 { + flex: 0 0 auto; + width: 75%; +} + +.col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} + +.col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} + +.col-12 { + flex: 0 0 auto; + width: 100%; +} + +.offset-1 { + margin-left: 8.33333333%; +} + +.offset-2 { + margin-left: 16.66666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.33333333%; +} + +.offset-5 { + margin-left: 41.66666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.33333333%; +} + +.offset-8 { + margin-left: 66.66666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.33333333%; +} + +.offset-11 { + margin-left: 91.66666667%; +} + +.g-0, +.gx-0 { + --bs-gutter-x: 0; +} + +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; +} + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; +} + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; +} + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; +} + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; +} + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; +} + +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; +} + +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; + } + .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.33333333%; + } + .offset-sm-2 { + margin-left: 16.66666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.33333333%; + } + .offset-sm-5 { + margin-left: 41.66666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.33333333%; + } + .offset-sm-8 { + margin-left: 66.66666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.33333333%; + } + .offset-sm-11 { + margin-left: 91.66666667%; + } + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0; + } + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0; + } + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem; + } + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem; + } + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem; + } + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; + } + .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + } + .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.33333333%; + } + .offset-md-2 { + margin-left: 16.66666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.33333333%; + } + .offset-md-5 { + margin-left: 41.66666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.33333333%; + } + .offset-md-8 { + margin-left: 66.66666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.33333333%; + } + .offset-md-11 { + margin-left: 91.66666667%; + } + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0; + } + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0; + } + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem; + } + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem; + } + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem; + } + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; + } + .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.33333333%; + } + .offset-lg-2 { + margin-left: 16.66666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.33333333%; + } + .offset-lg-5 { + margin-left: 41.66666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.33333333%; + } + .offset-lg-8 { + margin-left: 66.66666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.33333333%; + } + .offset-lg-11 { + margin-left: 91.66666667%; + } + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0; + } + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0; + } + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem; + } + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem; + } + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem; + } + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + } + .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.33333333%; + } + .offset-xl-2 { + margin-left: 16.66666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.33333333%; + } + .offset-xl-5 { + margin-left: 41.66666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.33333333%; + } + .offset-xl-8 { + margin-left: 66.66666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.33333333%; + } + .offset-xl-11 { + margin-left: 91.66666667%; + } + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0; + } + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0; + } + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem; + } + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem; + } + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem; + } + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; + } + .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xxl-0 { + margin-left: 0; + } + .offset-xxl-1 { + margin-left: 8.33333333%; + } + .offset-xxl-2 { + margin-left: 16.66666667%; + } + .offset-xxl-3 { + margin-left: 25%; + } + .offset-xxl-4 { + margin-left: 33.33333333%; + } + .offset-xxl-5 { + margin-left: 41.66666667%; + } + .offset-xxl-6 { + margin-left: 50%; + } + .offset-xxl-7 { + margin-left: 58.33333333%; + } + .offset-xxl-8 { + margin-left: 66.66666667%; + } + .offset-xxl-9 { + margin-left: 75%; + } + .offset-xxl-10 { + margin-left: 83.33333333%; + } + .offset-xxl-11 { + margin-left: 91.66666667%; + } + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0; + } + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0; + } + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} +.table { + --bs-table-color: var(--bs-body-color); + --bs-table-bg: transparent; + --bs-table-border-color: var(--bs-border-color); + --bs-table-accent-bg: transparent; + --bs-table-striped-color: var(--bs-body-color); + --bs-table-striped-bg: rgba(0, 0, 0, 0.05); + --bs-table-active-color: var(--bs-body-color); + --bs-table-active-bg: rgba(0, 0, 0, 0.1); + --bs-table-hover-color: var(--bs-body-color); + --bs-table-hover-bg: rgba(0, 0, 0, 0.075); + width: 100%; + margin-bottom: 1rem; + color: var(--bs-table-color); + vertical-align: top; + border-color: var(--bs-table-border-color); +} +.table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + background-color: var(--bs-table-bg); + border-bottom-width: 1px; + box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); +} +.table > tbody { + vertical-align: inherit; +} +.table > thead { + vertical-align: bottom; +} + +.table-group-divider { + border-top: 2px solid currentcolor; +} + +.caption-top { + caption-side: top; +} + +.table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} + +.table-bordered > :not(caption) > * { + border-width: 1px 0; +} +.table-bordered > :not(caption) > * > * { + border-width: 0 1px; +} + +.table-borderless > :not(caption) > * > * { + border-bottom-width: 0; +} +.table-borderless > :not(:first-child) { + border-top-width: 0; +} + +.table-striped > tbody > tr:nth-of-type(odd) > * { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.table-striped-columns > :not(caption) > tr > :nth-child(even) { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color); +} + +.table-hover > tbody > tr:hover > * { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color); +} + +.table-primary { + --bs-table-color: #000; + --bs-table-bg: #d4d7fc; + --bs-table-border-color: #bfc2e3; + --bs-table-striped-bg: #c9ccef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bfc2e3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c4c7e9; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-secondary { + --bs-table-color: #000; + --bs-table-bg: #ecd1f9; + --bs-table-border-color: #d4bce0; + --bs-table-striped-bg: #e0c7ed; + --bs-table-striped-color: #000; + --bs-table-active-bg: #d4bce0; + --bs-table-active-color: #000; + --bs-table-hover-bg: #dac1e6; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-success { + --bs-table-color: #000; + --bs-table-bg: #d1e7dd; + --bs-table-border-color: #bcd0c7; + --bs-table-striped-bg: #c7dbd2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bcd0c7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-info { + --bs-table-color: #000; + --bs-table-bg: #cff4fc; + --bs-table-border-color: #badce3; + --bs-table-striped-bg: #c5e8ef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #badce3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-warning { + --bs-table-color: #000; + --bs-table-bg: #fff3cd; + --bs-table-border-color: #e6dbb9; + --bs-table-striped-bg: #f2e7c3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6dbb9; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece1be; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-danger { + --bs-table-color: #000; + --bs-table-bg: #f8d7da; + --bs-table-border-color: #dfc2c4; + --bs-table-striped-bg: #eccccf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfc2c4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-light { + --bs-table-color: #000; + --bs-table-bg: #f8f9fa; + --bs-table-border-color: #dfe0e1; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-dark { + --bs-table-color: #fff; + --bs-table-bg: #212529; + --bs-table-border-color: #373b3e; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 767.98px) { + .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 991.98px) { + .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1199.98px) { + .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1399.98px) { + .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +.form-label { + margin-bottom: 0.5rem; +} + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; +} + +.form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: #6c757d; +} + +.form-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 500; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 0.375rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} +.form-control[type=file] { + overflow: hidden; +} +.form-control[type=file]:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control:focus { + color: #212529; + background-color: #fff; + border-color: #949bf8; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(41, 55, 240, 0.25); +} +.form-control::-webkit-date-and-time-value { + height: 1.5em; +} +.form-control::-moz-placeholder { + color: #6c757d; + opacity: 1; +} +.form-control::placeholder { + color: #6c757d; + opacity: 1; +} +.form-control:disabled { + background-color: #e9ecef; + opacity: 1; +} +.form-control::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #212529; + background-color: #e9ecef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control::file-selector-button { + transition: none; + } +} +.form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: #dde0e3; +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} +.form-control-plaintext:focus { + outline: 0; +} +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} +.form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} + +.form-control-lg { + min-height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} +.form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} + +textarea.form-control { + min-height: calc(1.5em + 0.75rem + 2px); +} +textarea.form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); +} +textarea.form-control-lg { + min-height: calc(1.5em + 1rem + 2px); +} + +.form-control-color { + width: 3rem; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem; +} +.form-control-color:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control-color::-moz-color-swatch { + border: 0 !important; + border-radius: 0.375rem; +} +.form-control-color::-webkit-color-swatch { + border-radius: 0.375rem; +} +.form-control-color.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); +} +.form-control-color.form-control-lg { + height: calc(1.5em + 1rem + 2px); +} + +.form-select { + display: block; + width: 100%; + padding: 0.375rem 2.25rem 0.375rem 0.75rem; + -moz-padding-start: calc(0.75rem - 3px); + font-size: 1rem; + font-weight: 500; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right 0.75rem center; + background-size: 16px 12px; + border: 1px solid #ced4da; + border-radius: 0.375rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-select { + transition: none; + } +} +.form-select:focus { + border-color: #949bf8; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(41, 55, 240, 0.25); +} +.form-select[multiple], .form-select[size]:not([size="1"]) { + padding-right: 0.75rem; + background-image: none; +} +.form-select:disabled { + background-color: #e9ecef; +} +.form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #212529; +} + +.form-select-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} + +.form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} + +.form-check { + display: block; + min-height: 1.5rem; + padding-left: 1.5em; + margin-bottom: 0.125rem; +} +.form-check .form-check-input { + float: left; + margin-left: -1.5em; +} + +.form-check-reverse { + padding-right: 1.5em; + padding-left: 0; + text-align: right; +} +.form-check-reverse .form-check-input { + float: right; + margin-right: -1.5em; + margin-left: 0; +} + +.form-check-input { + width: 1em; + height: 1em; + margin-top: 0.25em; + vertical-align: top; + background-color: #fff; + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: 1px solid rgba(0, 0, 0, 0.25); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; +} +.form-check-input[type=checkbox] { + border-radius: 0.25em; +} +.form-check-input[type=radio] { + border-radius: 50%; +} +.form-check-input:active { + filter: brightness(90%); +} +.form-check-input:focus { + border-color: #949bf8; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(41, 55, 240, 0.25); +} +.form-check-input:checked { + background-color: #2937f0; + border-color: #2937f0; +} +.form-check-input:checked[type=checkbox] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); +} +.form-check-input:checked[type=radio] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); +} +.form-check-input[type=checkbox]:indeterminate { + background-color: #2937f0; + border-color: #2937f0; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); +} +.form-check-input:disabled { + pointer-events: none; + filter: none; + opacity: 0.5; +} +.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { + cursor: default; + opacity: 0.5; +} + +.form-switch { + padding-left: 2.5em; +} +.form-switch .form-check-input { + width: 2em; + margin-left: -2.5em; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); + background-position: left center; + border-radius: 2em; + transition: background-position 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-switch .form-check-input { + transition: none; + } +} +.form-switch .form-check-input:focus { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23949bf8'/%3e%3c/svg%3e"); +} +.form-switch .form-check-input:checked { + background-position: right center; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} +.form-switch.form-check-reverse { + padding-right: 2.5em; + padding-left: 0; +} +.form-switch.form-check-reverse .form-check-input { + margin-right: -2.5em; + margin-left: 0; +} + +.form-check-inline { + display: inline-block; + margin-right: 1rem; +} + +.btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.btn-check[disabled] + .btn, .btn-check:disabled + .btn { + pointer-events: none; + filter: none; + opacity: 0.65; +} + +.form-range { + width: 100%; + height: 1.5rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.form-range:focus { + outline: 0; +} +.form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(41, 55, 240, 0.25); +} +.form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(41, 55, 240, 0.25); +} +.form-range::-moz-focus-outer { + border: 0; +} +.form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #2937f0; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} +.form-range::-webkit-slider-thumb:active { + background-color: #bfc3fb; +} +.form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} +.form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #2937f0; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} +.form-range::-moz-range-thumb:active { + background-color: #bfc3fb; +} +.form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} +.form-range:disabled { + pointer-events: none; +} +.form-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} +.form-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} + +.form-floating { + position: relative; +} +.form-floating > .form-control, +.form-floating > .form-control-plaintext, +.form-floating > .form-select { + height: calc(3.5rem + 2px); + line-height: 1.25; +} +.form-floating > label { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 1rem 0.75rem; + overflow: hidden; + text-align: start; + text-overflow: ellipsis; + white-space: nowrap; + pointer-events: none; + border: 1px solid transparent; + transform-origin: 0 0; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-floating > label { + transition: none; + } +} +.form-floating > .form-control, +.form-floating > .form-control-plaintext { + padding: 1rem 0.75rem; +} +.form-floating > .form-control::-moz-placeholder, .form-floating > .form-control-plaintext::-moz-placeholder { + color: transparent; +} +.form-floating > .form-control::placeholder, +.form-floating > .form-control-plaintext::placeholder { + color: transparent; +} +.form-floating > .form-control:not(:-moz-placeholder-shown), .form-floating > .form-control-plaintext:not(:-moz-placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown), +.form-floating > .form-control-plaintext:focus, +.form-floating > .form-control-plaintext:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:-webkit-autofill, +.form-floating > .form-control-plaintext:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:focus ~ label, +.form-floating > .form-control:not(:placeholder-shown) ~ label, +.form-floating > .form-control-plaintext ~ label, +.form-floating > .form-select ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:-webkit-autofill ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control-plaintext ~ label { + border-width: 1px 0; +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} +.input-group > .form-control, +.input-group > .form-select, +.input-group > .form-floating { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} +.input-group > .form-control:focus, +.input-group > .form-select:focus, +.input-group > .form-floating:focus-within { + z-index: 5; +} +.input-group .btn { + position: relative; + z-index: 2; +} +.input-group .btn:focus { + z-index: 5; +} + +.input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 500; + line-height: 1.5; + color: #212529; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.375rem; +} + +.input-group-lg > .form-control, +.input-group-lg > .form-select, +.input-group-lg > .input-group-text, +.input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} + +.input-group-sm > .form-control, +.input-group-sm > .form-select, +.input-group-sm > .input-group-text, +.input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} + +.input-group-lg > .form-select, +.input-group-sm > .form-select { + padding-right: 3rem; +} + +.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3), +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4), +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control, +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-left: -1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group > .form-floating:not(:first-child) > .form-control, +.input-group > .form-floating:not(:first-child) > .form-select { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #198754; +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(25, 135, 84, 0.9); + border-radius: 0.375rem; +} + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: #198754; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: #198754; + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:valid, .form-select.is-valid { + border-color: #198754; +} +.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] { + padding-right: 4.125rem; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:valid:focus, .form-select.is-valid:focus { + border-color: #198754; + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.was-validated .form-control-color:valid, .form-control-color.is-valid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.was-validated .form-check-input:valid, .form-check-input.is-valid { + border-color: #198754; +} +.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { + background-color: #198754; +} +.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #198754; +} + +.form-check-inline .form-check-input ~ .valid-feedback { + margin-left: 0.5em; +} + +.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid, +.was-validated .input-group > .form-select:not(:focus):valid, +.input-group > .form-select:not(:focus).is-valid, +.was-validated .input-group > .form-floating:not(:focus-within):valid, +.input-group > .form-floating:not(:focus-within).is-valid { + z-index: 3; +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #dc3545; +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.375rem; +} + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: #dc3545; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:invalid, .form-select.is-invalid { + border-color: #dc3545; +} +.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { + padding-right: 4.125rem; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.was-validated .form-control-color:invalid, .form-control-color.is-invalid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.was-validated .form-check-input:invalid, .form-check-input.is-invalid { + border-color: #dc3545; +} +.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { + background-color: #dc3545; +} +.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; +} + +.form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: 0.5em; +} + +.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid, +.was-validated .input-group > .form-select:not(:focus):invalid, +.input-group > .form-select:not(:focus).is-invalid, +.was-validated .input-group > .form-floating:not(:focus-within):invalid, +.input-group > .form-floating:not(:focus-within).is-invalid { + z-index: 4; +} + +.btn { + --bs-btn-padding-x: 0.75rem; + --bs-btn-padding-y: 0.375rem; + --bs-btn-font-family: ; + --bs-btn-font-size: 1rem; + --bs-btn-font-weight: 500; + --bs-btn-line-height: 1.5; + --bs-btn-color: #212529; + --bs-btn-bg: transparent; + --bs-btn-border-width: 1px; + --bs-btn-border-color: transparent; + --bs-btn-border-radius: 0.375rem; + --bs-btn-hover-border-color: transparent; + --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + --bs-btn-disabled-opacity: 0.65; + --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5); + display: inline-block; + padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x); + font-family: var(--bs-btn-font-family); + font-size: var(--bs-btn-font-size); + font-weight: var(--bs-btn-font-weight); + line-height: var(--bs-btn-line-height); + color: var(--bs-btn-color); + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + border: var(--bs-btn-border-width) solid var(--bs-btn-border-color); + border-radius: var(--bs-btn-border-radius); + background-color: var(--bs-btn-bg); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} +.btn:hover { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); +} +.btn-check + .btn:hover { + color: var(--bs-btn-color); + background-color: var(--bs-btn-bg); + border-color: var(--bs-btn-border-color); +} +.btn:focus-visible { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} +.btn-check:focus-visible + .btn { + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} +.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show { + color: var(--bs-btn-active-color); + background-color: var(--bs-btn-active-bg); + border-color: var(--bs-btn-active-border-color); +} +.btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible { + box-shadow: var(--bs-btn-focus-box-shadow); +} +.btn:disabled, .btn.disabled, fieldset:disabled .btn { + color: var(--bs-btn-disabled-color); + pointer-events: none; + background-color: var(--bs-btn-disabled-bg); + border-color: var(--bs-btn-disabled-border-color); + opacity: var(--bs-btn-disabled-opacity); +} + +.btn-primary { + --bs-btn-color: #fff; + --bs-btn-bg: #2937f0; + --bs-btn-border-color: #2937f0; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #232fcc; + --bs-btn-hover-border-color: #212cc0; + --bs-btn-focus-shadow-rgb: 73, 85, 242; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #212cc0; + --bs-btn-active-border-color: #1f29b4; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #2937f0; + --bs-btn-disabled-border-color: #2937f0; +} + +.btn-secondary { + --bs-btn-color: #fff; + --bs-btn-bg: #9f1ae2; + --bs-btn-border-color: #9f1ae2; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #8716c0; + --bs-btn-hover-border-color: #7f15b5; + --bs-btn-focus-shadow-rgb: 173, 60, 230; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #7f15b5; + --bs-btn-active-border-color: #7714aa; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #9f1ae2; + --bs-btn-disabled-border-color: #9f1ae2; +} + +.btn-success { + --bs-btn-color: #fff; + --bs-btn-bg: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #157347; + --bs-btn-hover-border-color: #146c43; + --bs-btn-focus-shadow-rgb: 60, 153, 110; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #146c43; + --bs-btn-active-border-color: #13653f; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #198754; + --bs-btn-disabled-border-color: #198754; +} + +.btn-info { + --bs-btn-color: #000; + --bs-btn-bg: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #31d2f2; + --bs-btn-hover-border-color: #25cff2; + --bs-btn-focus-shadow-rgb: 11, 172, 204; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #3dd5f3; + --bs-btn-active-border-color: #25cff2; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #0dcaf0; + --bs-btn-disabled-border-color: #0dcaf0; +} + +.btn-warning { + --bs-btn-color: #000; + --bs-btn-bg: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffca2c; + --bs-btn-hover-border-color: #ffc720; + --bs-btn-focus-shadow-rgb: 217, 164, 6; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffcd39; + --bs-btn-active-border-color: #ffc720; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #ffc107; + --bs-btn-disabled-border-color: #ffc107; +} + +.btn-danger { + --bs-btn-color: #fff; + --bs-btn-bg: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #bb2d3b; + --bs-btn-hover-border-color: #b02a37; + --bs-btn-focus-shadow-rgb: 225, 83, 97; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #b02a37; + --bs-btn-active-border-color: #a52834; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #dc3545; + --bs-btn-disabled-border-color: #dc3545; +} + +.btn-light { + --bs-btn-color: #000; + --bs-btn-bg: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #d3d4d5; + --bs-btn-hover-border-color: #c6c7c8; + --bs-btn-focus-shadow-rgb: 211, 212, 213; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #c6c7c8; + --bs-btn-active-border-color: #babbbc; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #f8f9fa; + --bs-btn-disabled-border-color: #f8f9fa; +} + +.btn-dark { + --bs-btn-color: #fff; + --bs-btn-bg: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #424649; + --bs-btn-hover-border-color: #373b3e; + --bs-btn-focus-shadow-rgb: 66, 70, 73; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #4d5154; + --bs-btn-active-border-color: #373b3e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #212529; + --bs-btn-disabled-border-color: #212529; +} + +.btn-outline-primary { + --bs-btn-color: #2937f0; + --bs-btn-border-color: #2937f0; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #2937f0; + --bs-btn-hover-border-color: #2937f0; + --bs-btn-focus-shadow-rgb: 41, 55, 240; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #2937f0; + --bs-btn-active-border-color: #2937f0; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #2937f0; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #2937f0; + --bs-gradient: none; +} + +.btn-outline-secondary { + --bs-btn-color: #9f1ae2; + --bs-btn-border-color: #9f1ae2; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #9f1ae2; + --bs-btn-hover-border-color: #9f1ae2; + --bs-btn-focus-shadow-rgb: 159, 26, 226; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #9f1ae2; + --bs-btn-active-border-color: #9f1ae2; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #9f1ae2; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #9f1ae2; + --bs-gradient: none; +} + +.btn-outline-success { + --bs-btn-color: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #198754; + --bs-btn-hover-border-color: #198754; + --bs-btn-focus-shadow-rgb: 25, 135, 84; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #198754; + --bs-btn-active-border-color: #198754; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #198754; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #198754; + --bs-gradient: none; +} + +.btn-outline-info { + --bs-btn-color: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #0dcaf0; + --bs-btn-hover-border-color: #0dcaf0; + --bs-btn-focus-shadow-rgb: 13, 202, 240; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #0dcaf0; + --bs-btn-active-border-color: #0dcaf0; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0dcaf0; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0dcaf0; + --bs-gradient: none; +} + +.btn-outline-warning { + --bs-btn-color: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffc107; + --bs-btn-hover-border-color: #ffc107; + --bs-btn-focus-shadow-rgb: 255, 193, 7; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffc107; + --bs-btn-active-border-color: #ffc107; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #ffc107; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #ffc107; + --bs-gradient: none; +} + +.btn-outline-danger { + --bs-btn-color: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #dc3545; + --bs-btn-hover-border-color: #dc3545; + --bs-btn-focus-shadow-rgb: 220, 53, 69; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #dc3545; + --bs-btn-active-border-color: #dc3545; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #dc3545; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #dc3545; + --bs-gradient: none; +} + +.btn-outline-light { + --bs-btn-color: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #f8f9fa; + --bs-btn-hover-border-color: #f8f9fa; + --bs-btn-focus-shadow-rgb: 248, 249, 250; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #f8f9fa; + --bs-btn-active-border-color: #f8f9fa; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #f8f9fa; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #f8f9fa; + --bs-gradient: none; +} + +.btn-outline-dark { + --bs-btn-color: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #212529; + --bs-btn-hover-border-color: #212529; + --bs-btn-focus-shadow-rgb: 33, 37, 41; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #212529; + --bs-btn-active-border-color: #212529; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #212529; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #212529; + --bs-gradient: none; +} + +.btn-link { + --bs-btn-font-weight: 500; + --bs-btn-color: var(--bs-link-color); + --bs-btn-bg: transparent; + --bs-btn-border-color: transparent; + --bs-btn-hover-color: var(--bs-link-hover-color); + --bs-btn-hover-border-color: transparent; + --bs-btn-active-color: var(--bs-link-hover-color); + --bs-btn-active-border-color: transparent; + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-border-color: transparent; + --bs-btn-box-shadow: none; + --bs-btn-focus-shadow-rgb: 73, 85, 242; + text-decoration: underline; +} +.btn-link:focus-visible { + color: var(--bs-btn-color); +} +.btn-link:hover { + color: var(--bs-btn-hover-color); +} + +.btn-lg, .btn-group-lg > .btn { + --bs-btn-padding-y: 0.5rem; + --bs-btn-padding-x: 1rem; + --bs-btn-font-size: 1.25rem; + --bs-btn-border-radius: 0.5rem; +} + +.btn-sm, .btn-group-sm > .btn { + --bs-btn-padding-y: 0.25rem; + --bs-btn-padding-x: 0.5rem; + --bs-btn-font-size: 0.875rem; + --bs-btn-border-radius: 0.25rem; +} + +.fade { + transition: opacity 0.15s linear; +} +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} +.fade:not(.show) { + opacity: 0; +} + +.collapse:not(.show) { + display: none; +} + +.collapsing { + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} +.collapsing.collapse-horizontal { + width: 0; + height: auto; + transition: width 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing.collapse-horizontal { + transition: none; + } +} + +.dropup, +.dropend, +.dropdown, +.dropstart, +.dropup-center, +.dropdown-center { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; +} +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} +.dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropdown-menu { + --bs-dropdown-zindex: 1000; + --bs-dropdown-min-width: 10rem; + --bs-dropdown-padding-x: 0; + --bs-dropdown-padding-y: 0.5rem; + --bs-dropdown-spacer: 0.125rem; + --bs-dropdown-font-size: 1rem; + --bs-dropdown-color: #212529; + --bs-dropdown-bg: #fff; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-border-radius: 0.375rem; + --bs-dropdown-border-width: 1px; + --bs-dropdown-inner-border-radius: calc(0.375rem - 1px); + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-divider-margin-y: 0.5rem; + --bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-dropdown-link-color: #212529; + --bs-dropdown-link-hover-color: #1e2125; + --bs-dropdown-link-hover-bg: #e9ecef; + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #2937f0; + --bs-dropdown-link-disabled-color: #adb5bd; + --bs-dropdown-item-padding-x: 1rem; + --bs-dropdown-item-padding-y: 0.25rem; + --bs-dropdown-header-color: #6c757d; + --bs-dropdown-header-padding-x: 1rem; + --bs-dropdown-header-padding-y: 0.5rem; + position: absolute; + z-index: var(--bs-dropdown-zindex); + display: none; + min-width: var(--bs-dropdown-min-width); + padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x); + margin: 0; + font-size: var(--bs-dropdown-font-size); + color: var(--bs-dropdown-color); + text-align: left; + list-style: none; + background-color: var(--bs-dropdown-bg); + background-clip: padding-box; + border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color); + border-radius: var(--bs-dropdown-border-radius); +} +.dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: var(--bs-dropdown-spacer); +} + +.dropdown-menu-start { + --bs-position: start; +} +.dropdown-menu-start[data-bs-popper] { + right: auto; + left: 0; +} + +.dropdown-menu-end { + --bs-position: end; +} +.dropdown-menu-end[data-bs-popper] { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-start { + --bs-position: start; + } + .dropdown-menu-sm-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-sm-end { + --bs-position: end; + } + .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 768px) { + .dropdown-menu-md-start { + --bs-position: start; + } + .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-md-end { + --bs-position: end; + } + .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 992px) { + .dropdown-menu-lg-start { + --bs-position: start; + } + .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-lg-end { + --bs-position: end; + } + .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1200px) { + .dropdown-menu-xl-start { + --bs-position: start; + } + .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-xl-end { + --bs-position: end; + } + .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1400px) { + .dropdown-menu-xxl-start { + --bs-position: start; + } + .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-xxl-end { + --bs-position: end; + } + .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +.dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: var(--bs-dropdown-spacer); +} +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: var(--bs-dropdown-spacer); +} +.dropend .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} +.dropend .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropend .dropdown-toggle::after { + vertical-align: 0; +} + +.dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: var(--bs-dropdown-spacer); +} +.dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} +.dropstart .dropdown-toggle::after { + display: none; +} +.dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} +.dropstart .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropstart .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-divider { + height: 0; + margin: var(--bs-dropdown-divider-margin-y) 0; + overflow: hidden; + border-top: 1px solid var(--bs-dropdown-divider-bg); + opacity: 1; +} + +.dropdown-item { + display: block; + width: 100%; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + clear: both; + font-weight: 500; + color: var(--bs-dropdown-link-color); + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; +} +.dropdown-item:hover, .dropdown-item:focus { + color: var(--bs-dropdown-link-hover-color); + background-color: var(--bs-dropdown-link-hover-bg); +} +.dropdown-item.active, .dropdown-item:active { + color: var(--bs-dropdown-link-active-color); + text-decoration: none; + background-color: var(--bs-dropdown-link-active-bg); +} +.dropdown-item.disabled, .dropdown-item:disabled { + color: var(--bs-dropdown-link-disabled-color); + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); + margin-bottom: 0; + font-size: 0.875rem; + color: var(--bs-dropdown-header-color); + white-space: nowrap; +} + +.dropdown-item-text { + display: block; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + color: var(--bs-dropdown-link-color); +} + +.dropdown-menu-dark { + --bs-dropdown-color: #dee2e6; + --bs-dropdown-bg: #343a40; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-box-shadow: ; + --bs-dropdown-link-color: #dee2e6; + --bs-dropdown-link-hover-color: #fff; + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #2937f0; + --bs-dropdown-link-disabled-color: #adb5bd; + --bs-dropdown-header-color: #adb5bd; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} +.btn-group > .btn-check:checked + .btn, +.btn-group > .btn-check:focus + .btn, +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn-check:checked + .btn, +.btn-group-vertical > .btn-check:focus + .btn, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} +.btn-toolbar .input-group { + width: auto; +} + +.btn-group { + border-radius: 0.375rem; +} +.btn-group > :not(.btn-check:first-child) + .btn, +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn.dropdown-toggle-split:first-child, +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:nth-child(n+3), +.btn-group > :not(.btn-check) + .btn, +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} +.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after { + margin-left: 0; +} +.dropstart .dropdown-toggle-split::before { + margin-right: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; +} +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn ~ .btn, +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav { + --bs-nav-link-padding-x: 1rem; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-font-weight: ; + --bs-nav-link-color: var(--bs-link-color); + --bs-nav-link-hover-color: var(--bs-link-hover-color); + --bs-nav-link-disabled-color: #6c757d; + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x); + font-size: var(--bs-nav-link-font-size); + font-weight: var(--bs-nav-link-font-weight); + color: var(--bs-nav-link-color); + text-decoration: none; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .nav-link { + transition: none; + } +} +.nav-link:hover, .nav-link:focus { + color: var(--bs-nav-link-hover-color); +} +.nav-link.disabled { + color: var(--bs-nav-link-disabled-color); + pointer-events: none; + cursor: default; +} + +.nav-tabs { + --bs-nav-tabs-border-width: 1px; + --bs-nav-tabs-border-color: #dee2e6; + --bs-nav-tabs-border-radius: 0.375rem; + --bs-nav-tabs-link-hover-border-color: #e9ecef #e9ecef #dee2e6; + --bs-nav-tabs-link-active-color: #495057; + --bs-nav-tabs-link-active-bg: #fff; + --bs-nav-tabs-link-active-border-color: #dee2e6 #dee2e6 #fff; + border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); +} +.nav-tabs .nav-link { + margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); + background: none; + border: var(--bs-nav-tabs-border-width) solid transparent; + border-top-left-radius: var(--bs-nav-tabs-border-radius); + border-top-right-radius: var(--bs-nav-tabs-border-radius); +} +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + isolation: isolate; + border-color: var(--bs-nav-tabs-link-hover-border-color); +} +.nav-tabs .nav-link.disabled, .nav-tabs .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + background-color: transparent; + border-color: transparent; +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: var(--bs-nav-tabs-link-active-color); + background-color: var(--bs-nav-tabs-link-active-bg); + border-color: var(--bs-nav-tabs-link-active-border-color); +} +.nav-tabs .dropdown-menu { + margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills { + --bs-nav-pills-border-radius: 0.375rem; + --bs-nav-pills-link-active-color: #fff; + --bs-nav-pills-link-active-bg: #2937f0; +} +.nav-pills .nav-link { + background: none; + border: 0; + border-radius: var(--bs-nav-pills-border-radius); +} +.nav-pills .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + background-color: transparent; + border-color: transparent; +} +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: var(--bs-nav-pills-link-active-color); + background-color: var(--bs-nav-pills-link-active-bg); +} + +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} + +.nav-fill .nav-item .nav-link, +.nav-justified .nav-item .nav-link { + width: 100%; +} + +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} + +.navbar { + --bs-navbar-padding-x: 0; + --bs-navbar-padding-y: 0.5rem; + --bs-navbar-color: rgba(0, 0, 0, 0.55); + --bs-navbar-hover-color: rgba(0, 0, 0, 0.7); + --bs-navbar-disabled-color: rgba(0, 0, 0, 0.3); + --bs-navbar-active-color: rgba(0, 0, 0, 0.9); + --bs-navbar-brand-padding-y: 0.3125rem; + --bs-navbar-brand-margin-end: 1rem; + --bs-navbar-brand-font-size: 1.25rem; + --bs-navbar-brand-color: rgba(0, 0, 0, 0.9); + --bs-navbar-brand-hover-color: rgba(0, 0, 0, 0.9); + --bs-navbar-nav-link-padding-x: 0.5rem; + --bs-navbar-toggler-padding-y: 0.25rem; + --bs-navbar-toggler-padding-x: 0.75rem; + --bs-navbar-toggler-font-size: 1.25rem; + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); + --bs-navbar-toggler-border-color: rgba(0, 0, 0, 0.1); + --bs-navbar-toggler-border-radius: 0.375rem; + --bs-navbar-toggler-focus-width: 0.25rem; + --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out; + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x); +} +.navbar > .container, +.navbar > .container-fluid, +.navbar > .container-sm, +.navbar > .container-md, +.navbar > .container-lg, +.navbar > .container-xl, +.navbar > .container-xxl { + display: flex; + flex-wrap: inherit; + align-items: center; + justify-content: space-between; +} +.navbar-brand { + padding-top: var(--bs-navbar-brand-padding-y); + padding-bottom: var(--bs-navbar-brand-padding-y); + margin-right: var(--bs-navbar-brand-margin-end); + font-size: var(--bs-navbar-brand-font-size); + color: var(--bs-navbar-brand-color); + text-decoration: none; + white-space: nowrap; +} +.navbar-brand:hover, .navbar-brand:focus { + color: var(--bs-navbar-brand-hover-color); +} + +.navbar-nav { + --bs-nav-link-padding-x: 0; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-font-weight: ; + --bs-nav-link-color: var(--bs-navbar-color); + --bs-nav-link-hover-color: var(--bs-navbar-hover-color); + --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color); + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.navbar-nav .show > .nav-link, +.navbar-nav .nav-link.active { + color: var(--bs-navbar-active-color); +} +.navbar-nav .dropdown-menu { + position: static; +} + +.navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-navbar-color); +} +.navbar-text a, +.navbar-text a:hover, +.navbar-text a:focus { + color: var(--bs-navbar-active-color); +} + +.navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} + +.navbar-toggler { + padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x); + font-size: var(--bs-navbar-toggler-font-size); + line-height: 1; + color: var(--bs-navbar-color); + background-color: transparent; + border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color); + border-radius: var(--bs-navbar-toggler-border-radius); + transition: var(--bs-navbar-toggler-transition); +} +@media (prefers-reduced-motion: reduce) { + .navbar-toggler { + transition: none; + } +} +.navbar-toggler:hover { + text-decoration: none; +} +.navbar-toggler:focus { + text-decoration: none; + outline: 0; + box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width); +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-image: var(--bs-navbar-toggler-icon-bg); + background-repeat: no-repeat; + background-position: center; + background-size: 100%; +} + +.navbar-nav-scroll { + max-height: var(--bs-scroll-height, 75vh); + overflow-y: auto; +} + +@media (min-width: 576px) { + .navbar-expand-sm { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-sm .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } + .navbar-expand-sm .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-sm .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-sm .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +@media (min-width: 768px) { + .navbar-expand-md { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-md .navbar-nav { + flex-direction: row; + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-md .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } + .navbar-expand-md .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-md .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-md .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +@media (min-width: 992px) { + .navbar-expand-lg { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-lg .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } + .navbar-expand-lg .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-lg .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-lg .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-xl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } + .navbar-expand-xl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-xl .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-xl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +@media (min-width: 1400px) { + .navbar-expand-xxl { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-xxl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-xxl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xxl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xxl .navbar-toggler { + display: none; + } + .navbar-expand-xxl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-xxl .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-xxl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +.navbar-expand { + flex-wrap: nowrap; + justify-content: flex-start; +} +.navbar-expand .navbar-nav { + flex-direction: row; +} +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} +.navbar-expand .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); +} +.navbar-expand .navbar-nav-scroll { + overflow: visible; +} +.navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; +} +.navbar-expand .navbar-toggler { + display: none; +} +.navbar-expand .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; +} +.navbar-expand .offcanvas .offcanvas-header { + display: none; +} +.navbar-expand .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; +} + +.navbar-dark { + --bs-navbar-color: rgba(255, 255, 255, 0.55); + --bs-navbar-hover-color: rgba(255, 255, 255, 0.75); + --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25); + --bs-navbar-active-color: #fff; + --bs-navbar-brand-color: #fff; + --bs-navbar-brand-hover-color: #fff; + --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1); + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.card { + --bs-card-spacer-y: 1rem; + --bs-card-spacer-x: 1rem; + --bs-card-title-spacer-y: 0.5rem; + --bs-card-border-width: 1px; + --bs-card-border-color: var(--bs-border-color-translucent); + --bs-card-border-radius: 0.375rem; + --bs-card-box-shadow: ; + --bs-card-inner-border-radius: calc(0.375rem - 1px); + --bs-card-cap-padding-y: 0.5rem; + --bs-card-cap-padding-x: 1rem; + --bs-card-cap-bg: rgba(0, 0, 0, 0.03); + --bs-card-cap-color: ; + --bs-card-height: ; + --bs-card-color: ; + --bs-card-bg: #fff; + --bs-card-img-overlay-padding: 1rem; + --bs-card-group-margin: 0.75rem; + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + height: var(--bs-card-height); + word-wrap: break-word; + background-color: var(--bs-card-bg); + background-clip: border-box; + border: var(--bs-card-border-width) solid var(--bs-card-border-color); + border-radius: var(--bs-card-border-radius); +} +.card > hr { + margin-right: 0; + margin-left: 0; +} +.card > .list-group { + border-top: inherit; + border-bottom: inherit; +} +.card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); +} +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); +} +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top: 0; +} + +.card-body { + flex: 1 1 auto; + padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x); + color: var(--bs-card-color); +} + +.card-title { + margin-bottom: var(--bs-card-title-spacer-y); +} + +.card-subtitle { + margin-top: calc(-0.5 * var(--bs-card-title-spacer-y)); + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link + .card-link { + margin-left: var(--bs-card-spacer-x); +} + +.card-header { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + margin-bottom: 0; + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color); +} +.card-header:first-child { + border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0; +} + +.card-footer { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-top: var(--bs-card-border-width) solid var(--bs-card-border-color); +} +.card-footer:last-child { + border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius); +} + +.card-header-tabs { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); + border-bottom: 0; +} +.card-header-tabs .nav-link.active { + background-color: var(--bs-card-bg); + border-bottom-color: var(--bs-card-bg); +} + +.card-header-pills { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: var(--bs-card-img-overlay-padding); + border-radius: var(--bs-card-inner-border-radius); +} + +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; +} + +.card-img, +.card-img-top { + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); +} + +.card-group > .card { + margin-bottom: var(--bs-card-group-margin); +} +@media (min-width: 576px) { + .card-group { + display: flex; + flex-flow: row wrap; + } + .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-top, + .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-top, + .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} + +.accordion { + --bs-accordion-color: #212529; + --bs-accordion-bg: #fff; + --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; + --bs-accordion-border-color: var(--bs-border-color); + --bs-accordion-border-width: 1px; + --bs-accordion-border-radius: 0.375rem; + --bs-accordion-inner-border-radius: calc(0.375rem - 1px); + --bs-accordion-btn-padding-x: 1.25rem; + --bs-accordion-btn-padding-y: 1rem; + --bs-accordion-btn-color: #212529; + --bs-accordion-btn-bg: var(--bs-accordion-bg); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon-width: 1.25rem; + --bs-accordion-btn-icon-transform: rotate(-180deg); + --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%232532d8'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-focus-border-color: #949bf8; + --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(41, 55, 240, 0.25); + --bs-accordion-body-padding-x: 1.25rem; + --bs-accordion-body-padding-y: 1rem; + --bs-accordion-active-color: #2532d8; + --bs-accordion-active-bg: #eaebfe; +} + +.accordion-button { + position: relative; + display: flex; + align-items: center; + width: 100%; + padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x); + font-size: 1rem; + color: var(--bs-accordion-btn-color); + text-align: left; + background-color: var(--bs-accordion-btn-bg); + border: 0; + border-radius: 0; + overflow-anchor: none; + transition: var(--bs-accordion-transition); +} +@media (prefers-reduced-motion: reduce) { + .accordion-button { + transition: none; + } +} +.accordion-button:not(.collapsed) { + color: var(--bs-accordion-active-color); + background-color: var(--bs-accordion-active-bg); + box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color); +} +.accordion-button:not(.collapsed)::after { + background-image: var(--bs-accordion-btn-active-icon); + transform: var(--bs-accordion-btn-icon-transform); +} +.accordion-button::after { + flex-shrink: 0; + width: var(--bs-accordion-btn-icon-width); + height: var(--bs-accordion-btn-icon-width); + margin-left: auto; + content: ""; + background-image: var(--bs-accordion-btn-icon); + background-repeat: no-repeat; + background-size: var(--bs-accordion-btn-icon-width); + transition: var(--bs-accordion-btn-icon-transition); +} +@media (prefers-reduced-motion: reduce) { + .accordion-button::after { + transition: none; + } +} +.accordion-button:hover { + z-index: 2; +} +.accordion-button:focus { + z-index: 3; + border-color: var(--bs-accordion-btn-focus-border-color); + outline: 0; + box-shadow: var(--bs-accordion-btn-focus-box-shadow); +} + +.accordion-header { + margin-bottom: 0; +} + +.accordion-item { + color: var(--bs-accordion-color); + background-color: var(--bs-accordion-bg); + border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color); +} +.accordion-item:first-of-type { + border-top-left-radius: var(--bs-accordion-border-radius); + border-top-right-radius: var(--bs-accordion-border-radius); +} +.accordion-item:first-of-type .accordion-button { + border-top-left-radius: var(--bs-accordion-inner-border-radius); + border-top-right-radius: var(--bs-accordion-inner-border-radius); +} +.accordion-item:not(:first-of-type) { + border-top: 0; +} +.accordion-item:last-of-type { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); +} +.accordion-item:last-of-type .accordion-button.collapsed { + border-bottom-right-radius: var(--bs-accordion-inner-border-radius); + border-bottom-left-radius: var(--bs-accordion-inner-border-radius); +} +.accordion-item:last-of-type .accordion-collapse { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); +} + +.accordion-body { + padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x); +} + +.accordion-flush .accordion-collapse { + border-width: 0; +} +.accordion-flush .accordion-item { + border-right: 0; + border-left: 0; + border-radius: 0; +} +.accordion-flush .accordion-item:first-child { + border-top: 0; +} +.accordion-flush .accordion-item:last-child { + border-bottom: 0; +} +.accordion-flush .accordion-item .accordion-button, .accordion-flush .accordion-item .accordion-button.collapsed { + border-radius: 0; +} + +.breadcrumb { + --bs-breadcrumb-padding-x: 0; + --bs-breadcrumb-padding-y: 0; + --bs-breadcrumb-margin-bottom: 1rem; + --bs-breadcrumb-bg: ; + --bs-breadcrumb-border-radius: ; + --bs-breadcrumb-divider-color: #6c757d; + --bs-breadcrumb-item-padding-x: 0.5rem; + --bs-breadcrumb-item-active-color: #6c757d; + display: flex; + flex-wrap: wrap; + padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x); + margin-bottom: var(--bs-breadcrumb-margin-bottom); + font-size: var(--bs-breadcrumb-font-size); + list-style: none; + background-color: var(--bs-breadcrumb-bg); + border-radius: var(--bs-breadcrumb-border-radius); +} + +.breadcrumb-item + .breadcrumb-item { + padding-left: var(--bs-breadcrumb-item-padding-x); +} +.breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: var(--bs-breadcrumb-item-padding-x); + color: var(--bs-breadcrumb-divider-color); + content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; +} +.breadcrumb-item.active { + color: var(--bs-breadcrumb-item-active-color); +} + +.pagination { + --bs-pagination-padding-x: 0.75rem; + --bs-pagination-padding-y: 0.375rem; + --bs-pagination-font-size: 1rem; + --bs-pagination-color: var(--bs-link-color); + --bs-pagination-bg: #fff; + --bs-pagination-border-width: 1px; + --bs-pagination-border-color: #dee2e6; + --bs-pagination-border-radius: 0.375rem; + --bs-pagination-hover-color: var(--bs-link-hover-color); + --bs-pagination-hover-bg: #e9ecef; + --bs-pagination-hover-border-color: #dee2e6; + --bs-pagination-focus-color: var(--bs-link-hover-color); + --bs-pagination-focus-bg: #e9ecef; + --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(41, 55, 240, 0.25); + --bs-pagination-active-color: #fff; + --bs-pagination-active-bg: #2937f0; + --bs-pagination-active-border-color: #2937f0; + --bs-pagination-disabled-color: #6c757d; + --bs-pagination-disabled-bg: #fff; + --bs-pagination-disabled-border-color: #dee2e6; + display: flex; + padding-left: 0; + list-style: none; +} + +.page-link { + position: relative; + display: block; + padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x); + font-size: var(--bs-pagination-font-size); + color: var(--bs-pagination-color); + text-decoration: none; + background-color: var(--bs-pagination-bg); + border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .page-link { + transition: none; + } +} +.page-link:hover { + z-index: 2; + color: var(--bs-pagination-hover-color); + background-color: var(--bs-pagination-hover-bg); + border-color: var(--bs-pagination-hover-border-color); +} +.page-link:focus { + z-index: 3; + color: var(--bs-pagination-focus-color); + background-color: var(--bs-pagination-focus-bg); + outline: 0; + box-shadow: var(--bs-pagination-focus-box-shadow); +} +.page-link.active, .active > .page-link { + z-index: 3; + color: var(--bs-pagination-active-color); + background-color: var(--bs-pagination-active-bg); + border-color: var(--bs-pagination-active-border-color); +} +.page-link.disabled, .disabled > .page-link { + color: var(--bs-pagination-disabled-color); + pointer-events: none; + background-color: var(--bs-pagination-disabled-bg); + border-color: var(--bs-pagination-disabled-border-color); +} + +.page-item:not(:first-child) .page-link { + margin-left: -1px; +} +.page-item:first-child .page-link { + border-top-left-radius: var(--bs-pagination-border-radius); + border-bottom-left-radius: var(--bs-pagination-border-radius); +} +.page-item:last-child .page-link { + border-top-right-radius: var(--bs-pagination-border-radius); + border-bottom-right-radius: var(--bs-pagination-border-radius); +} + +.pagination-lg { + --bs-pagination-padding-x: 1.5rem; + --bs-pagination-padding-y: 0.75rem; + --bs-pagination-font-size: 1.25rem; + --bs-pagination-border-radius: 0.5rem; +} + +.pagination-sm { + --bs-pagination-padding-x: 0.5rem; + --bs-pagination-padding-y: 0.25rem; + --bs-pagination-font-size: 0.875rem; + --bs-pagination-border-radius: 0.25rem; +} + +.badge { + --bs-badge-padding-x: 0.65em; + --bs-badge-padding-y: 0.35em; + --bs-badge-font-size: 0.75em; + --bs-badge-font-weight: 700; + --bs-badge-color: #fff; + --bs-badge-border-radius: 0.375rem; + display: inline-block; + padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x); + font-size: var(--bs-badge-font-size); + font-weight: var(--bs-badge-font-weight); + line-height: 1; + color: var(--bs-badge-color); + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: var(--bs-badge-border-radius); +} +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.alert { + --bs-alert-bg: transparent; + --bs-alert-padding-x: 1rem; + --bs-alert-padding-y: 1rem; + --bs-alert-margin-bottom: 1rem; + --bs-alert-color: inherit; + --bs-alert-border-color: transparent; + --bs-alert-border: 1px solid var(--bs-alert-border-color); + --bs-alert-border-radius: 0.375rem; + position: relative; + padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x); + margin-bottom: var(--bs-alert-margin-bottom); + color: var(--bs-alert-color); + background-color: var(--bs-alert-bg); + border: var(--bs-alert-border); + border-radius: var(--bs-alert-border-radius); +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 700; +} + +.alert-dismissible { + padding-right: 3rem; +} +.alert-dismissible .btn-close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 1.25rem 1rem; +} + +.alert-primary { + --bs-alert-color: #192190; + --bs-alert-bg: #d4d7fc; + --bs-alert-border-color: #bfc3fb; +} +.alert-primary .alert-link { + color: #141a73; +} + +.alert-secondary { + --bs-alert-color: #5f1088; + --bs-alert-bg: #ecd1f9; + --bs-alert-border-color: #e2baf6; +} +.alert-secondary .alert-link { + color: #4c0d6d; +} + +.alert-success { + --bs-alert-color: #0f5132; + --bs-alert-bg: #d1e7dd; + --bs-alert-border-color: #badbcc; +} +.alert-success .alert-link { + color: #0c4128; +} + +.alert-info { + --bs-alert-color: #055160; + --bs-alert-bg: #cff4fc; + --bs-alert-border-color: #b6effb; +} +.alert-info .alert-link { + color: #04414d; +} + +.alert-warning { + --bs-alert-color: #664d03; + --bs-alert-bg: #fff3cd; + --bs-alert-border-color: #ffecb5; +} +.alert-warning .alert-link { + color: #523e02; +} + +.alert-danger { + --bs-alert-color: #842029; + --bs-alert-bg: #f8d7da; + --bs-alert-border-color: #f5c2c7; +} +.alert-danger .alert-link { + color: #6a1a21; +} + +.alert-light { + --bs-alert-color: #636464; + --bs-alert-bg: #fefefe; + --bs-alert-border-color: #fdfdfe; +} +.alert-light .alert-link { + color: #4f5050; +} + +.alert-dark { + --bs-alert-color: #141619; + --bs-alert-bg: #d3d3d4; + --bs-alert-border-color: #bcbebf; +} +.alert-dark .alert-link { + color: #101214; +} + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} +.progress { + --bs-progress-height: 1rem; + --bs-progress-font-size: 0.75rem; + --bs-progress-bg: #e9ecef; + --bs-progress-border-radius: 0.375rem; + --bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075); + --bs-progress-bar-color: #fff; + --bs-progress-bar-bg: #2937f0; + --bs-progress-bar-transition: width 0.6s ease; + display: flex; + height: var(--bs-progress-height); + overflow: hidden; + font-size: var(--bs-progress-font-size); + background-color: var(--bs-progress-bg); + border-radius: var(--bs-progress-border-radius); +} + +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: var(--bs-progress-bar-color); + text-align: center; + white-space: nowrap; + background-color: var(--bs-progress-bar-bg); + transition: var(--bs-progress-bar-transition); +} +@media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; + } +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: var(--bs-progress-height) var(--bs-progress-height); +} + +.progress-bar-animated { + animation: 1s linear infinite progress-bar-stripes; +} +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + animation: none; + } +} + +.list-group { + --bs-list-group-color: #212529; + --bs-list-group-bg: #fff; + --bs-list-group-border-color: rgba(0, 0, 0, 0.125); + --bs-list-group-border-width: 1px; + --bs-list-group-border-radius: 0.375rem; + --bs-list-group-item-padding-x: 1rem; + --bs-list-group-item-padding-y: 0.5rem; + --bs-list-group-action-color: #495057; + --bs-list-group-action-hover-color: #495057; + --bs-list-group-action-hover-bg: #f8f9fa; + --bs-list-group-action-active-color: #212529; + --bs-list-group-action-active-bg: #e9ecef; + --bs-list-group-disabled-color: #6c757d; + --bs-list-group-disabled-bg: #fff; + --bs-list-group-active-color: #fff; + --bs-list-group-active-bg: #2937f0; + --bs-list-group-active-border-color: #2937f0; + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: var(--bs-list-group-border-radius); +} + +.list-group-numbered { + list-style-type: none; + counter-reset: section; +} +.list-group-numbered > .list-group-item::before { + content: counters(section, ".") ". "; + counter-increment: section; +} + +.list-group-item-action { + width: 100%; + color: var(--bs-list-group-action-color); + text-align: inherit; +} +.list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: var(--bs-list-group-action-hover-color); + text-decoration: none; + background-color: var(--bs-list-group-action-hover-bg); +} +.list-group-item-action:active { + color: var(--bs-list-group-action-active-color); + background-color: var(--bs-list-group-action-active-bg); +} + +.list-group-item { + position: relative; + display: block; + padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x); + color: var(--bs-list-group-color); + text-decoration: none; + background-color: var(--bs-list-group-bg); + border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color); +} +.list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} +.list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; +} +.list-group-item.disabled, .list-group-item:disabled { + color: var(--bs-list-group-disabled-color); + pointer-events: none; + background-color: var(--bs-list-group-disabled-bg); +} +.list-group-item.active { + z-index: 2; + color: var(--bs-list-group-active-color); + background-color: var(--bs-list-group-active-bg); + border-color: var(--bs-list-group-active-border-color); +} +.list-group-item + .list-group-item { + border-top-width: 0; +} +.list-group-item + .list-group-item.active { + margin-top: calc(-1 * var(--bs-list-group-border-width)); + border-top-width: var(--bs-list-group-border-width); +} + +.list-group-horizontal { + flex-direction: row; +} +.list-group-horizontal > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; +} +.list-group-horizontal > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; +} +.list-group-horizontal > .list-group-item.active { + margin-top: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; + } + .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; + } + .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; + } + .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; + } + .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +@media (min-width: 1400px) { + .list-group-horizontal-xxl { + flex-direction: row; + } + .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +.list-group-flush { + border-radius: 0; +} +.list-group-flush > .list-group-item { + border-width: 0 0 var(--bs-list-group-border-width); +} +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} + +.list-group-item-primary { + color: #192190; + background-color: #d4d7fc; +} +.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { + color: #192190; + background-color: #bfc2e3; +} +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #192190; + border-color: #192190; +} + +.list-group-item-secondary { + color: #5f1088; + background-color: #ecd1f9; +} +.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { + color: #5f1088; + background-color: #d4bce0; +} +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #5f1088; + border-color: #5f1088; +} + +.list-group-item-success { + color: #0f5132; + background-color: #d1e7dd; +} +.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { + color: #0f5132; + background-color: #bcd0c7; +} +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #0f5132; + border-color: #0f5132; +} + +.list-group-item-info { + color: #055160; + background-color: #cff4fc; +} +.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { + color: #055160; + background-color: #badce3; +} +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #055160; + border-color: #055160; +} + +.list-group-item-warning { + color: #664d03; + background-color: #fff3cd; +} +.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { + color: #664d03; + background-color: #e6dbb9; +} +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #664d03; + border-color: #664d03; +} + +.list-group-item-danger { + color: #842029; + background-color: #f8d7da; +} +.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { + color: #842029; + background-color: #dfc2c4; +} +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #842029; + border-color: #842029; +} + +.list-group-item-light { + color: #636464; + background-color: #fefefe; +} +.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { + color: #636464; + background-color: #e5e5e5; +} +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #636464; + border-color: #636464; +} + +.list-group-item-dark { + color: #141619; + background-color: #d3d3d4; +} +.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { + color: #141619; + background-color: #bebebf; +} +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #141619; + border-color: #141619; +} + +.btn-close { + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: #000; + background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat; + border: 0; + border-radius: 0.375rem; + opacity: 0.5; +} +.btn-close:hover { + color: #000; + text-decoration: none; + opacity: 0.75; +} +.btn-close:focus { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(41, 55, 240, 0.25); + opacity: 1; +} +.btn-close:disabled, .btn-close.disabled { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + opacity: 0.25; +} + +.btn-close-white { + filter: invert(1) grayscale(100%) brightness(200%); +} + +.toast { + --bs-toast-zindex: 1090; + --bs-toast-padding-x: 0.75rem; + --bs-toast-padding-y: 0.5rem; + --bs-toast-spacing: 1.5rem; + --bs-toast-max-width: 350px; + --bs-toast-font-size: 0.875rem; + --bs-toast-color: ; + --bs-toast-bg: rgba(255, 255, 255, 0.85); + --bs-toast-border-width: 1px; + --bs-toast-border-color: var(--bs-border-color-translucent); + --bs-toast-border-radius: 0.375rem; + --bs-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-toast-header-color: #6c757d; + --bs-toast-header-bg: rgba(255, 255, 255, 0.85); + --bs-toast-header-border-color: rgba(0, 0, 0, 0.05); + width: var(--bs-toast-max-width); + max-width: 100%; + font-size: var(--bs-toast-font-size); + color: var(--bs-toast-color); + pointer-events: auto; + background-color: var(--bs-toast-bg); + background-clip: padding-box; + border: var(--bs-toast-border-width) solid var(--bs-toast-border-color); + box-shadow: var(--bs-toast-box-shadow); + border-radius: var(--bs-toast-border-radius); +} +.toast.showing { + opacity: 0; +} +.toast:not(.show) { + display: none; +} + +.toast-container { + --bs-toast-zindex: 1090; + position: absolute; + z-index: var(--bs-toast-zindex); + width: -moz-max-content; + width: max-content; + max-width: 100%; + pointer-events: none; +} +.toast-container > :not(:last-child) { + margin-bottom: var(--bs-toast-spacing); +} + +.toast-header { + display: flex; + align-items: center; + padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x); + color: var(--bs-toast-header-color); + background-color: var(--bs-toast-header-bg); + background-clip: padding-box; + border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color); + border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); + border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); +} +.toast-header .btn-close { + margin-right: calc(-0.5 * var(--bs-toast-padding-x)); + margin-left: var(--bs-toast-padding-x); +} + +.toast-body { + padding: var(--bs-toast-padding-x); + word-wrap: break-word; +} + +.modal { + --bs-modal-zindex: 1055; + --bs-modal-width: 500px; + --bs-modal-padding: 1rem; + --bs-modal-margin: 0.5rem; + --bs-modal-color: ; + --bs-modal-bg: #fff; + --bs-modal-border-color: var(--bs-border-color-translucent); + --bs-modal-border-width: 1px; + --bs-modal-border-radius: 0.5rem; + --bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); + --bs-modal-inner-border-radius: calc(0.5rem - 1px); + --bs-modal-header-padding-x: 1rem; + --bs-modal-header-padding-y: 1rem; + --bs-modal-header-padding: 1rem 1rem; + --bs-modal-header-border-color: var(--bs-border-color); + --bs-modal-header-border-width: 1px; + --bs-modal-title-line-height: 1.5; + --bs-modal-footer-gap: 0.5rem; + --bs-modal-footer-bg: ; + --bs-modal-footer-border-color: var(--bs-border-color); + --bs-modal-footer-border-width: 1px; + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-modal-zindex); + display: none; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + outline: 0; +} + +.modal-dialog { + position: relative; + width: auto; + margin: var(--bs-modal-margin); + pointer-events: none; +} +.modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -50px); +} +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} +.modal.show .modal-dialog { + transform: none; +} +.modal.modal-static .modal-dialog { + transform: scale(1.02); +} + +.modal-dialog-scrollable { + height: calc(100% - var(--bs-modal-margin) * 2); +} +.modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden; +} +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - var(--bs-modal-margin) * 2); +} + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + color: var(--bs-modal-color); + pointer-events: auto; + background-color: var(--bs-modal-bg); + background-clip: padding-box; + border: var(--bs-modal-border-width) solid var(--bs-modal-border-color); + border-radius: var(--bs-modal-border-radius); + outline: 0; +} + +.modal-backdrop { + --bs-backdrop-zindex: 1050; + --bs-backdrop-bg: #000; + --bs-backdrop-opacity: 0.5; + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-backdrop-zindex); + width: 100vw; + height: 100vh; + background-color: var(--bs-backdrop-bg); +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop.show { + opacity: var(--bs-backdrop-opacity); +} + +.modal-header { + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: space-between; + padding: var(--bs-modal-header-padding); + border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color); + border-top-left-radius: var(--bs-modal-inner-border-radius); + border-top-right-radius: var(--bs-modal-inner-border-radius); +} +.modal-header .btn-close { + padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5); + margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto; +} + +.modal-title { + margin-bottom: 0; + line-height: var(--bs-modal-title-line-height); +} + +.modal-body { + position: relative; + flex: 1 1 auto; + padding: var(--bs-modal-padding); +} + +.modal-footer { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5); + background-color: var(--bs-modal-footer-bg); + border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color); + border-bottom-right-radius: var(--bs-modal-inner-border-radius); + border-bottom-left-radius: var(--bs-modal-inner-border-radius); +} +.modal-footer > * { + margin: calc(var(--bs-modal-footer-gap) * 0.5); +} + +@media (min-width: 576px) { + .modal { + --bs-modal-margin: 1.75rem; + --bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + } + .modal-dialog { + max-width: var(--bs-modal-width); + margin-right: auto; + margin-left: auto; + } + .modal-sm { + --bs-modal-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + --bs-modal-width: 800px; + } +} +@media (min-width: 1200px) { + .modal-xl { + --bs-modal-width: 1140px; + } +} +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; +} +.modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; +} +.modal-fullscreen .modal-header, +.modal-fullscreen .modal-footer { + border-radius: 0; +} +.modal-fullscreen .modal-body { + overflow-y: auto; +} + +@media (max-width: 575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-header, + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-md-down .modal-header, + .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-header, + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-header, + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 1399.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-header, + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } +} +.tooltip { + --bs-tooltip-zindex: 1080; + --bs-tooltip-max-width: 200px; + --bs-tooltip-padding-x: 0.5rem; + --bs-tooltip-padding-y: 0.25rem; + --bs-tooltip-margin: ; + --bs-tooltip-font-size: 0.875rem; + --bs-tooltip-color: #fff; + --bs-tooltip-bg: #000; + --bs-tooltip-border-radius: 0.375rem; + --bs-tooltip-opacity: 0.9; + --bs-tooltip-arrow-width: 0.8rem; + --bs-tooltip-arrow-height: 0.4rem; + z-index: var(--bs-tooltip-zindex); + display: block; + padding: var(--bs-tooltip-arrow-height); + margin: var(--bs-tooltip-margin); + font-family: "Mulish", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-style: normal; + font-weight: 500; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-tooltip-font-size); + word-wrap: break-word; + opacity: 0; +} +.tooltip.show { + opacity: var(--bs-tooltip-opacity); +} +.tooltip .tooltip-arrow { + display: block; + width: var(--bs-tooltip-arrow-width); + height: var(--bs-tooltip-arrow-height); +} +.tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: 0; +} +.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-top-color: var(--bs-tooltip-bg); +} + +/* rtl:begin:ignore */ +.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left: 0; + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} +.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-right-color: var(--bs-tooltip-bg); +} + +/* rtl:end:ignore */ +.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: 0; +} +.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-bottom-color: var(--bs-tooltip-bg); +} + +/* rtl:begin:ignore */ +.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right: 0; + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} +.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-left-color: var(--bs-tooltip-bg); +} + +/* rtl:end:ignore */ +.tooltip-inner { + max-width: var(--bs-tooltip-max-width); + padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x); + color: var(--bs-tooltip-color); + text-align: center; + background-color: var(--bs-tooltip-bg); + border-radius: var(--bs-tooltip-border-radius); +} + +.popover { + --bs-popover-zindex: 1070; + --bs-popover-max-width: 276px; + --bs-popover-font-size: 0.875rem; + --bs-popover-bg: #fff; + --bs-popover-border-width: 1px; + --bs-popover-border-color: var(--bs-border-color-translucent); + --bs-popover-border-radius: 0.5rem; + --bs-popover-inner-border-radius: calc(0.5rem - 1px); + --bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-popover-header-padding-x: 1rem; + --bs-popover-header-padding-y: 0.5rem; + --bs-popover-header-font-size: 1rem; + --bs-popover-header-color: ; + --bs-popover-header-bg: #f0f0f0; + --bs-popover-body-padding-x: 1rem; + --bs-popover-body-padding-y: 1rem; + --bs-popover-body-color: #212529; + --bs-popover-arrow-width: 1rem; + --bs-popover-arrow-height: 0.5rem; + --bs-popover-arrow-border: var(--bs-popover-border-color); + z-index: var(--bs-popover-zindex); + display: block; + max-width: var(--bs-popover-max-width); + font-family: "Mulish", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-style: normal; + font-weight: 500; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-popover-font-size); + word-wrap: break-word; + background-color: var(--bs-popover-bg); + background-clip: padding-box; + border: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-radius: var(--bs-popover-border-radius); +} +.popover .popover-arrow { + display: block; + width: var(--bs-popover-arrow-width); + height: var(--bs-popover-arrow-height); +} +.popover .popover-arrow::before, .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; + border-width: 0; +} + +.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-top-color: var(--bs-popover-arrow-border); +} +.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: var(--bs-popover-border-width); + border-top-color: var(--bs-popover-bg); +} + +/* rtl:begin:ignore */ +.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { + left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + left: 0; + border-right-color: var(--bs-popover-arrow-border); +} +.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + left: var(--bs-popover-border-width); + border-right-color: var(--bs-popover-bg); +} + +/* rtl:end:ignore */ +.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-bottom-color: var(--bs-popover-arrow-border); +} +.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: var(--bs-popover-border-width); + border-bottom-color: var(--bs-popover-bg); +} +.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: var(--bs-popover-arrow-width); + margin-left: calc(-0.5 * var(--bs-popover-arrow-width)); + content: ""; + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); +} + +/* rtl:begin:ignore */ +.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { + right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + right: 0; + border-left-color: var(--bs-popover-arrow-border); +} +.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + right: var(--bs-popover-border-width); + border-left-color: var(--bs-popover-bg); +} + +/* rtl:end:ignore */ +.popover-header { + padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x); + margin-bottom: 0; + font-size: var(--bs-popover-header-font-size); + color: var(--bs-popover-header-color); + background-color: var(--bs-popover-header-bg); + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-top-left-radius: var(--bs-popover-inner-border-radius); + border-top-right-radius: var(--bs-popover-inner-border-radius); +} +.popover-header:empty { + display: none; +} + +.popover-body { + padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x); + color: var(--bs-popover-body-color); +} + +.carousel { + position: relative; +} + +.carousel.pointer-event { + touch-action: pan-y; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next:not(.carousel-item-start), +.active.carousel-item-end { + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-end), +.active.carousel-item-start { + transform: translateX(-100%); +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-start, +.carousel-fade .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; +} +.carousel-fade .active.carousel-item-start, +.carousel-fade .active.carousel-item-end { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-start, + .carousel-fade .active.carousel-item-end { + transition: none; + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + padding: 0; + color: #fff; + text-align: center; + background: none; + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; + } +} +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; +} + +/* rtl:options: { + "autoRename": true, + "stringMap":[ { + "name" : "prev-next", + "search" : "prev", + "replace" : "next" + } ] +} */ +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e"); +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding: 0; + margin-right: 15%; + margin-bottom: 1rem; + margin-left: 15%; + list-style: none; +} +.carousel-indicators [data-bs-target] { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + padding: 0; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-indicators [data-bs-target] { + transition: none; + } +} +.carousel-indicators .active { + opacity: 1; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: #fff; + text-align: center; +} + +.carousel-dark .carousel-control-prev-icon, +.carousel-dark .carousel-control-next-icon { + filter: invert(1) grayscale(100); +} +.carousel-dark .carousel-indicators [data-bs-target] { + background-color: #000; +} +.carousel-dark .carousel-caption { + color: #000; +} + +.spinner-grow, +.spinner-border { + display: inline-block; + width: var(--bs-spinner-width); + height: var(--bs-spinner-height); + vertical-align: var(--bs-spinner-vertical-align); + border-radius: 50%; + animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); +} + +@keyframes spinner-border { + to { + transform: rotate(360deg) /* rtl:ignore */; + } +} +.spinner-border { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-border-width: 0.25em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-border; + border: var(--bs-spinner-border-width) solid currentcolor; + border-right-color: transparent; +} + +.spinner-border-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; + --bs-spinner-border-width: 0.2em; +} + +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + transform: none; + } +} +.spinner-grow { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-grow; + background-color: currentcolor; + opacity: 0; +} + +.spinner-grow-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; +} + +@media (prefers-reduced-motion: reduce) { + .spinner-border, + .spinner-grow { + --bs-spinner-animation-speed: 1.5s; + } +} +.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm { + --bs-offcanvas-zindex: 1045; + --bs-offcanvas-width: 400px; + --bs-offcanvas-height: 30vh; + --bs-offcanvas-padding-x: 1rem; + --bs-offcanvas-padding-y: 1rem; + --bs-offcanvas-color: ; + --bs-offcanvas-bg: #fff; + --bs-offcanvas-border-width: 1px; + --bs-offcanvas-border-color: var(--bs-border-color-translucent); + --bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); +} + +@media (max-width: 575.98px) { + .offcanvas-sm { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} +@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-sm { + transition: none; + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show { + visibility: visible; + } +} +@media (min-width: 576px) { + .offcanvas-sm { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-sm .offcanvas-header { + display: none; + } + .offcanvas-sm .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 767.98px) { + .offcanvas-md { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} +@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-md { + transition: none; + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} +@media (max-width: 767.98px) { + .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 767.98px) { + .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show { + visibility: visible; + } +} +@media (min-width: 768px) { + .offcanvas-md { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-md .offcanvas-header { + display: none; + } + .offcanvas-md .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 991.98px) { + .offcanvas-lg { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} +@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-lg { + transition: none; + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show { + visibility: visible; + } +} +@media (min-width: 992px) { + .offcanvas-lg { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-lg .offcanvas-header { + display: none; + } + .offcanvas-lg .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1199.98px) { + .offcanvas-xl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} +@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xl { + transition: none; + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show { + visibility: visible; + } +} +@media (min-width: 1200px) { + .offcanvas-xl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xl .offcanvas-header { + display: none; + } + .offcanvas-xl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1399.98px) { + .offcanvas-xxl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} +@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xxl { + transition: none; + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show { + visibility: visible; + } +} +@media (min-width: 1400px) { + .offcanvas-xxl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xxl .offcanvas-header { + display: none; + } + .offcanvas-xxl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +.offcanvas { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .offcanvas { + transition: none; + } +} +.offcanvas.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); +} +.offcanvas.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); +} +.offcanvas.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); +} +.offcanvas.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); +} +.offcanvas.showing, .offcanvas.show:not(.hiding) { + transform: none; +} +.offcanvas.showing, .offcanvas.hiding, .offcanvas.show { + visibility: visible; +} + +.offcanvas-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} +.offcanvas-backdrop.fade { + opacity: 0; +} +.offcanvas-backdrop.show { + opacity: 0.5; +} + +.offcanvas-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); +} +.offcanvas-header .btn-close { + padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5); + margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y)); + margin-right: calc(-0.5 * var(--bs-offcanvas-padding-x)); + margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y)); +} + +.offcanvas-title { + margin-bottom: 0; + line-height: 1.5; +} + +.offcanvas-body { + flex-grow: 1; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); + overflow-y: auto; +} + +.placeholder { + display: inline-block; + min-height: 1em; + vertical-align: middle; + cursor: wait; + background-color: currentcolor; + opacity: 0.5; +} +.placeholder.btn::before { + display: inline-block; + content: ""; +} + +.placeholder-xs { + min-height: 0.6em; +} + +.placeholder-sm { + min-height: 0.8em; +} + +.placeholder-lg { + min-height: 1.2em; +} + +.placeholder-glow .placeholder { + animation: placeholder-glow 2s ease-in-out infinite; +} + +@keyframes placeholder-glow { + 50% { + opacity: 0.2; + } +} +.placeholder-wave { + -webkit-mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + -webkit-mask-size: 200% 100%; + mask-size: 200% 100%; + animation: placeholder-wave 2s linear infinite; +} + +@keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0%; + } +} +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.text-bg-primary { + color: #fff !important; + background-color: RGBA(41, 55, 240, var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-secondary { + color: #fff !important; + background-color: RGBA(159, 26, 226, var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-success { + color: #fff !important; + background-color: RGBA(25, 135, 84, var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-info { + color: #000 !important; + background-color: RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-warning { + color: #000 !important; + background-color: RGBA(255, 193, 7, var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-danger { + color: #fff !important; + background-color: RGBA(220, 53, 69, var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-light { + color: #000 !important; + background-color: RGBA(248, 249, 250, var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-dark { + color: #fff !important; + background-color: RGBA(33, 37, 41, var(--bs-bg-opacity, 1)) !important; +} + +.link-primary { + color: #2937f0 !important; +} +.link-primary:hover, .link-primary:focus { + color: #212cc0 !important; +} + +.link-secondary { + color: #9f1ae2 !important; +} +.link-secondary:hover, .link-secondary:focus { + color: #7f15b5 !important; +} + +.link-success { + color: #198754 !important; +} +.link-success:hover, .link-success:focus { + color: #146c43 !important; +} + +.link-info { + color: #0dcaf0 !important; +} +.link-info:hover, .link-info:focus { + color: #3dd5f3 !important; +} + +.link-warning { + color: #ffc107 !important; +} +.link-warning:hover, .link-warning:focus { + color: #ffcd39 !important; +} + +.link-danger { + color: #dc3545 !important; +} +.link-danger:hover, .link-danger:focus { + color: #b02a37 !important; +} + +.link-light { + color: #f8f9fa !important; +} +.link-light:hover, .link-light:focus { + color: #f9fafb !important; +} + +.link-dark { + color: #212529 !important; +} +.link-dark:hover, .link-dark:focus { + color: #1a1e21 !important; +} + +.ratio { + position: relative; + width: 100%; +} +.ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: ""; +} +.ratio > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.ratio-1x1 { + --bs-aspect-ratio: 100%; +} + +.ratio-4x3 { + --bs-aspect-ratio: 75%; +} + +.ratio-16x9 { + --bs-aspect-ratio: 56.25%; +} + +.ratio-21x9 { + --bs-aspect-ratio: 42.8571428571%; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +.sticky-top { + position: sticky; + top: 0; + z-index: 1020; +} + +.sticky-bottom { + position: sticky; + bottom: 0; + z-index: 1020; +} + +@media (min-width: 576px) { + .sticky-sm-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-sm-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 768px) { + .sticky-md-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-md-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 992px) { + .sticky-lg-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-lg-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 1200px) { + .sticky-xl-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-xl-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 1400px) { + .sticky-xxl-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-xxl-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +.hstack { + display: flex; + flex-direction: row; + align-items: center; + align-self: stretch; +} + +.vstack { + display: flex; + flex: 1 1 auto; + flex-direction: column; + align-self: stretch; +} + +.visually-hidden, +.visually-hidden-focusable:not(:focus):not(:focus-within) { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: ""; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.vr { + display: inline-block; + align-self: stretch; + width: 1px; + min-height: 1em; + background-color: currentcolor; + opacity: 0.25; +} + +.align-baseline { + vertical-align: baseline !important; +} + +.align-top { + vertical-align: top !important; +} + +.align-middle { + vertical-align: middle !important; +} + +.align-bottom { + vertical-align: bottom !important; +} + +.align-text-bottom { + vertical-align: text-bottom !important; +} + +.align-text-top { + vertical-align: text-top !important; +} + +.float-start { + float: left !important; +} + +.float-end { + float: right !important; +} + +.float-none { + float: none !important; +} + +.opacity-0 { + opacity: 0 !important; +} + +.opacity-25 { + opacity: 0.25 !important; +} + +.opacity-50 { + opacity: 0.5 !important; +} + +.opacity-75 { + opacity: 0.75 !important; +} + +.opacity-100 { + opacity: 1 !important; +} + +.overflow-auto { + overflow: auto !important; +} + +.overflow-hidden { + overflow: hidden !important; +} + +.overflow-visible { + overflow: visible !important; +} + +.overflow-scroll { + overflow: scroll !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-grid { + display: grid !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline-flex { + display: inline-flex !important; +} + +.d-none { + display: none !important; +} + +.shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.shadow-none { + box-shadow: none !important; +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: sticky !important; +} + +.top-0 { + top: 0 !important; +} + +.top-50 { + top: 50% !important; +} + +.top-100 { + top: 100% !important; +} + +.bottom-0 { + bottom: 0 !important; +} + +.bottom-50 { + bottom: 50% !important; +} + +.bottom-100 { + bottom: 100% !important; +} + +.start-0 { + left: 0 !important; +} + +.start-50 { + left: 50% !important; +} + +.start-100 { + left: 100% !important; +} + +.end-0 { + right: 0 !important; +} + +.end-50 { + right: 50% !important; +} + +.end-100 { + right: 100% !important; +} + +.translate-middle { + transform: translate(-50%, -50%) !important; +} + +.translate-middle-x { + transform: translateX(-50%) !important; +} + +.translate-middle-y { + transform: translateY(-50%) !important; +} + +.border { + border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top { + border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-end { + border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-end-0 { + border-right: 0 !important; +} + +.border-bottom { + border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-start { + border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-start-0 { + border-left: 0 !important; +} + +.border-primary { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important; +} + +.border-secondary { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important; +} + +.border-success { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important; +} + +.border-info { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important; +} + +.border-warning { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important; +} + +.border-danger { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important; +} + +.border-light { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important; +} + +.border-dark { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important; +} + +.border-white { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important; +} + +.border-1 { + --bs-border-width: 1px; +} + +.border-2 { + --bs-border-width: 2px; +} + +.border-3 { + --bs-border-width: 3px; +} + +.border-4 { + --bs-border-width: 4px; +} + +.border-5 { + --bs-border-width: 5px; +} + +.border-opacity-10 { + --bs-border-opacity: 0.1; +} + +.border-opacity-25 { + --bs-border-opacity: 0.25; +} + +.border-opacity-50 { + --bs-border-opacity: 0.5; +} + +.border-opacity-75 { + --bs-border-opacity: 0.75; +} + +.border-opacity-100 { + --bs-border-opacity: 1; +} + +.w-25 { + width: 25% !important; +} + +.w-50 { + width: 50% !important; +} + +.w-75 { + width: 75% !important; +} + +.w-100 { + width: 100% !important; +} + +.w-auto { + width: auto !important; +} + +.mw-100 { + max-width: 100% !important; +} + +.vw-100 { + width: 100vw !important; +} + +.min-vw-100 { + min-width: 100vw !important; +} + +.h-25 { + height: 25% !important; +} + +.h-50 { + height: 50% !important; +} + +.h-75 { + height: 75% !important; +} + +.h-100 { + height: 100% !important; +} + +.h-auto { + height: auto !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.vh-100 { + height: 100vh !important; +} + +.min-vh-100 { + min-height: 100vh !important; +} + +.flex-fill { + flex: 1 1 auto !important; +} + +.flex-row { + flex-direction: row !important; +} + +.flex-column { + flex-direction: column !important; +} + +.flex-row-reverse { + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + flex-direction: column-reverse !important; +} + +.flex-grow-0 { + flex-grow: 0 !important; +} + +.flex-grow-1 { + flex-grow: 1 !important; +} + +.flex-shrink-0 { + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + flex-shrink: 1 !important; +} + +.flex-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.justify-content-start { + justify-content: flex-start !important; +} + +.justify-content-end { + justify-content: flex-end !important; +} + +.justify-content-center { + justify-content: center !important; +} + +.justify-content-between { + justify-content: space-between !important; +} + +.justify-content-around { + justify-content: space-around !important; +} + +.justify-content-evenly { + justify-content: space-evenly !important; +} + +.align-items-start { + align-items: flex-start !important; +} + +.align-items-end { + align-items: flex-end !important; +} + +.align-items-center { + align-items: center !important; +} + +.align-items-baseline { + align-items: baseline !important; +} + +.align-items-stretch { + align-items: stretch !important; +} + +.align-content-start { + align-content: flex-start !important; +} + +.align-content-end { + align-content: flex-end !important; +} + +.align-content-center { + align-content: center !important; +} + +.align-content-between { + align-content: space-between !important; +} + +.align-content-around { + align-content: space-around !important; +} + +.align-content-stretch { + align-content: stretch !important; +} + +.align-self-auto { + align-self: auto !important; +} + +.align-self-start { + align-self: flex-start !important; +} + +.align-self-end { + align-self: flex-end !important; +} + +.align-self-center { + align-self: center !important; +} + +.align-self-baseline { + align-self: baseline !important; +} + +.align-self-stretch { + align-self: stretch !important; +} + +.order-first { + order: -1 !important; +} + +.order-0 { + order: 0 !important; +} + +.order-1 { + order: 1 !important; +} + +.order-2 { + order: 2 !important; +} + +.order-3 { + order: 3 !important; +} + +.order-4 { + order: 4 !important; +} + +.order-5 { + order: 5 !important; +} + +.order-last { + order: 6 !important; +} + +.m-0 { + margin: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mt-4 { + margin-top: 1.5rem !important; +} + +.mt-5 { + margin-top: 3rem !important; +} + +.mt-auto { + margin-top: auto !important; +} + +.me-0 { + margin-right: 0 !important; +} + +.me-1 { + margin-right: 0.25rem !important; +} + +.me-2 { + margin-right: 0.5rem !important; +} + +.me-3 { + margin-right: 1rem !important; +} + +.me-4 { + margin-right: 1.5rem !important; +} + +.me-5 { + margin-right: 3rem !important; +} + +.me-auto { + margin-right: auto !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.mb-3 { + margin-bottom: 1rem !important; +} + +.mb-4 { + margin-bottom: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 3rem !important; +} + +.mb-auto { + margin-bottom: auto !important; +} + +.ms-0 { + margin-left: 0 !important; +} + +.ms-1 { + margin-left: 0.25rem !important; +} + +.ms-2 { + margin-left: 0.5rem !important; +} + +.ms-3 { + margin-left: 1rem !important; +} + +.ms-4 { + margin-left: 1.5rem !important; +} + +.ms-5 { + margin-left: 3rem !important; +} + +.ms-auto { + margin-left: auto !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pe-0 { + padding-right: 0 !important; +} + +.pe-1 { + padding-right: 0.25rem !important; +} + +.pe-2 { + padding-right: 0.5rem !important; +} + +.pe-3 { + padding-right: 1rem !important; +} + +.pe-4 { + padding-right: 1.5rem !important; +} + +.pe-5 { + padding-right: 3rem !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.ps-0 { + padding-left: 0 !important; +} + +.ps-1 { + padding-left: 0.25rem !important; +} + +.ps-2 { + padding-left: 0.5rem !important; +} + +.ps-3 { + padding-left: 1rem !important; +} + +.ps-4 { + padding-left: 1.5rem !important; +} + +.ps-5 { + padding-left: 3rem !important; +} + +.gap-0 { + gap: 0 !important; +} + +.gap-1 { + gap: 0.25rem !important; +} + +.gap-2 { + gap: 0.5rem !important; +} + +.gap-3 { + gap: 1rem !important; +} + +.gap-4 { + gap: 1.5rem !important; +} + +.gap-5 { + gap: 3rem !important; +} + +.font-monospace { + font-family: var(--bs-font-monospace) !important; +} + +.fs-1 { + font-size: calc(1.375rem + 1.5vw) !important; +} + +.fs-2 { + font-size: calc(1.325rem + 0.9vw) !important; +} + +.fs-3 { + font-size: calc(1.3rem + 0.6vw) !important; +} + +.fs-4 { + font-size: calc(1.275rem + 0.3vw) !important; +} + +.fs-5 { + font-size: 1.25rem !important; +} + +.fs-6 { + font-size: 1rem !important; +} + +.fst-italic { + font-style: italic !important; +} + +.fst-normal { + font-style: normal !important; +} + +.fw-light { + font-weight: 300 !important; +} + +.fw-lighter { + font-weight: lighter !important; +} + +.fw-normal { + font-weight: 500 !important; +} + +.fw-bold { + font-weight: 700 !important; +} + +.fw-semibold { + font-weight: 600 !important; +} + +.fw-bolder { + font-weight: bolder !important; +} + +.lh-1 { + line-height: 1 !important; +} + +.lh-sm { + line-height: 1.25 !important; +} + +.lh-base { + line-height: 1.5 !important; +} + +.lh-lg { + line-height: 2 !important; +} + +.text-start { + text-align: left !important; +} + +.text-end { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +.text-decoration-none { + text-decoration: none !important; +} + +.text-decoration-underline { + text-decoration: underline !important; +} + +.text-decoration-line-through { + text-decoration: line-through !important; +} + +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.text-wrap { + white-space: normal !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +/* rtl:begin:remove */ +.text-break { + word-wrap: break-word !important; + word-break: break-word !important; +} + +/* rtl:end:remove */ +.text-primary { + --bs-text-opacity: 1; + color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important; +} + +.text-secondary { + --bs-text-opacity: 1; + color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important; +} + +.text-success { + --bs-text-opacity: 1; + color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important; +} + +.text-info { + --bs-text-opacity: 1; + color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important; +} + +.text-warning { + --bs-text-opacity: 1; + color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important; +} + +.text-danger { + --bs-text-opacity: 1; + color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important; +} + +.text-light { + --bs-text-opacity: 1; + color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important; +} + +.text-dark { + --bs-text-opacity: 1; + color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important; +} + +.text-black { + --bs-text-opacity: 1; + color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important; +} + +.text-white { + --bs-text-opacity: 1; + color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important; +} + +.text-body { + --bs-text-opacity: 1; + color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important; +} + +.text-muted { + --bs-text-opacity: 1; + color: #6c757d !important; +} + +.text-black-50 { + --bs-text-opacity: 1; + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + --bs-text-opacity: 1; + color: rgba(255, 255, 255, 0.5) !important; +} + +.text-reset { + --bs-text-opacity: 1; + color: inherit !important; +} + +.text-opacity-25 { + --bs-text-opacity: 0.25; +} + +.text-opacity-50 { + --bs-text-opacity: 0.5; +} + +.text-opacity-75 { + --bs-text-opacity: 0.75; +} + +.text-opacity-100 { + --bs-text-opacity: 1; +} + +.bg-primary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-secondary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-success { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-info { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-warning { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-danger { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-light { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-dark { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-black { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-white { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-body { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-transparent { + --bs-bg-opacity: 1; + background-color: transparent !important; +} + +.bg-opacity-10 { + --bs-bg-opacity: 0.1; +} + +.bg-opacity-25 { + --bs-bg-opacity: 0.25; +} + +.bg-opacity-50 { + --bs-bg-opacity: 0.5; +} + +.bg-opacity-75 { + --bs-bg-opacity: 0.75; +} + +.bg-opacity-100 { + --bs-bg-opacity: 1; +} + +.bg-gradient { + background-image: var(--bs-gradient) !important; +} + +.user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + user-select: all !important; +} + +.user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + user-select: auto !important; +} + +.user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + user-select: none !important; +} + +.pe-none { + pointer-events: none !important; +} + +.pe-auto { + pointer-events: auto !important; +} + +.rounded { + border-radius: var(--bs-border-radius) !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.rounded-1 { + border-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-2 { + border-radius: var(--bs-border-radius) !important; +} + +.rounded-3 { + border-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-4 { + border-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-5 { + border-radius: var(--bs-border-radius-2xl) !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-pill { + border-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-top { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; +} + +.rounded-end { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; +} + +.rounded-bottom { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; +} + +.rounded-start { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +@media (min-width: 576px) { + .float-sm-start { + float: left !important; + } + .float-sm-end { + float: right !important; + } + .float-sm-none { + float: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-grid { + display: grid !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline-flex { + display: inline-flex !important; + } + .d-sm-none { + display: none !important; + } + .flex-sm-fill { + flex: 1 1 auto !important; + } + .flex-sm-row { + flex-direction: row !important; + } + .flex-sm-column { + flex-direction: column !important; + } + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + .flex-sm-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-sm-start { + justify-content: flex-start !important; + } + .justify-content-sm-end { + justify-content: flex-end !important; + } + .justify-content-sm-center { + justify-content: center !important; + } + .justify-content-sm-between { + justify-content: space-between !important; + } + .justify-content-sm-around { + justify-content: space-around !important; + } + .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + .align-items-sm-start { + align-items: flex-start !important; + } + .align-items-sm-end { + align-items: flex-end !important; + } + .align-items-sm-center { + align-items: center !important; + } + .align-items-sm-baseline { + align-items: baseline !important; + } + .align-items-sm-stretch { + align-items: stretch !important; + } + .align-content-sm-start { + align-content: flex-start !important; + } + .align-content-sm-end { + align-content: flex-end !important; + } + .align-content-sm-center { + align-content: center !important; + } + .align-content-sm-between { + align-content: space-between !important; + } + .align-content-sm-around { + align-content: space-around !important; + } + .align-content-sm-stretch { + align-content: stretch !important; + } + .align-self-sm-auto { + align-self: auto !important; + } + .align-self-sm-start { + align-self: flex-start !important; + } + .align-self-sm-end { + align-self: flex-end !important; + } + .align-self-sm-center { + align-self: center !important; + } + .align-self-sm-baseline { + align-self: baseline !important; + } + .align-self-sm-stretch { + align-self: stretch !important; + } + .order-sm-first { + order: -1 !important; + } + .order-sm-0 { + order: 0 !important; + } + .order-sm-1 { + order: 1 !important; + } + .order-sm-2 { + order: 2 !important; + } + .order-sm-3 { + order: 3 !important; + } + .order-sm-4 { + order: 4 !important; + } + .order-sm-5 { + order: 5 !important; + } + .order-sm-last { + order: 6 !important; + } + .m-sm-0 { + margin: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mt-sm-3 { + margin-top: 1rem !important; + } + .mt-sm-4 { + margin-top: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 3rem !important; + } + .mt-sm-auto { + margin-top: auto !important; + } + .me-sm-0 { + margin-right: 0 !important; + } + .me-sm-1 { + margin-right: 0.25rem !important; + } + .me-sm-2 { + margin-right: 0.5rem !important; + } + .me-sm-3 { + margin-right: 1rem !important; + } + .me-sm-4 { + margin-right: 1.5rem !important; + } + .me-sm-5 { + margin-right: 3rem !important; + } + .me-sm-auto { + margin-right: auto !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .mb-sm-3 { + margin-bottom: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 3rem !important; + } + .mb-sm-auto { + margin-bottom: auto !important; + } + .ms-sm-0 { + margin-left: 0 !important; + } + .ms-sm-1 { + margin-left: 0.25rem !important; + } + .ms-sm-2 { + margin-left: 0.5rem !important; + } + .ms-sm-3 { + margin-left: 1rem !important; + } + .ms-sm-4 { + margin-left: 1.5rem !important; + } + .ms-sm-5 { + margin-left: 3rem !important; + } + .ms-sm-auto { + margin-left: auto !important; + } + .p-sm-0 { + padding: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pt-sm-3 { + padding-top: 1rem !important; + } + .pt-sm-4 { + padding-top: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 3rem !important; + } + .pe-sm-0 { + padding-right: 0 !important; + } + .pe-sm-1 { + padding-right: 0.25rem !important; + } + .pe-sm-2 { + padding-right: 0.5rem !important; + } + .pe-sm-3 { + padding-right: 1rem !important; + } + .pe-sm-4 { + padding-right: 1.5rem !important; + } + .pe-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pb-sm-3 { + padding-bottom: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 3rem !important; + } + .ps-sm-0 { + padding-left: 0 !important; + } + .ps-sm-1 { + padding-left: 0.25rem !important; + } + .ps-sm-2 { + padding-left: 0.5rem !important; + } + .ps-sm-3 { + padding-left: 1rem !important; + } + .ps-sm-4 { + padding-left: 1.5rem !important; + } + .ps-sm-5 { + padding-left: 3rem !important; + } + .gap-sm-0 { + gap: 0 !important; + } + .gap-sm-1 { + gap: 0.25rem !important; + } + .gap-sm-2 { + gap: 0.5rem !important; + } + .gap-sm-3 { + gap: 1rem !important; + } + .gap-sm-4 { + gap: 1.5rem !important; + } + .gap-sm-5 { + gap: 3rem !important; + } + .text-sm-start { + text-align: left !important; + } + .text-sm-end { + text-align: right !important; + } + .text-sm-center { + text-align: center !important; + } +} +@media (min-width: 768px) { + .float-md-start { + float: left !important; + } + .float-md-end { + float: right !important; + } + .float-md-none { + float: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-grid { + display: grid !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline-flex { + display: inline-flex !important; + } + .d-md-none { + display: none !important; + } + .flex-md-fill { + flex: 1 1 auto !important; + } + .flex-md-row { + flex-direction: row !important; + } + .flex-md-column { + flex-direction: column !important; + } + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + .flex-md-grow-0 { + flex-grow: 0 !important; + } + .flex-md-grow-1 { + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + .flex-md-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-md-start { + justify-content: flex-start !important; + } + .justify-content-md-end { + justify-content: flex-end !important; + } + .justify-content-md-center { + justify-content: center !important; + } + .justify-content-md-between { + justify-content: space-between !important; + } + .justify-content-md-around { + justify-content: space-around !important; + } + .justify-content-md-evenly { + justify-content: space-evenly !important; + } + .align-items-md-start { + align-items: flex-start !important; + } + .align-items-md-end { + align-items: flex-end !important; + } + .align-items-md-center { + align-items: center !important; + } + .align-items-md-baseline { + align-items: baseline !important; + } + .align-items-md-stretch { + align-items: stretch !important; + } + .align-content-md-start { + align-content: flex-start !important; + } + .align-content-md-end { + align-content: flex-end !important; + } + .align-content-md-center { + align-content: center !important; + } + .align-content-md-between { + align-content: space-between !important; + } + .align-content-md-around { + align-content: space-around !important; + } + .align-content-md-stretch { + align-content: stretch !important; + } + .align-self-md-auto { + align-self: auto !important; + } + .align-self-md-start { + align-self: flex-start !important; + } + .align-self-md-end { + align-self: flex-end !important; + } + .align-self-md-center { + align-self: center !important; + } + .align-self-md-baseline { + align-self: baseline !important; + } + .align-self-md-stretch { + align-self: stretch !important; + } + .order-md-first { + order: -1 !important; + } + .order-md-0 { + order: 0 !important; + } + .order-md-1 { + order: 1 !important; + } + .order-md-2 { + order: 2 !important; + } + .order-md-3 { + order: 3 !important; + } + .order-md-4 { + order: 4 !important; + } + .order-md-5 { + order: 5 !important; + } + .order-md-last { + order: 6 !important; + } + .m-md-0 { + margin: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mt-md-3 { + margin-top: 1rem !important; + } + .mt-md-4 { + margin-top: 1.5rem !important; + } + .mt-md-5 { + margin-top: 3rem !important; + } + .mt-md-auto { + margin-top: auto !important; + } + .me-md-0 { + margin-right: 0 !important; + } + .me-md-1 { + margin-right: 0.25rem !important; + } + .me-md-2 { + margin-right: 0.5rem !important; + } + .me-md-3 { + margin-right: 1rem !important; + } + .me-md-4 { + margin-right: 1.5rem !important; + } + .me-md-5 { + margin-right: 3rem !important; + } + .me-md-auto { + margin-right: auto !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .mb-md-3 { + margin-bottom: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 3rem !important; + } + .mb-md-auto { + margin-bottom: auto !important; + } + .ms-md-0 { + margin-left: 0 !important; + } + .ms-md-1 { + margin-left: 0.25rem !important; + } + .ms-md-2 { + margin-left: 0.5rem !important; + } + .ms-md-3 { + margin-left: 1rem !important; + } + .ms-md-4 { + margin-left: 1.5rem !important; + } + .ms-md-5 { + margin-left: 3rem !important; + } + .ms-md-auto { + margin-left: auto !important; + } + .p-md-0 { + padding: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pt-md-3 { + padding-top: 1rem !important; + } + .pt-md-4 { + padding-top: 1.5rem !important; + } + .pt-md-5 { + padding-top: 3rem !important; + } + .pe-md-0 { + padding-right: 0 !important; + } + .pe-md-1 { + padding-right: 0.25rem !important; + } + .pe-md-2 { + padding-right: 0.5rem !important; + } + .pe-md-3 { + padding-right: 1rem !important; + } + .pe-md-4 { + padding-right: 1.5rem !important; + } + .pe-md-5 { + padding-right: 3rem !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pb-md-3 { + padding-bottom: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 3rem !important; + } + .ps-md-0 { + padding-left: 0 !important; + } + .ps-md-1 { + padding-left: 0.25rem !important; + } + .ps-md-2 { + padding-left: 0.5rem !important; + } + .ps-md-3 { + padding-left: 1rem !important; + } + .ps-md-4 { + padding-left: 1.5rem !important; + } + .ps-md-5 { + padding-left: 3rem !important; + } + .gap-md-0 { + gap: 0 !important; + } + .gap-md-1 { + gap: 0.25rem !important; + } + .gap-md-2 { + gap: 0.5rem !important; + } + .gap-md-3 { + gap: 1rem !important; + } + .gap-md-4 { + gap: 1.5rem !important; + } + .gap-md-5 { + gap: 3rem !important; + } + .text-md-start { + text-align: left !important; + } + .text-md-end { + text-align: right !important; + } + .text-md-center { + text-align: center !important; + } +} +@media (min-width: 992px) { + .float-lg-start { + float: left !important; + } + .float-lg-end { + float: right !important; + } + .float-lg-none { + float: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-grid { + display: grid !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline-flex { + display: inline-flex !important; + } + .d-lg-none { + display: none !important; + } + .flex-lg-fill { + flex: 1 1 auto !important; + } + .flex-lg-row { + flex-direction: row !important; + } + .flex-lg-column { + flex-direction: column !important; + } + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + .flex-lg-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-lg-start { + justify-content: flex-start !important; + } + .justify-content-lg-end { + justify-content: flex-end !important; + } + .justify-content-lg-center { + justify-content: center !important; + } + .justify-content-lg-between { + justify-content: space-between !important; + } + .justify-content-lg-around { + justify-content: space-around !important; + } + .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + .align-items-lg-start { + align-items: flex-start !important; + } + .align-items-lg-end { + align-items: flex-end !important; + } + .align-items-lg-center { + align-items: center !important; + } + .align-items-lg-baseline { + align-items: baseline !important; + } + .align-items-lg-stretch { + align-items: stretch !important; + } + .align-content-lg-start { + align-content: flex-start !important; + } + .align-content-lg-end { + align-content: flex-end !important; + } + .align-content-lg-center { + align-content: center !important; + } + .align-content-lg-between { + align-content: space-between !important; + } + .align-content-lg-around { + align-content: space-around !important; + } + .align-content-lg-stretch { + align-content: stretch !important; + } + .align-self-lg-auto { + align-self: auto !important; + } + .align-self-lg-start { + align-self: flex-start !important; + } + .align-self-lg-end { + align-self: flex-end !important; + } + .align-self-lg-center { + align-self: center !important; + } + .align-self-lg-baseline { + align-self: baseline !important; + } + .align-self-lg-stretch { + align-self: stretch !important; + } + .order-lg-first { + order: -1 !important; + } + .order-lg-0 { + order: 0 !important; + } + .order-lg-1 { + order: 1 !important; + } + .order-lg-2 { + order: 2 !important; + } + .order-lg-3 { + order: 3 !important; + } + .order-lg-4 { + order: 4 !important; + } + .order-lg-5 { + order: 5 !important; + } + .order-lg-last { + order: 6 !important; + } + .m-lg-0 { + margin: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mt-lg-3 { + margin-top: 1rem !important; + } + .mt-lg-4 { + margin-top: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 3rem !important; + } + .mt-lg-auto { + margin-top: auto !important; + } + .me-lg-0 { + margin-right: 0 !important; + } + .me-lg-1 { + margin-right: 0.25rem !important; + } + .me-lg-2 { + margin-right: 0.5rem !important; + } + .me-lg-3 { + margin-right: 1rem !important; + } + .me-lg-4 { + margin-right: 1.5rem !important; + } + .me-lg-5 { + margin-right: 3rem !important; + } + .me-lg-auto { + margin-right: auto !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .mb-lg-3 { + margin-bottom: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 3rem !important; + } + .mb-lg-auto { + margin-bottom: auto !important; + } + .ms-lg-0 { + margin-left: 0 !important; + } + .ms-lg-1 { + margin-left: 0.25rem !important; + } + .ms-lg-2 { + margin-left: 0.5rem !important; + } + .ms-lg-3 { + margin-left: 1rem !important; + } + .ms-lg-4 { + margin-left: 1.5rem !important; + } + .ms-lg-5 { + margin-left: 3rem !important; + } + .ms-lg-auto { + margin-left: auto !important; + } + .p-lg-0 { + padding: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pt-lg-3 { + padding-top: 1rem !important; + } + .pt-lg-4 { + padding-top: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 3rem !important; + } + .pe-lg-0 { + padding-right: 0 !important; + } + .pe-lg-1 { + padding-right: 0.25rem !important; + } + .pe-lg-2 { + padding-right: 0.5rem !important; + } + .pe-lg-3 { + padding-right: 1rem !important; + } + .pe-lg-4 { + padding-right: 1.5rem !important; + } + .pe-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pb-lg-3 { + padding-bottom: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 3rem !important; + } + .ps-lg-0 { + padding-left: 0 !important; + } + .ps-lg-1 { + padding-left: 0.25rem !important; + } + .ps-lg-2 { + padding-left: 0.5rem !important; + } + .ps-lg-3 { + padding-left: 1rem !important; + } + .ps-lg-4 { + padding-left: 1.5rem !important; + } + .ps-lg-5 { + padding-left: 3rem !important; + } + .gap-lg-0 { + gap: 0 !important; + } + .gap-lg-1 { + gap: 0.25rem !important; + } + .gap-lg-2 { + gap: 0.5rem !important; + } + .gap-lg-3 { + gap: 1rem !important; + } + .gap-lg-4 { + gap: 1.5rem !important; + } + .gap-lg-5 { + gap: 3rem !important; + } + .text-lg-start { + text-align: left !important; + } + .text-lg-end { + text-align: right !important; + } + .text-lg-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .float-xl-start { + float: left !important; + } + .float-xl-end { + float: right !important; + } + .float-xl-none { + float: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-grid { + display: grid !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline-flex { + display: inline-flex !important; + } + .d-xl-none { + display: none !important; + } + .flex-xl-fill { + flex: 1 1 auto !important; + } + .flex-xl-row { + flex-direction: row !important; + } + .flex-xl-column { + flex-direction: column !important; + } + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xl-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xl-start { + justify-content: flex-start !important; + } + .justify-content-xl-end { + justify-content: flex-end !important; + } + .justify-content-xl-center { + justify-content: center !important; + } + .justify-content-xl-between { + justify-content: space-between !important; + } + .justify-content-xl-around { + justify-content: space-around !important; + } + .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + .align-items-xl-start { + align-items: flex-start !important; + } + .align-items-xl-end { + align-items: flex-end !important; + } + .align-items-xl-center { + align-items: center !important; + } + .align-items-xl-baseline { + align-items: baseline !important; + } + .align-items-xl-stretch { + align-items: stretch !important; + } + .align-content-xl-start { + align-content: flex-start !important; + } + .align-content-xl-end { + align-content: flex-end !important; + } + .align-content-xl-center { + align-content: center !important; + } + .align-content-xl-between { + align-content: space-between !important; + } + .align-content-xl-around { + align-content: space-around !important; + } + .align-content-xl-stretch { + align-content: stretch !important; + } + .align-self-xl-auto { + align-self: auto !important; + } + .align-self-xl-start { + align-self: flex-start !important; + } + .align-self-xl-end { + align-self: flex-end !important; + } + .align-self-xl-center { + align-self: center !important; + } + .align-self-xl-baseline { + align-self: baseline !important; + } + .align-self-xl-stretch { + align-self: stretch !important; + } + .order-xl-first { + order: -1 !important; + } + .order-xl-0 { + order: 0 !important; + } + .order-xl-1 { + order: 1 !important; + } + .order-xl-2 { + order: 2 !important; + } + .order-xl-3 { + order: 3 !important; + } + .order-xl-4 { + order: 4 !important; + } + .order-xl-5 { + order: 5 !important; + } + .order-xl-last { + order: 6 !important; + } + .m-xl-0 { + margin: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mt-xl-3 { + margin-top: 1rem !important; + } + .mt-xl-4 { + margin-top: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 3rem !important; + } + .mt-xl-auto { + margin-top: auto !important; + } + .me-xl-0 { + margin-right: 0 !important; + } + .me-xl-1 { + margin-right: 0.25rem !important; + } + .me-xl-2 { + margin-right: 0.5rem !important; + } + .me-xl-3 { + margin-right: 1rem !important; + } + .me-xl-4 { + margin-right: 1.5rem !important; + } + .me-xl-5 { + margin-right: 3rem !important; + } + .me-xl-auto { + margin-right: auto !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xl-3 { + margin-bottom: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 3rem !important; + } + .mb-xl-auto { + margin-bottom: auto !important; + } + .ms-xl-0 { + margin-left: 0 !important; + } + .ms-xl-1 { + margin-left: 0.25rem !important; + } + .ms-xl-2 { + margin-left: 0.5rem !important; + } + .ms-xl-3 { + margin-left: 1rem !important; + } + .ms-xl-4 { + margin-left: 1.5rem !important; + } + .ms-xl-5 { + margin-left: 3rem !important; + } + .ms-xl-auto { + margin-left: auto !important; + } + .p-xl-0 { + padding: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pt-xl-3 { + padding-top: 1rem !important; + } + .pt-xl-4 { + padding-top: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 3rem !important; + } + .pe-xl-0 { + padding-right: 0 !important; + } + .pe-xl-1 { + padding-right: 0.25rem !important; + } + .pe-xl-2 { + padding-right: 0.5rem !important; + } + .pe-xl-3 { + padding-right: 1rem !important; + } + .pe-xl-4 { + padding-right: 1.5rem !important; + } + .pe-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xl-3 { + padding-bottom: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 3rem !important; + } + .ps-xl-0 { + padding-left: 0 !important; + } + .ps-xl-1 { + padding-left: 0.25rem !important; + } + .ps-xl-2 { + padding-left: 0.5rem !important; + } + .ps-xl-3 { + padding-left: 1rem !important; + } + .ps-xl-4 { + padding-left: 1.5rem !important; + } + .ps-xl-5 { + padding-left: 3rem !important; + } + .gap-xl-0 { + gap: 0 !important; + } + .gap-xl-1 { + gap: 0.25rem !important; + } + .gap-xl-2 { + gap: 0.5rem !important; + } + .gap-xl-3 { + gap: 1rem !important; + } + .gap-xl-4 { + gap: 1.5rem !important; + } + .gap-xl-5 { + gap: 3rem !important; + } + .text-xl-start { + text-align: left !important; + } + .text-xl-end { + text-align: right !important; + } + .text-xl-center { + text-align: center !important; + } +} +@media (min-width: 1400px) { + .float-xxl-start { + float: left !important; + } + .float-xxl-end { + float: right !important; + } + .float-xxl-none { + float: none !important; + } + .d-xxl-inline { + display: inline !important; + } + .d-xxl-inline-block { + display: inline-block !important; + } + .d-xxl-block { + display: block !important; + } + .d-xxl-grid { + display: grid !important; + } + .d-xxl-table { + display: table !important; + } + .d-xxl-table-row { + display: table-row !important; + } + .d-xxl-table-cell { + display: table-cell !important; + } + .d-xxl-flex { + display: flex !important; + } + .d-xxl-inline-flex { + display: inline-flex !important; + } + .d-xxl-none { + display: none !important; + } + .flex-xxl-fill { + flex: 1 1 auto !important; + } + .flex-xxl-row { + flex-direction: row !important; + } + .flex-xxl-column { + flex-direction: column !important; + } + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xxl-wrap { + flex-wrap: wrap !important; + } + .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xxl-start { + justify-content: flex-start !important; + } + .justify-content-xxl-end { + justify-content: flex-end !important; + } + .justify-content-xxl-center { + justify-content: center !important; + } + .justify-content-xxl-between { + justify-content: space-between !important; + } + .justify-content-xxl-around { + justify-content: space-around !important; + } + .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + .align-items-xxl-start { + align-items: flex-start !important; + } + .align-items-xxl-end { + align-items: flex-end !important; + } + .align-items-xxl-center { + align-items: center !important; + } + .align-items-xxl-baseline { + align-items: baseline !important; + } + .align-items-xxl-stretch { + align-items: stretch !important; + } + .align-content-xxl-start { + align-content: flex-start !important; + } + .align-content-xxl-end { + align-content: flex-end !important; + } + .align-content-xxl-center { + align-content: center !important; + } + .align-content-xxl-between { + align-content: space-between !important; + } + .align-content-xxl-around { + align-content: space-around !important; + } + .align-content-xxl-stretch { + align-content: stretch !important; + } + .align-self-xxl-auto { + align-self: auto !important; + } + .align-self-xxl-start { + align-self: flex-start !important; + } + .align-self-xxl-end { + align-self: flex-end !important; + } + .align-self-xxl-center { + align-self: center !important; + } + .align-self-xxl-baseline { + align-self: baseline !important; + } + .align-self-xxl-stretch { + align-self: stretch !important; + } + .order-xxl-first { + order: -1 !important; + } + .order-xxl-0 { + order: 0 !important; + } + .order-xxl-1 { + order: 1 !important; + } + .order-xxl-2 { + order: 2 !important; + } + .order-xxl-3 { + order: 3 !important; + } + .order-xxl-4 { + order: 4 !important; + } + .order-xxl-5 { + order: 5 !important; + } + .order-xxl-last { + order: 6 !important; + } + .m-xxl-0 { + margin: 0 !important; + } + .m-xxl-1 { + margin: 0.25rem !important; + } + .m-xxl-2 { + margin: 0.5rem !important; + } + .m-xxl-3 { + margin: 1rem !important; + } + .m-xxl-4 { + margin: 1.5rem !important; + } + .m-xxl-5 { + margin: 3rem !important; + } + .m-xxl-auto { + margin: auto !important; + } + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xxl-0 { + margin-top: 0 !important; + } + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + .mt-xxl-3 { + margin-top: 1rem !important; + } + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + .mt-xxl-5 { + margin-top: 3rem !important; + } + .mt-xxl-auto { + margin-top: auto !important; + } + .me-xxl-0 { + margin-right: 0 !important; + } + .me-xxl-1 { + margin-right: 0.25rem !important; + } + .me-xxl-2 { + margin-right: 0.5rem !important; + } + .me-xxl-3 { + margin-right: 1rem !important; + } + .me-xxl-4 { + margin-right: 1.5rem !important; + } + .me-xxl-5 { + margin-right: 3rem !important; + } + .me-xxl-auto { + margin-right: auto !important; + } + .mb-xxl-0 { + margin-bottom: 0 !important; + } + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + .mb-xxl-auto { + margin-bottom: auto !important; + } + .ms-xxl-0 { + margin-left: 0 !important; + } + .ms-xxl-1 { + margin-left: 0.25rem !important; + } + .ms-xxl-2 { + margin-left: 0.5rem !important; + } + .ms-xxl-3 { + margin-left: 1rem !important; + } + .ms-xxl-4 { + margin-left: 1.5rem !important; + } + .ms-xxl-5 { + margin-left: 3rem !important; + } + .ms-xxl-auto { + margin-left: auto !important; + } + .p-xxl-0 { + padding: 0 !important; + } + .p-xxl-1 { + padding: 0.25rem !important; + } + .p-xxl-2 { + padding: 0.5rem !important; + } + .p-xxl-3 { + padding: 1rem !important; + } + .p-xxl-4 { + padding: 1.5rem !important; + } + .p-xxl-5 { + padding: 3rem !important; + } + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xxl-0 { + padding-top: 0 !important; + } + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + .pt-xxl-3 { + padding-top: 1rem !important; + } + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + .pt-xxl-5 { + padding-top: 3rem !important; + } + .pe-xxl-0 { + padding-right: 0 !important; + } + .pe-xxl-1 { + padding-right: 0.25rem !important; + } + .pe-xxl-2 { + padding-right: 0.5rem !important; + } + .pe-xxl-3 { + padding-right: 1rem !important; + } + .pe-xxl-4 { + padding-right: 1.5rem !important; + } + .pe-xxl-5 { + padding-right: 3rem !important; + } + .pb-xxl-0 { + padding-bottom: 0 !important; + } + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + .ps-xxl-0 { + padding-left: 0 !important; + } + .ps-xxl-1 { + padding-left: 0.25rem !important; + } + .ps-xxl-2 { + padding-left: 0.5rem !important; + } + .ps-xxl-3 { + padding-left: 1rem !important; + } + .ps-xxl-4 { + padding-left: 1.5rem !important; + } + .ps-xxl-5 { + padding-left: 3rem !important; + } + .gap-xxl-0 { + gap: 0 !important; + } + .gap-xxl-1 { + gap: 0.25rem !important; + } + .gap-xxl-2 { + gap: 0.5rem !important; + } + .gap-xxl-3 { + gap: 1rem !important; + } + .gap-xxl-4 { + gap: 1.5rem !important; + } + .gap-xxl-5 { + gap: 3rem !important; + } + .text-xxl-start { + text-align: left !important; + } + .text-xxl-end { + text-align: right !important; + } + .text-xxl-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .fs-1 { + font-size: 2.5rem !important; + } + .fs-2 { + font-size: 2rem !important; + } + .fs-3 { + font-size: 1.75rem !important; + } + .fs-4 { + font-size: 1.5rem !important; + } +} +@media print { + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-grid { + display: grid !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: flex !important; + } + .d-print-inline-flex { + display: inline-flex !important; + } + .d-print-none { + display: none !important; + } +} +html { + scroll-padding-top: 4.5rem; +} + +.bg-black { + background-color: #000 !important; +} + +.bg-gradient-primary-to-secondary { + background: linear-gradient(45deg, #2937f0, #9f1ae2) !important; +} + +.font-alt { + font-family: "Kanit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !important; +} + +.text-gradient { + background: -webkit-linear-gradient(#2937f0, #9f1ae2); + background-clip: text; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +aside, +section { + padding-top: 5rem; + padding-bottom: 5rem; +} + +.app-badge { + height: 3rem; +} + +#mainNav { + padding-top: 1rem; + padding-bottom: 1rem; + background-color: #fff; +} +#mainNav .navbar-brand { + font-family: "Kanit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; +} +#mainNav .navbar-brand:hover, #mainNav .navbar-brand:active { + color: #2937f0; +} +#mainNav .navbar-toggler { + font-size: 0.875rem; + padding: 0.75rem 1rem; + color: #212529; +} +#mainNav .navbar-nav .nav-item .nav-link { + color: #212529; +} +#mainNav .navbar-nav .nav-item .nav-link:hover { + color: #6c757d; +} +#mainNav .navbar-nav .nav-item .nav-link.active { + color: #2937f0; +} + +/*! + * html5-device-mockups (https://github.com/pixelsign/html5-device-mockups) + * Copyright 2013 - 2017 pixelsign + * Licensed under MIT (https://github.com/pixelsign/html5-device-mockups/blob/master/LICENSE.txt) + * Last Build: Tue Nov 14 2017 12:40:57 + */ +.device-wrapper { + max-width: 300px; + width: 100%; +} + +.device { + position: relative; + background-size: cover; +} + +.device::after { + position: absolute; + background-size: cover; + width: 100%; + height: 100%; + pointer-events: none; +} + +.device .screen { + position: absolute; + background-size: cover; + pointer-events: auto; +} + +.device .button { + position: absolute; + cursor: pointer; +} + +.device[data-device=iPhoneX][data-orientation=portrait][data-color=black] { + padding-bottom: 198.898071625%; +} + +.device[data-device=iPhoneX][data-orientation=portrait][data-color=black] .screen { + top: 3.1855955679%; + left: 6.8870523416%; + width: 86.2258953168%; + height: 93.6288088643%; +} + +.device[data-device=iPhoneX][data-orientation=portrait][data-color=black]::after { + content: ""; + background-image: url("../assets/img/portrait_black.png"); +} + +.device[data-device=iPhoneX][data-orientation=portrait][data-color=black] .button { + display: none; + top: 0%; + left: 0%; + width: 100%; + height: 100%; +} + +section.cta { + position: relative; + padding: 15rem 0; + background-image: url("https://img.freepik.com/photos-gratuite/homme-senior-athletique-s-entrainant-gymnastique_23-2150809355.jpg?w=1380&t=st=1701079471~exp=1701080071~hmac=baeec48b8d3a4c25cbbd821371bc8dcca048ba9c61d122963c1c0089bce690b3"); + background-position: center; + background-size: cover; +} +section.cta .cta-content { + position: relative; + z-index: 1; +} +section.cta:before { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.5); +} + +.icon-feature { + font-size: 4rem; +} + +.features-device-mockup { + display: flex; + align-items: center; + justify-content: center; + position: relative; +} +.features-device-mockup .circle { + position: absolute; + left: 0; + fill: url(#circleGradient); + width: 70%; + display: none; +} +.features-device-mockup .circle .gradient-start-color { + stop-color: #2937f0; +} +.features-device-mockup .circle .gradient-end-color { + stop-color: #9f1ae2; +} +.features-device-mockup .shape-1 { + position: absolute; + height: 1rem; + width: 1rem; + transform: rotate(10deg); + fill: #2937f0; + top: 15%; + right: 10%; +} +.features-device-mockup .shape-2 { + position: absolute; + height: 0.75rem; + width: 0.75rem; + fill: #2937f0; + bottom: 15%; + left: 10%; +} +.features-device-mockup .device-wrapper { + max-width: 10rem; +} + +@media (min-width: 576px) { + .features-device-mockup .circle { + width: 70%; + display: block; + left: auto; + } + .features-device-mockup .device-wrapper { + max-width: 12.5rem; + } +} +@media (min-width: 768px) { + .features-device-mockup .circle { + width: 60%; + left: auto; + } + .features-device-mockup .device-wrapper { + max-width: 15rem; + } +} +@media (min-width: 992px) { + .features-device-mockup .circle { + width: 90%; + left: -25%; + } + .features-device-mockup .shape-1 { + top: 5%; + right: -15%; + } + .features-device-mockup .shape-2 { + bottom: 10%; + left: -10%; + } + .features-device-mockup .device-wrapper { + max-width: 15rem; + margin-left: auto; + } +} +@media (min-width: 1200px) { + .features-device-mockup .circle { + width: 75%; + left: 0; + } + .features-device-mockup .shape-2 { + bottom: 15%; + left: 10%; + } + .features-device-mockup .device-wrapper { + max-width: 15rem; + } +} +@media (min-width: 1400px) { + .features-device-mockup .circle { + width: 80%; + left: 0; + } + .features-device-mockup .device-wrapper { + max-width: 17rem; + } +} +footer a { + color: rgba(255, 255, 255, 0.5); + text-decoration: none; +} +footer a:hover, footer a:active, footer a:focus { + color: rgba(255, 255, 255, 0.75); + text-decoration: underline; +} + +.masthead { + background-color: #f8f9fa; + padding-top: 9.5rem; + padding-bottom: 5rem; +} +.masthead .masthead-device-mockup { + display: flex; + align-items: center; + justify-content: center; + position: relative; +} +.masthead .masthead-device-mockup .circle { + position: absolute; + fill: url(#circleGradient); + width: 70%; + display: none; +} +.masthead .masthead-device-mockup .circle .gradient-start-color { + stop-color: #2937f0; +} +.masthead .masthead-device-mockup .circle .gradient-end-color { + stop-color: #9f1ae2; +} +.masthead .masthead-device-mockup .shape-1 { + position: absolute; + height: 1rem; + width: 1rem; + transform: rotate(-10deg); + fill: #2937f0; + bottom: 15%; + left: 10%; +} +.masthead .masthead-device-mockup .shape-2 { + position: absolute; + height: 0.75rem; + width: 0.75rem; + fill: #2937f0; + top: 15%; + right: 10%; +} +.masthead .masthead-device-mockup .device-wrapper { + max-width: 10rem; +} +@media (min-width: 576px) { + .masthead .masthead-device-mockup .circle { + width: 70%; + display: block; + } + .masthead .masthead-device-mockup .device-wrapper { + max-width: 12.5rem; + } +} +@media (min-width: 768px) { + .masthead .masthead-device-mockup .circle { + width: 60%; + } + .masthead .masthead-device-mockup .device-wrapper { + max-width: 15rem; + } +} +@media (min-width: 992px) { + .masthead .masthead-device-mockup .circle { + width: 90%; + } + .masthead .masthead-device-mockup .device-wrapper { + max-width: 15rem; + } +} +@media (min-width: 1200px) { + .masthead .masthead-device-mockup .circle { + width: 75%; + } + .masthead .masthead-device-mockup .device-wrapper { + max-width: 15rem; + } +} +@media (min-width: 1400px) { + .masthead .masthead-device-mockup .circle { + width: 70%; + } + .masthead .masthead-device-mockup .device-wrapper { + max-width: 17rem; + } +} \ No newline at end of file diff --git a/Sources/public/js/script2.js b/Sources/public/js/script2.js new file mode 100644 index 00000000..ab369326 --- /dev/null +++ b/Sources/public/js/script2.js @@ -0,0 +1,34 @@ +/*! +* Start Bootstrap - New Age v6.0.7 (https://startbootstrap.com/theme/new-age) +* Copyright 2013-2023 Start Bootstrap +* Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-new-age/blob/master/LICENSE) +*/ +// +// Scripts +// + +window.addEventListener('DOMContentLoaded', event => { + + // Activate Bootstrap scrollspy on the main nav element + const mainNav = document.body.querySelector('#mainNav'); + if (mainNav) { + new bootstrap.ScrollSpy(document.body, { + target: '#mainNav', + offset: 74, + }); + }; + + // Collapse responsive navbar when toggler is visible + const navbarToggler = document.body.querySelector('.navbar-toggler'); + const responsiveNavItems = [].slice.call( + document.querySelectorAll('#navbarResponsive .nav-link') + ); + responsiveNavItems.map(function (responsiveNavItem) { + responsiveNavItem.addEventListener('click', () => { + if (window.getComputedStyle(navbarToggler).display !== 'none') { + navbarToggler.click(); + } + }); + }); + +}); diff --git a/Sources/public/js/scripts2.js b/Sources/public/js/scripts2.js new file mode 100644 index 00000000..19c62bf3 --- /dev/null +++ b/Sources/public/js/scripts2.js @@ -0,0 +1,34 @@ +/*! +* Start Bootstrap - New Age v6.0.7 (https://startbootstrap.com/theme/new-age) +* Copyright 2013-2023 Start Bootstrap +* Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-new-age/blob/master/LICENSE) +*/ +// +// Scripts +// + +window.addEventListener('DOMContentLoaded', event => { + + // Activate Bootstrap scrollspy on the main nav element + const mainNav = document.body.querySelector('#mainNav'); + if (mainNav) { + new bootstrap.ScrollSpy(document.body, { + target: '#mainNav', + offset: 74, + }); + }; + + // Collapse responsive navbar when toggler is visible + const navbarToggler = document.body.querySelector('.navbar-toggler'); + const responsiveNavItems = [].slice.call( + document.querySelectorAll('#navbarResponsive .nav-link') + ); + responsiveNavItems.map(function (responsiveNavItem) { + responsiveNavItem.addEventListener('click', () => { + if (window.getComputedStyle(navbarToggler).display !== 'none') { + navbarToggler.click(); + } + }); + }); + +}); diff --git a/Sources/reseau/scriptFirewall.sh b/Sources/reseau/scriptFirewall.sh new file mode 100644 index 00000000..13f47935 --- /dev/null +++ b/Sources/reseau/scriptFirewall.sh @@ -0,0 +1,2 @@ +#!/bin/sh + diff --git a/Sources/reseau/scriptRouting.sh b/Sources/reseau/scriptRouting.sh new file mode 100644 index 00000000..a13c295d --- /dev/null +++ b/Sources/reseau/scriptRouting.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +vdn-ssh root@web ' +' + diff --git a/Sources/src/app/AppCreator.php b/Sources/src/app/AppCreator.php index e39da119..05ca5546 100644 --- a/Sources/src/app/AppCreator.php +++ b/Sources/src/app/AppCreator.php @@ -88,7 +88,6 @@ class AppCreator return $this; } - public function getServiceRegistered(): array { return $this->services; diff --git a/Sources/src/app/controller/AthleteController.php b/Sources/src/app/controller/AthleteController.php index 50567921..6513b409 100644 --- a/Sources/src/app/controller/AthleteController.php +++ b/Sources/src/app/controller/AthleteController.php @@ -2,6 +2,19 @@ namespace App\Controller; +use Database\ActivityGateway; +use Database\ActivityMapper; +use Database\AnalyzeGateway; +use Database\AthleteEntity; +use Database\AthleteMapper; +use Database\EntrainementGateway; +use Database\EntrainementMapper; +use Database\NotificationEntity; +use Database\NotificationGateway; +use Database\NotificationMapper; +use DateTime; +use Model\Notification; +use Shared\Validation; use App\Container; use App\Router\Request\IRequest; use App\Router\Response\Response; @@ -9,87 +22,272 @@ use Shared\Attributes\Route; use Twig\Environment; use Data\Core\Preferences; use Shared\Log; +use Manager\UserManager; +use Database\Connexion; +use Database\AthleteGateway; class AthleteController extends BaseController { - #[Route(path: '/search-ath', name: 'search-ath', methods: ['GET'])] + private Environment $twig; + protected Preferences $preference; +// private UserManager $userMgr; + + public function __construct() + { + $this->preference = new Preferences(); +// $this->userMgr = $manager; + } + +// #[Route(path: '/search-user', name: 'search-user', methods: ['GET'])] +// public function searchUser(string $username, IRequest $req): Response +// { +// $taberror = []; +// if(!Validation::val_string($username)){ +// print("Nom invalide."); +// } +// else { +// try { +// $athleteGateway = new AthleteGateway(new Connexion("mysql:host=localhost;dbname=sae_3", "Perederii", "")); +//// $listSearch=$this->container->get(UserManager::class)->searchUsersByName($username); +// $listSearch = $athleteGateway->getAthlete(); +// $map = new AthleteMapper (); +// $athleteEntity = $map->athleteSqlToEntity($listSearch); +// foreach ($athleteEntity as $entity) { +// $users = $map->athleteEntityToModel($entity); +// $listUsers[$i++]=['nom' => $users->getNom(), 'prenom'=>$users->getPrenom(), 'img'=>'john_doe']; +// } +// +// $i=0; +// foreach ($users as $user){ +// echo "

HELLO

"; +// $listUsers[$i++]=['nom' => $user->getNom(), 'prenom'=>$user->getPrenom(), 'img'=>'john_doe', 'username'=>$user->getUsername()]; +// } +// echo "

HEllO

"; +// //$currentUser=$this->container->get(UserManager::class)->getCurrentUser(); +// //$currentUser=$_SESSION['user']; +// $response = $this->render('./page/addfriend.html.twig',[ +// 'css' => $_COOKIE['preferences'], +// 'pp' => "test", +// 'user' => 'johndoe',//$currentUser->getUsername(), +// 'role' => 'Athlete',//$currentUser->getRole(), +// 'users' => $listUsers +// ]); +// } catch (\Throwable $th) { +// throw $th; +// return $this->render("addfriend.html.twig", ['tabError' => $taberror ]); +// } +// } +// return $response; +// +// } + + #[Route(path: '/search-user', name: 'search-user', methods: ['GET'])] public function searchUser(string $username, IRequest $req): Response { $taberror = []; - $utiliArray = [ - [ - 'nom' => 'John', - 'prenom' => 'Doe', - 'img' => 'john_doe', - 'username' => 'johndoe', - ], - [ - 'nom' => 'Alice', - 'prenom' => 'Smith', - 'img' => 'alice_smith', - 'username' => 'alicesmith', - ], - ]; - // if(!Validation::val_string($name)){ + if (!Validation::val_string($username)) { + print("Nom invalide."); + } else { + try { + $athleteGateway = new AthleteGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); + if($username==null){ + $listSearch=$athleteGateway->getAthlete(); + } else { + $listSearch = $athleteGateway->getAthleteByName($username); + } + $map = new AthleteMapper(); + $athleteEntity = $map->athleteSqlToEntity($listSearch); + $listUsers = []; + foreach ($athleteEntity as $entity) { + $user = $map->athleteEntityToModel($entity); + $listUsers[] = ['idathlete' => number_format($user->getId(), 1), 'nom' => $user->getNom(), + 'prenom' => $user->getPrenom(),'email' => $user->getEmail(), 'sexe' => $user->getSexe(), + 'taille' => $user->getTaille(), 'poids' => $user->getPoids(), 'motdepasse' => $user->getMotDePasse(), + 'datenaissance' => $user->getDateNaissance(), 'iscoach' => $user->getRole(), 'img' => 'test', + 'username' => $user->getUsername()]; + } + + $response = $this->render('./page/addfriend.html.twig',[ + 'css' => $_COOKIE['preferences'], + 'pp' => 'test', + 'user' => 'John',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), + 'users' => $listUsers + ]); + + } catch (\Throwable $th) { + throw $th; + return $this->render("addfriend.html.twig", ['tabError' => $taberror]); + } + } + return $response; + } + + #[Route(path: '/analyze', name: 'analyze_details', methods: ['GET'])] + public function activityDetails(int $id): Response + { try { - //code... - // $model->userMgr->getUser($name); - return $this->render('./page/addfriend.html.twig', [ + // Utilisez $id pour récupérer les détails de l'activité depuis la base de données +// $activityGateway = new ActivityGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); +// $activityEntity = $activityGateway->getActivityById($id); // Assurez-vous d'avoir une méthode similaire dans votre gateway + + $analyzeGateway = new AnalyzeGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); + $analyzeEntity = $analyzeGateway->getFrequenceCardiaqueByIdActivity($id); + + $response = $this->render('./page/analyze.html.twig', [ 'css' => $this->preference->getCookie(), 'pp' => "test2", - 'user' => "Doe", - 'role' => "Athlète", + 'user' => 'johndoe',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), 'friendship' => [], - 'analyzes' => [], + 'activity' => [], + 'analyzes' => $analyzeEntity, + ]); + } catch (\Throwable $th) { + throw $th; + return $this->render("./page/analyze.html.twig", ['tabError' => $taberror]); + } + return $response; + } + +// +// #[Route(path: '/analyses/{id}', name: 'analyses', methods: ['GET'])] +// public function analyses(): Response +// { +// try { +// $activityGateway = new ActivityGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); +// $listSearch = $activityGateway->getActivity(); +// $map = new ActivityMapper(); +// $activityGateway = $map->activitySqlToEntity($listSearch); +// $listActivity = []; +// foreach ($activityGateway as $entity) { +// $activity = $map->activityEntityToModel($entity); +// $listActivity[] = ['idactivity' => number_format($activity->getIdActivity(), 1), 'type' => $activity->getType(), +// 'date' => $activity->getDate()->format("D j F Y"), 'heureDebut' => $activity->getHeureDebut()->format("H\h i"), 'heureFin' => $activity->getHeureFin()->format("H\h i"), +// 'effortRessenti' => $activity->getEffortRessenti(), 'variabilite' => $activity->getVariability(), 'variance' => $activity->getVariance(), +// 'ecartType' => $activity->getStandardDeviation(), 'moyenne' => $activity->getAverage(), +// 'max' => $activity->getMaximum(), 'min' => $activity->getMinimum(), 'temperature' =>$activity->getAvrTemperature()]; +// } +// +// $response = $this->render('./page/analyze.html.twig',[ +// 'css' => $this->preference->getCookie(), +// 'pp' => "test2", +// 'user' => 'johndoe',//$currentUser->getUsername(), +// 'role' => 'Athlete',//$currentUser->getRole(), +// 'friendship' => [], +// 'analyzes' => $listActivity, +// 'mails' => [], +// 'users' => [], +// 'infoUser' => [], +// 'exos' => [], +// 'member' => [] +// ]); +// } catch (\Throwable $th) { +// throw $th; +// return $this->render("./page/analyze.html.twig", ['tabError' => $taberror]); +// } +// return $response; +// } + + #[Route(path: '/activity', name: 'activity', methods: ['GET'])] + public function activity(): Response + { + try { + $activityGateway = new ActivityGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); + $listSearch = $activityGateway->getActivity(); + $map = new ActivityMapper(); + $activityGateway = $map->activitySqlToEntity($listSearch); + $listActivity = []; + foreach ($activityGateway as $entity) { + $activity = $map->activityEntityToModel($entity); + $listActivity[] = ['idactivity' => number_format($activity->getIdActivity()), 'type' => $activity->getType(), + 'date' => $activity->getDate()->format("D j F Y"), 'heureDebut' => $activity->getHeureDebut()->format("H\h i"), 'heureFin' => $activity->getHeureFin()->format("H\h i"), + 'effortRessenti' => $activity->getEffortRessenti(), 'variabilite' => $activity->getVariability(), 'variance' => $activity->getVariance(), + 'ecartType' => $activity->getStandardDeviation(), 'moyenne' => $activity->getAverage(), + 'max' => $activity->getMaximum(), 'min' => $activity->getMinimum(), 'temperature' => $activity->getAvrTemperature()]; + } + + $response = $this->render('./page/activity.html.twig', [ + 'css' => $this->preference->getCookie(), + 'pp' => "test2", + 'user' => 'johndoe',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), + 'friendship' => [], + 'analyzes' => $listActivity, 'mails' => [], - 'users' => $utiliArray, + 'users' => [], 'infoUser' => [], 'exos' => [], - 'member' => [], - 'responce' => "Notification d'ajout envoyée à $username" + 'member' => [] ]); } catch (\Throwable $th) { - //throw $th; - // return $this->render("addfriend.html.twig", ['tabError' => $taberror ]); + throw $th; + return $this->render("./page/analyze.html.twig", ['tabError' => $taberror]); } - // } - + return $response; } - #[Route(path: '/analyses', name: 'analyses', methods: ['GET'])] - public function analyses(): Response + #[Route(path: '/exercice', name: 'exercice', methods: ['GET'])] // 8 + public function exercice(): Response { - return $this->render('./page/analyze.html.twig', [ - 'css' => $this->preference->getCookie(), - 'pp' => "test2", - 'user' => "Doe", - 'role' => "Athlète", - 'friendship' => [], - 'analyzes' => [], - 'mails' => [], - 'users' => [], - 'infoUser' => [], - 'exos' => [], - 'member' => [] - ]); - } + try { + $entrainementGateway = new EntrainementGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); + $listSearch = $entrainementGateway->getEntrainements(); + $map = new EntrainementMapper(); + $entrainementEntity = $map->entrainementSqlToEntity($listSearch); + $listUsers = []; + foreach ($entrainementEntity as $entity) { + $training = $map->entrainementEntityToModel($entity); + $listUsers[] = ['idTraining' => number_format($training->getId(), 1), 'date' => $training->getDate()->format("D j F Y"), + 'location' => $training->getLocation(), 'description' => $training->getDescription(), + 'feedback' => $training->getFeedback()]; + } - #[Route(path: '/exercice', name: 'exercice', methods: ['GET'])] // 8 - public function exercice(): Response + $response = $this->render('./page/exercice.html.twig',[ + 'css' => $this->preference->getCookie(), + 'pp' => "test2", + 'user' => 'johndoe',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), + 'friendship' => [], + 'analyzes' => [], + 'mails' => [], + 'users' => [], + 'infoUser' => [], + 'exos' => $listUsers, + 'member' => [] + ]); + + } catch (\Throwable $th) { + throw $th; + return $this->render("addfriend.html.twig", ['tabError' => $taberror]); + } + return $response; + } + + #[Route(path: '/exercices', name: 'exercices', methods: ['POST'])] // 8 + public function exercices(String $type, String $intensite, String $date, IRequest $req): Response { - return $this->render('./page/exercice.html.twig', [ + $exercicesArray = [ + [ + 'date' => $date, + 'type' => $type, + 'intensite' => $intensite, + 'status' => 'A venir', + ] + ]; + return $this->render('./page/exercice.html.twig',[ 'css' => $this->preference->getCookie(), 'pp' => "test2", - 'user' => "Doe", - 'role' => "Athlète", + 'user' => 'johndoe',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), 'friendship' => [], 'analyzes' => [], 'mails' => [], 'users' => [], 'infoUser' => [], - 'exos' => [], + 'exos' => $exercicesArray, 'member' => [] ]); } @@ -97,54 +295,81 @@ class AthleteController extends BaseController #[Route(path: '/add-friend', name: 'add-friend', methods: ['POST'])] public function addFriend(string $username, IRequest $req): Response { - $taberror = []; - $utiliArray = [ - [ - 'nom' => 'John', - 'prenom' => 'Doe', - 'img' => 'john_doe', - 'username' => 'johndoe', - ], - [ - 'nom' => 'Alice', - 'prenom' => 'Smith', - 'img' => 'alice_smith', - 'username' => 'alicesmith', - ], - ]; - // if(!Validation::val_string($name)){ try { - //code... - // $model->userMgr->addFriend($name); - return $this->render('./page/addfriend.html.twig', [ + $athleteGateway = new AthleteGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); + $map = new AthleteMapper(); + $userSearched = $athleteGateway->getAthleteByFirstName("Bryan"); + $athleteEntity = $map->athleteSqlToEntity($userSearched); + $users=[]; + foreach ($athleteEntity as $user) { + $this->userMgr->getCurrentUser()->addFriend($user); + $currentUser->addFriend($user); + $users = ['nom' => $user->getNom(), 'prenom' => $user->getPrenom(), 'img' => 'test', 'username' => $user->getUsername()]; + } + $notif = new NotificationGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); + $mapper = new NotificationMapper(); + $date = new DateTime(); + $myNotif = new Notification(21, "Demande d'ami de la part de " . $users['nom'], $date, true, 7, 1); + $notif->addNotification($mapper->notificationToEntity($myNotif)); + return $this->render('./page/addfriend.html.twig',[ 'css' => $this->preference->getCookie(), 'pp' => "test2", - 'user' => "Doe", - 'role' => "Athlète", + 'user' => 'johndoe',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), 'friendship' => [], 'analyzes' => [], 'mails' => [], - 'users' => $utiliArray, + 'users' => $users, 'infoUser' => [], 'exos' => [], 'member' => [], 'responce' => "Notification d'ajout envoyée à $username" ]); } catch (\Throwable $th) { - //throw $th; - // return $this->render("addfriend.html.twig", ['tabError' => $taberror ]); - } - // } - + throw $th; + return $this->render("addfriend.html.twig", ['tabError' => $taberror ]); + } } - - - #[Route(path: '/friend', name: 'friend', methods: ['GET'])] public function friend(): Response { - $utiliArray = [ + try { + $athleteGateway = new AthleteGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); + $map=new AthleteMapper(); + $friendEntity = $athleteGateway->getAthlete(); + $listUserEntity = $map->athleteSqlToEntity($friendEntity); + + $friendList = []; + foreach ($listUserEntity as $userEntity) { + $friendList[] = ['nom' => $userEntity->getNom(), 'prenom' => $userEntity->getPrenom(), 'img' => 'test', 'username' => 'test']; + } + + $response = $this->render('./page/addfriend.html.twig',[ + 'css' => $this->preference->getCookie(), + 'pp' => "test2", + 'user' => 'John',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), + 'friendship' => [], + 'analyzes' => [], + 'mails' => [], + 'users' => $friendList, + 'infoUser' => [], + 'exos' => [], + 'member' => [], + ]); + + } catch (\Throwable $th) { + throw $th; + return $this->render("addfriend.html.twig", ['tabError' => $taberror]); + } + return $response; + } + + /*#[Route(path: '/friendlist', name: 'friendlist', methods: ['POST'])] + public function friendlist(string $username, IRequest $req): Response + { + $friendList = [ [ 'nom' => 'John', 'prenom' => 'Doe', @@ -158,19 +383,58 @@ class AthleteController extends BaseController 'username' => 'alicesmith', ], ]; - return $this->render('./page/addfriend.html.twig',[ + // TODO + + // -> Enlever ou bloquer un utilisateur en fonction de son username + //$friendList = currentUser->getFriends(); + return $this->render('./page/friend.html.twig',[ 'css' => $this->preference->getCookie(), 'pp' => "test2", - 'user' => "Doe", - 'role' => "Athlète", - 'friendship' => [], - 'analyzes' => [], - 'mails' => [], - 'users' => $utiliArray, - 'infoUser' => [], - 'exos' => [], - 'member' => [], + 'user' => 'johndoe',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), + 'friendship' => $friendList, ]); + }*/ + + #[Route(path: '/friendlist', name: 'friendlist2', methods: ['GET'])] + public function friendlist2(): Response + { + try { + $athleteGateway = new AthleteGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); + $map=new AthleteMapper(); + $friendEntity = $athleteGateway->getListIdFriends(1/*$currentUser->getId()*/); + + $friendList = []; + $listUserEntity = []; + foreach($friendEntity as $users) { + if ($users['idathlete1']==1/*$currentUser->getId()*/){ + $user=(int)$users['idathlete2']; + } else { + $user=(int)$users['idathlete1']; + } + $listUserEntity[] = $map->athleteSqlToEntity($athleteGateway->getAthleteById(1)); + } + foreach ($listUserEntity as $user) { + $friendList[] = ['nom' => $user[0]->getNom(), 'prenom' => $user[0]->getPrenom(), 'img' => 'test', 'username' => 'test']; + } + + $response = $this->render('./page/friend.html.twig',[ + 'css' => $this->preference->getCookie(), + 'pp' => "test2", + 'user' => "Doe", + 'role' => "Athlète", + 'friendship' => $friendList, + ]); + + } catch (\Throwable $th) { + throw $th; + return $this->render("addfriend.html.twig", ['tabError' => $taberror]); + } + return $response; } -} \ No newline at end of file + // #[Route(path: '/delete-friend', name: 'delete-friend', methods: ['POST'])] + +} + +?> \ No newline at end of file diff --git a/Sources/src/app/controller/AuthController.php b/Sources/src/app/controller/AuthController.php index 758e6e79..5c0006ba 100644 --- a/Sources/src/app/controller/AuthController.php +++ b/Sources/src/app/controller/AuthController.php @@ -19,7 +19,6 @@ use function PHPUnit\Framework\isEmpty; class AuthController extends BaseController { - private UserManager $userMgr; public function __construct(UserManager $manager){ parent::__construct(); @@ -34,7 +33,7 @@ class AuthController extends BaseController $log=$email; // should check email with verrify email $mdp=Validation::clean_string($password); if($this->userMgr->login($log,$mdp)){ - return new RedirectResponse('/'); + return new RedirectResponse('/home'); } else{ $error [] = "Erreur de connexion. Essayez encore"; @@ -69,7 +68,6 @@ class AuthController extends BaseController return $this->render('./page/register.html.twig',[ 'css' => $this->preference->getCookie(), ]); - } #[Route('/register', name: 'register' , methods:['POST'])] @@ -162,7 +160,5 @@ class AuthController extends BaseController } } - - - } +?> \ No newline at end of file diff --git a/Sources/src/app/controller/CoachController.php b/Sources/src/app/controller/CoachController.php index db95d553..bf409633 100644 --- a/Sources/src/app/controller/CoachController.php +++ b/Sources/src/app/controller/CoachController.php @@ -1,49 +1,34 @@ coachManager = $dataManager->coachMgr; -// $this->security = $security; -// } - -// #[Route(path: '/', name: 'home', methods: ['GET'])] -// public function index(): Response -// { -// return $this->render('./page/home.html.twig',[ -// 'css' => $this->preference->getCookie(), -// 'pp' => "test2", -// 'user' => "Doe", -// 'role' => "Athlète", -// 'friendship' => [], -// 'analyzes' => [], -// 'mails' => [], -// 'users' => [], -// 'infoUser' => [], -// 'exos' => [], -// 'member' => [] -// ]); -// } + public function __construct() + { +// session_start(); +// $this->coachManager = $dataManager->coachMgr; +// $this->security = $security; + $this->preference = new Preferences(); + } // #[Route('/global-stats', name: 'coach_global_stats', methods: ['GET'])] // public function globalStats(): Response @@ -52,49 +37,151 @@ // return $this->render('coach/global_stats.html.twig'); // } -// #[Route(path: '/exercice', name: 'exercice', methods: ['GET'])] // 8 -// public function exercice(): Response -// { -// return $this->render('./page/exercice.html.twig',[ -// 'css' => $this->preference->getCookie(), -// 'pp' => "test2", -// 'user' => "Doe", -// 'role' => "Athlète", -// 'friendship' => [], -// 'analyzes' => [], -// 'mails' => [], -// 'users' => [], -// 'infoUser' => [], -// 'exos' => [], -// 'member' => [] -// ]); -// } - -// #[Route(path: '/coaching', name: 'coaching', methods: ['GET'])] -// public function coaching(): Response -// { -// return $this->render('./page/coaching.html.twig',[ -// 'css' => $this->preference->getCookie(), -// 'pp' => "test2", -// 'user' => "Doe", -// 'role' => "Athlète", -// 'friendship' => [], -// 'analyzes' => [], -// 'mails' => [], -// 'users' => [], -// 'infoUser' => [], -// 'exos' => [], -// 'member' => [] -// ]); -// } + #[Route(path: '/coaching', name: 'coaching', methods: ['GET'])] + public function coaching(): Response + { + return $this->render('./page/coaching.html.twig',[ + 'css' => $this->preference->getCookie(), + 'pp' => "test2", + 'user' => "Doe", + 'role' => "Coach", + 'friendship' => [], + 'analyzes' => [], + 'mails' => [], + 'users' => [], + 'infoUser' => [], + 'exos' => [], + 'member' => [] + ]); + } + + #[Route(path: '/search-member', name: 'search-member', methods: ['GET'])] + public function searchMember(string $username, IRequest $req): Response + { + $taberror = []; + // FILTER + $utiliArray = [ + [ + 'nom' => 'John', + 'prenom' => 'Doe', + 'img' => 'john_doe', + 'username' => 'johndoe', + ], + [ + 'nom' => 'Alice', + 'prenom' => 'Smith', + 'img' => 'alice_smith', + 'username' => 'alicesmith', + ], + ]; + // if(!Validation::val_string($name)){ + try { + //code... + // $model->userMgr->addFriend($name); + return $this->render('./page/addmember.html.twig',[ + 'css' => $this->preference->getCookie(), + 'pp' => "test2", + 'user' => "Doe", + 'role' => "Athlète", + 'friendship' => [], + 'analyzes' => [], + 'mails' => [], + 'users' => $utiliArray, + 'infoUser' => [], + 'exos' => [], + 'member' => [], + 'responce' => "Notification d'ajout envoyée à $username" + ]); + } catch (\Throwable $th) { + //throw $th; + // return $this->render("addfriend.html.twig", ['tabError' => $taberror ]); + } + // } + + } + + #[Route(path: '/add-member', name: 'add-member', methods: ['POST'])] + public function addmember(string $username, IRequest $req): Response + { + $taberror = []; + $utiliArray = [ + [ + 'nom' => 'John', + 'prenom' => 'Doe', + 'img' => 'john_doe', + 'username' => 'johndoe', + ], + [ + 'nom' => 'Alice', + 'prenom' => 'Smith', + 'img' => 'alice_smith', + 'username' => 'alicesmith', + ], + ]; + // if(!Validation::val_string($name)){ + try { + //code... + // $model->userMgr->addFriend($name); + return $this->render('./page/addmember.html.twig',[ + 'css' => $this->preference->getCookie(), + 'pp' => "test2", + 'user' => "Doe", + 'role' => "Athlète", + 'friendship' => [], + 'analyzes' => [], + 'mails' => [], + 'users' => $utiliArray, + 'infoUser' => [], + 'exos' => [], + 'member' => [], + 'responce' => "Notification d'ajout envoyée à $username" + ]); + } catch (\Throwable $th) { + //throw $th; + // return $this->render("addfriend.html.twig", ['tabError' => $taberror ]); + } + // } + + } + + #[Route(path: '/member', name: 'member', methods: ['GET'])] + public function member(): Response + { + $utiliArray = [ + [ + 'nom' => 'John', + 'prenom' => 'Doe', + 'img' => 'john_doe', + 'username' => 'johndoe', + ], + [ + 'nom' => 'Alice', + 'prenom' => 'Smith', + 'img' => 'alice_smith', + 'username' => 'alicesmith', + ], + ]; + return $this->render('./page/addmember.html.twig',[ + 'css' => $this->preference->getCookie(), + 'pp' => "test2", + 'user' => "Doe", + 'role' => "Athlète", + 'friendship' => [], + 'analyzes' => [], + 'mails' => [], + 'users' => $utiliArray, + 'infoUser' => [], + 'exos' => [], + 'member' => [], + ]); + } // #[Route('/list-athletes', name: 'coach_list_athletes')] // public function listAthletes(): Response // { // $coach = $this->security->getUser(); // $athletes = $this->coachManager->getAthletesForCoach($coach); - // return $this->render('coach/list_athletes.html.twig', [ // 'athletes' => $athletes, // ]); @@ -107,7 +194,6 @@ // 'athleteId' => $athleteId, // ]); // } - // #[Route('/add-athlete/{athleteId}', name: 'coach_add_athlete', methods: ['POST'])] // public function addAthlete(IRequest $request, $athleteId): IResponse // { @@ -125,4 +211,4 @@ // // } -// } \ No newline at end of file +} \ No newline at end of file diff --git a/Sources/src/app/controller/Controller.php b/Sources/src/app/controller/Controller.php index fb2ed0fa..fa4f1633 100644 --- a/Sources/src/app/controller/Controller.php +++ b/Sources/src/app/controller/Controller.php @@ -420,5 +420,4 @@ //} // // -// - +// \ No newline at end of file diff --git a/Sources/src/app/controller/HeartRateController.php b/Sources/src/app/controller/HeartRateController.php index 05ee1c8f..02c97bc3 100644 --- a/Sources/src/app/controller/HeartRateController.php +++ b/Sources/src/app/controller/HeartRateController.php @@ -15,7 +15,6 @@ use Shared\Log; class HeartRateController extends BaseController { - private ActivityManager $activityMgr; public function __construct(ActivityManager $manager) @@ -59,7 +58,7 @@ class HeartRateController extends BaseController try { if ($this->activityMgr->uploadFile($activityType, 5, $content)) { - return new RedirectResponse('/'); + return new RedirectResponse('/home'); } } catch (\Exception $e) { return $this->renderError([$e->getMessage()]); diff --git a/Sources/src/app/controller/SocialController.php b/Sources/src/app/controller/SocialController.php index f91db3cf..f2867f55 100644 --- a/Sources/src/app/controller/SocialController.php +++ b/Sources/src/app/controller/SocialController.php @@ -1,19 +1,66 @@ preference = new Preferences(); + } + #[Route(path: '/notification', name: 'notification', methods: ['GET'])] + public function mail(): Response + { + try { + $notificationGateway = new NotificationGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); + $listSearch = $notificationGateway->getNotifications(); + $map = new NotificationMapper(); + $notificationEntity = $map->notificationSqlToEntity($listSearch); -// #[Route(path: '/coach', name: 'coach')] -// class CoachController extends BaseController -// { \ No newline at end of file + $listUsers = []; + + foreach ($notificationEntity as $entity) { + $notification = $map->notificationEntityToModel($entity); + $listUsers[] = ['idnotif' => $notification->getId(), 'message' => $notification->getMessage(), + 'date' => $notification->getDate()->format("D j F Y"),'statut' => $notification->getStatut(), 'urgence' => $notification->getUrgence(), + 'idathlete' => $notification->getToUserId()]; + } + + $response = $this->render('./page/notification.html.twig',[ + 'css' => $this->preference->getCookie(), + 'pp' => "test2", + 'user' => "Doe", + 'role' => "Athlète", + 'friendship' => [], + 'analyzes' => [], + 'mails' => $listUsers, + 'users' => [], + 'infoUser' => [], + 'exos' => [], + 'member' => [] + ]); + + } catch (\Throwable $th) { + throw $th; + return $this->render("notification.html.twig", ['tabError' => $taberror]); + } + return $response; + } + + +} \ No newline at end of file diff --git a/Sources/src/app/controller/UserController.php b/Sources/src/app/controller/UserController.php index 44615f17..f2047f5a 100644 --- a/Sources/src/app/controller/UserController.php +++ b/Sources/src/app/controller/UserController.php @@ -16,6 +16,8 @@ use Twig\Environment; use Data\Core\Preferences; use Shared\Log; use function PHPUnit\Framework\isEmpty; +use Database\Athletegateway; +use Database\Connexion; class UserController extends BaseController { @@ -26,10 +28,49 @@ class UserController extends BaseController $this->userMgr = $manager; } - #[Route(path: '/', name: 'home', methods: ['GET'])] + #[Route(path: '/', name: 'index', methods: ['GET'])] public function index(): Response { - + return $this->render('./page/index.html',[ + 'css' => $this->preference->getCookie(), + 'pp' => "test2", + 'user' => "Doe", + 'role' => "Athlète", + 'friendship' => [], + 'analyzes' => [], + 'mails' => [], + 'users' => [], + 'infoUser' => [], + 'exos' => [], + 'member' => [] + ]); + } + + #[Route(path: '/home', name: 'home', methods: ['GET'])] + public function home(): Response + { + $athleteGateway = new AthleteGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); + $activity = $athleteGateway->getListActivity('1');//$currentUser->getId() +// Log::dd($activity); + $chart = []; + foreach($activity as $act){ + $chart[] = ['act' => $act['nbactivite'], 'mois' => date('m', $act['mois'])]; + } + +// $activityGateway = new ActivityGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); +// $listSearch = $activityGateway->getActivity(); +// $map = new ActivityMapper(); +// $activityGateway = $map->activitySqlToEntity($listSearch); +// $listActivity = []; +// foreach ($activityGateway as $entity) { +// $activity = $map->activityEntityToModel($entity); +// $listActivity[] = ['idactivity' => number_format($activity->getIdActivity()), 'type' => $activity->getType(), +// 'date' => $activity->getDate()->format("D j F Y"), 'heureDebut' => $activity->getHeureDebut()->format("H\h i"), 'heureFin' => $activity->getHeureFin()->format("H\h i"), +// 'effortRessenti' => $activity->getEffortRessenti(), 'variabilite' => $activity->getVariability(), 'variance' => $activity->getVariance(), +// 'ecartType' => $activity->getStandardDeviation(), 'moyenne' => $activity->getAverage(), +// 'max' => $activity->getMaximum(), 'min' => $activity->getMinimum(), 'temperature' => $activity->getAvrTemperature()]; +// } +// Log::dd($chart); return $this->render('./page/home.html.twig',[ 'css' => $this->preference->getCookie(), 'pp' => "test2", @@ -37,6 +78,7 @@ class UserController extends BaseController 'role' => "Athlète", 'friendship' => [], 'analyzes' => [], + 'chart' => $chart, 'mails' => [], 'users' => [], 'infoUser' => [], @@ -64,10 +106,28 @@ class UserController extends BaseController ]); } + #[Route(path: '/profile', name: 'profile', methods: ['GET'])] + public function profile(): Response + { + return $this->render('./page/profile.html.twig',[ + 'css' => $this->preference->getCookie(), + 'pp' => "test2", + 'user' => "Doe", + 'role' => "Athlète", + 'friendship' => [], + 'analyzes' => [], + 'mails' => [], + 'users' => [], + 'infoUser' => [], + 'exos' => [], + 'member' => [] + ]); + } #[Route(path: '/preferences', name: 'preferences', methods: ['POST'])] public function preferences(string $theme, IRequest $req): Response { + /*TODO*/ // VALIDER LES DONNEES $this->preference->majCookie($theme); diff --git a/Sources/src/app/views/Templates/authbase.html.twig b/Sources/src/app/views/Templates/authbase.html.twig index 6a8b9bea..57450e24 100644 --- a/Sources/src/app/views/Templates/authbase.html.twig +++ b/Sources/src/app/views/Templates/authbase.html.twig @@ -1,5 +1,6 @@ +{#<<<<<<< HEAD#} @@ -38,29 +39,74 @@ +{#=======#} +{##} +{# #} +{# #} +{# #} +{# #} +{# #} +{# {% block title %}{% endblock %}#} +{# #} +{# #} +{##} +{##} +{#
#} +{#
#} +{#
#} +{# {% block main %}#} +{#
#} +{#
#} +{#
#} +{#
#} +{#

Connexion

#} +{#
#} +{#
#} +{#
#} +{# #} +{# #} +{#
#} +{#
#} +{# #} +{# #} +{#
#} +{#
#} +{# #} +{# #} +{#
#} +{# #} +{#
#} +{#
#} +{#
- {% endblock %} -
-
- +
- - - - + + + + + + diff --git a/Sources/src/app/views/Templates/base.html.twig b/Sources/src/app/views/Templates/base.html.twig index 2ae5f685..d187eabb 100755 --- a/Sources/src/app/views/Templates/base.html.twig +++ b/Sources/src/app/views/Templates/base.html.twig @@ -10,8 +10,9 @@ - + +