Aller au menu du forum Aller au contenu du forum Aller à la recherche dans le forum
Logo Khaganat
Menu principal
Menu

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.

Voir les contributions Menu

Messages - aleajactaest

27 Mai 2026 à 00:27:20
Cliquez pour afficher le message
Mon point de vue sur l'IA.

Je constate que le débat s'élargie sur d'autres sujets :
- La main mise par de grand groupe comme Google, Meta, Microsoft (plus quelques nouveaux acteurs).
- L'écologie, car certain fournisseur d'IA utilise de grand Datacenter, beaucoup d'eau et d'énergie.
- Et l'utilisation de ce mot de clef pour justifier des suppressions d'emploi/de poste.

Je ne rentrerai pas dans le débat des grands groupes, tous centralisés dans des pays qui ont une attitude belliqueuse contre l'Europe. A nous de définir les limites.
Quand à l'écologie, difficile de juger quand on voit tout ce que l'on importe (encore une fois de pays respectant rien ou juste en façade). J'ai même entendu qu'avoir un enfant n'était pas écologique, là je ne sais quoi dire.
Nous pouvons utiliser des IA dont les maisons mères et les services proviennent de pays plus respectueux, voir directement sur notre machine.
L'utilisation du mot de clef IA pour justifier des licenciements économique. Tous les deux ans, on retrouve ce scénario pour permettre de déclencher une vague de licenciement. Cela a un avantage, le CEO n'a pas à justifier ! Il est plus simple de suivre ce que les journalistes claironnent depuis des mois (eux-même suivant les dire de certain patron voulant préparer leurs investisseurs). On passe sous les radars et personne ne mettra en cause la légitimité de l'action. Il est difficile de répondre, la lutte syndicale afin de faire valoir nos droits, changer de travail afin de tourner la page, ...

Je clos ces sujets, pour ma part, et je me recentre sur l'IA.

Comme toute nouveauté, cela génère beaucoup d'enthousiasme et de suspicions, mais on ne peut pas arrêter les avancées. Doit-on refuser sous peine d'être dépassé par celle-ci et par ceux qui les utilises ?

Etant donnée, que la base pour entraîner provient de tout le monde (avec ou sans consentement ...), pour un projet OpenSource, cela me semble pertinent de l'utiliser.

L'IA n'est pas une personne mais un outil. A nous de montrer l'usage que l'on fait de celui-ci et surtout que l'on montre notre vision.

Attention, on doit toujours valider le résultat, l'outil s'est bien, mais celui-ci peut générer des erreurs. si l'IA fait une bêtise, celui qui a lancé est responsable.

l'IA couvrant tous les aspects, je pense qu'on doit l'utiliser dans tous les domaines (Codage, Génération d'image, Génération du son/musique, 3D, ...). On ne peut pas faire de distinction entre ces différents modes (il nous faut être équitable). Par contre, on n'est pas obligé de toujours l'utiliser.

On se doit aussi d'être transparent, quelle IA est utilisé, quelle version (et "identifiant unique"), lien sur le modèle, afin que l'on puisse contrôler, analyser, ... bref pas rester passif. Quel est le "prompt" utilisé, qu'elles sont tous les "prompt" systèmes utilisés.
On devrait définir le commit afin d'ajouter un indicateur pour signaler l'utilisation de l'IA: par exemple [AI used].

Dans le cadre de la recherche d'incident (issue), on devra ajouter des étapes obligatoires.
1- analyse du problème détecté
2- proposition d'une solution temporaire pour bloquer le problème (workaround) et si possible proposition d'un patch.
3- Vérification que l'incident n'est pas déjà déclaré (recherche doit être réalisé moins d'un jour avant la création de l'incident).

Concernant l'usage, voici mes idées:
1- utiliser l'IA sur un compte dédié (pas celui que vous utilisez pour lire vos courriels, XMPP, ...), bref un vrai compte pour l'usage de l'IA.
2- de mettre que des crédentiales limités (par exemple une clef SSH avec un mot de passe, l'idéal serait d'avoir que la clef qui pousse sur le repo GIT (avec une contrainte que le compte n'aura pas le droit de forcer une mise à jour [ne pas permettre de supprimer des commits, ...], voir mieux encore, un compte dédié Utilisateur-IA [Utilisateur : étant la personne qui valide]
3- ne pas permettre à l'IA d'ajouter des "hooks" (bloquer au niveau de git)

Bref, ici, je considère que l'IA peut être entraîné pour exécuter du code malveillant, il faut pouvoir cloisonner celle-ci (et se protéger).

Dernier point, sur la partie code, nous devons faire une attention sur les modules/libraires externe utilisé (on doit être pertinent sur l'utilisation de lib externe et s'assurer qu'elle n'ont pas de faille de sécurité, maintenabilité, ...)



Avant tout, nous sommes des hommes de dévouement et de sacrifice. Nous devons travailler pour tous avant de travailler pour nous.
Victor Hugo

26 Juillet 2023 à 23:07:05
Cliquez pour afficher le message
Comparaison entre un accès sur un service unique et un accès sur plusieurs services
   
   Accès Service Unique:
      * Avantage:
        - Simplification sur la gestion de la sécurité
      * Inconvenient:
        - Tout passe par le service frontal
        - En cas de crash du frontal, on peut tout
        - Illusion de sécurité (dans les faits si on case le frontal, on a accès à tout)
        - Ajout de la latence (effet entonoire, le débit max est régit par le service frontal)
   Accès Multi-Service:
      * Avantage:
        - Plus de redondance
        - Repartition de la charge
      * Inconvenient:
        - Complexifie de la gestion de la sécurité

A prévoir:
  - une mise à jour de Firewall en dynamique pour autoriser l'IP des joueurs sur le service attribué.
  - Service auhtentification : seul service ouvert si non authentifié
  - Service dédié pour savoir quels sont les services disponible pour le joueur (permettre de basculer rapidement et de ne pas intérroger le service authentification qui est ouvert à tous)

view-network.png


PS.:
  Fichier PlantUML pour ceux qu'ils veulent reprendre et améliorer.
view-network.txt
05 Juillet 2023 à 22:20:45
Cliquez pour afficher le message
Je vous soumets ma vision sur l'architecture.
Bon évidemment il s'agit d'une réflexion sur le sujet, tout remarque/analyse est bonne.
[Merci de détailler pourquoi]

Je me focalise sur la partie serveur, qui va recevoir les communications et centraliser les actions.

Lexique :
  Client : programme lancé sur les postes permettant d'interagir dans l'univers (avec plus ou moins des fonctionnalité suivantes : déplacement, communication instantané, 3D, ...)
  Serveur : il s'agit d'une (ou plusieurs machines) utilisé pour contenir des processus (programmes) qui gèrent la communication avec les Clients
  Bot : programme qui simule un joueur


Je pars du postulat suivant:
 1- Le serveur a toujours raison [idiot comme paradigme, mais il faut choisir entre les clients et le serveur, notez que je dis les clients mais lesquels à raison parmi eux]
 2- Minimiser les éléments entre les clients et le serveur (afin de réduire au maximum la latence)
 3- Avoir la scalabilité (capacité à continuer de manière normale avec l'augmentation du nombre de personne connecté, bon il faudra voir aussi les limite car suivant les moyen on devra limiter le nombre de machine serveur)
 4- Avoir de la redondance (être capable de fonctionner avec la perte d'une partie de l'infrastructure, possibilité de reconnexion rapide, voir le pire bascule complet sur un autre site, bon les délais de bascule varie en fonction du problème)
 5- Avoir le moins d'interaction avec la base de donnée [évite des écriture intempestive, relation trop complexe dans la base, éviter les traitements post-séance]
 6- Avoir un système d'équité sur l'utilisation de la bande passante réseau (ne pas avoir que le joueur 1 qui répond et agit sans de retour du joueur 2, bref des mécanismes permettant de réguler l'activité de façon équitable [tant que le temps de réponse reste raisonnable pour tout le monde])
 7- Gestion des "Bots", ici on rentre plus dans comment gère t-on cela car cela va arriver.
    * avoir une API claire avec une identification qu'il s'agit d'un BOT
    * avoir la localisation des sources/données/version utilisé pour démarrer le BOT
    * Licence qui me semble doit être identique au notre (voir plus ouvert)
    * savoir si le Bot est autoriser à s'exécuter dans l'environnement de Prod ou Dev (utile pour les testeurs et claire pour ceux qui font volontairement des erreurs)
    * Comment doit-on gérer les personne qui utilise un Bot comme étant un joueur réel?
    * Faut-il mettre des différence entre Joueur/Bot?
       - Je dirais que oui: concernant la durée d'utilisation un Bot travail 24h, pour un humain s'est impossible
         ( caractéristiques différentes ?, temps de réponse différent ?)
   

Ma première idée de séparer les processus de communication serveur pour chaque fonction.
Certaine comme le déplacement sont tout le temps sollicité, à l'inverse l'inventaire auront une activité plus faible.
En séparant les activités, on permet de se séparer d'un étage d'agrégation/compression, et aussi de pouvoir lancer sur une machine différente les processus gourmands en cpu/mémoire ou réseau.
Le problème est que l'on augmente la surface d'attaque sur le serveur.
Le deuxième problème est que certain joueur n'aurait pas la possibilité de communiquer avec plusieurs serveur (problème de firewall), dans ce cas je propose de mettre un processus d'agrégation pour eux (seule eux sont impacté)

J'avais aussi imaginé pouvoir faire une communication en multicast, avantage pour le déplacement des joueurs, pas besoin de renvoyer la même information plusieurs fois. Idée difficile à mettre en place si la partie réseau [que l'on ne maîtrise pas] n'ouvre pas ce type de flux.

Processus:
  1- Authentification
  2- Gestion de la position
  3- Gestion de l'inventaire
  4- Gestion des quêtes
  5- Gestion des actions en cours [ici on pensera à écrire dans la Base de Donnée l'heure de début, facile ensuite à savoir si l'action est fini en comparant avec l'heure actuelle]
  6- Gestion des discussions
  7- Éléments présents (décors, object amovible, ...]
  8- Caractéristique/Compétence/Faculté/...
  9- Identification des noms des personnage (propre à chaque joueur)
  X- certaine une fonctionnalité que j'ai oublié
 
La gestion des positions devrait se faire en plusieurs étapes, avec plusieurs cercles autour du joueur pour connaitre les mouvements des autres.
A savoir que l'on a besoin de savoir si notre voisin le plus proche s'est déplacé d'un mètre, par contre celui qui est à 1km, pas besoin d'avoir l'information à chaque pas (que l'on ne verra pas à l'écran car imperceptible)
Bref, il me semble qu'il faudra un processus pour géré un nombre limité de joueur, et des processus réceptionnant ces info pour gérer les masses de joueurs (et échanger entre eux ces mouvements)

Pour la base de donnée, une simple base de donnée clef/valeur me semble plus "simple" à gérer.
Autre point, certainement information ont une durée de vie très courtes (comme la position), privilégié la mémoire, et d'autre très long (comment l'inventaire), ici on pourrait par exemple se reposer sur un fichier.

Le processus d'authentification aura pour fonction de démarrer/attribuer les processus utilisable pour le client (avec un identifiant/clef pour chaque processus)

La redondance des processus, un primaire et un secondaire (le primaire donnant les info au secondaire), en cas de crash du premier, le secondaire devient primaire et un processus de supervision relance un autre processus (afin d'avoir un deuxième processus actif)

La réplication sur un autre site demandera plus un processus intermédiaire pour copier les info avec durée moyen/longue sur le site distant (aucun intérêt pour les données à durée courte)

arch-eclate.png

@+
AleaJactaEst

PS.:
  Fichier PlantUML pour ceux qu'ils veulent reprendre et améliorer.
    arch-eclate.txt
Cliquez pour afficher le message
Pour ma part, j'ai trouvé la dernière (release non définitive) très plaisante, et tant qu'à faire bosser sur une version plus pérène.
De plus la gestion des modules externes me semble mieux géré (Remplacement de GDnative par GDExtension, on n'a plus besoin de compiler entièrement godot) et va nous pemettre d'intégérer sans trop de contrainte sur le coeur godot.

Bon seul bémol, il manque de plugin/extension, on va devoir travail dessus si on souhaite avancer.
Le hic concernant les plugin C#/mono, je crains qu'ils aient une durée de vie limité sur godot 4.x

Bref je vote pour Godot 4.X
Cliquez pour afficher le message
Afin de promouvoir le jeux et de donner l'envi aux bénévoles de nous rejoindre.
Pourquoi pas faire des court-métrages sur le jeux qui promeut les différents personnages/races mais que l'on voit dans une scène comique.

Exemple 1 :
   Un journée normal ou chacun des personnages arrive dans une rame de métro, à chaque station un(ou plusieurs) nouveau personnage arrive dans la rame.
   Arrive le moment ou la rame est bondé, un dernier personnage (une sorte de putois) se glisse et sert tout le monde (chacun faisant une tête montrant sont désagrément)
   Puis, la station suivant, un personnage façon hérisson arrive pousse tout le monde, [encore des grimaces], la sonnerie retenti, la porte se ferme, et ...
   Le hérisson éternue, le putois réagit en lâchant un gaz (vert), et le reste les personnages suffoque
   Le wagon repart, et on voit derrière une publicité, On est de tout coeur avec vous:  connecter vous sur khanat.

Exemple 2 :
   Un message d'entrée : Nous profitons de ce petit instant pour un moment poésie
   Nous ne voyons pas le personnage, juste ces mains ganté.
   Il cherche sont peigne dans son tiroir
   Puis, on voit le personnage au travers d'un miroir en train de se coiffer, mettre son parfum.
   Il sort de la salle de bain, récupère ces notes de musiques, puis se dirige dehors.
   Il s'installe sur la chaise de son Piano à queue, pose sa partition, puis commence à jouez de la musique.
   Soudain, en fond on découvre deux groupes de joueur (différents personnage/race) se faire une guerre toute gentille au début, chacun des groupes repoussant l'autre quand il arrive au bout de l'écran.
   A un  moment on  voit les joueurs sauté (en référence à certain jeux ou les perso saute tout le temps pour éviter les tir), avec une net intention de gagner sur leur ennemi.
   Puis cela monte en crescendo, à un moment on voit l'artillerie lourde. [médiéval, futuriste, autre à voir]
   Le personnage principal insipide, continue de joué, malgré l'intrusion de certain personnage dans sa sphère.
   La scène se terminant que le personnage a finit de jouer, et vient devant pour saluer son public (alors quand dans le fond de la scène c'est toujours le guerre)
   


Je vous laisse trouver d'autre idée et/ou donner votre avis sur ce sujet.
AleaJactaEst
29 Juillet 2019 à 22:49:58
Cliquez pour afficher le message
21h, le vendredi (sinon le lundi, mardi, jeudi à 21h)
29 Août 2017 à 22:06:22
Cliquez pour afficher le message
Et voilà le contenu de mon ryzom.xml

ryzom.xml :

<xml>
   <_Categories>
      <_Category>
         <_Name type="STRING" value="khanat_lirria"/>
         <_IsOptional type="SINT32" value="0"/>
         <_Files type="STRING" value="aaa_lirria.bnp"/>
         <_Files type="STRING" value="kh_characters_maps_clothes.bnp"/>
         <_Files type="STRING" value="kh_characters_shapes.bnp"/>
         <_Files type="STRING" value="kh_construction.bnp"/>
         <_Files type="STRING" value="kh_environnement_bank.bnp"/>
         <_Files type="STRING" value="kh_environnement_maps.bnp"/>
         <_Files type="STRING" value="kh_fauna_animation.bnp"/>
         <_Files type="STRING" value="kh_fauna_maps.bnp"/>
         <_Files type="STRING" value="kh_fauna_shape.bnp"/>
         <_Files type="STRING" value="kh_font.bnp"/>
         <_Files type="STRING" value="kh_handled_item.bnp"/>
         <_Files type="STRING" value="kh_interfaces.bnp"/>
         <_Files type="STRING" value="kh_outgame.bnp"/>
         <_Files type="STRING" value="kh_server.bnp"/>
         <_Files type="STRING" value="kh_sfx.bnp"/>
         <_Files type="STRING" value="kh_sky.bnp"/>
         <_Files type="STRING" value="kh_sound.bnp"/>
         <_Files type="STRING" value="kh_translate_de.bnp"/>
         <_Files type="STRING" value="kh_translate_en.bnp"/>
         <_Files type="STRING" value="kh_translate_es.bnp"/>
         <_Files type="STRING" value="kh_translate_fr.bnp"/>
         <_Files type="STRING" value="kh_translate_ru.bnp"/>
         <_Files type="STRING" value="kh_translate_wk.bnp"/>
         <_Files type="STRING" value="ryz_characters_animations.bnp"/>
         <_Files type="STRING" value="ryz_characters_maps_body.bnp"/>
         <_Files type="STRING" value="ryz_characters_maps_clothes.bnp"/>
         <_Files type="STRING" value="ryz_characters_maps_hair.bnp"/>
         <_Files type="STRING" value="ryz_characters_maps_underwear.bnp"/>
         <_Files type="STRING" value="ryz_characters_shapes.bnp"/>
         <_Files type="STRING" value="ryz_characters_skeletons.bnp"/>
         <_Files type="STRING" value="ryz_construction.bnp"/>
         <_Files type="STRING" value="ryz_environnement_bank.bnp"/>
         <_Files type="STRING" value="ryz_environnement_displaces.bnp"/>
         <_Files type="STRING" value="ryz_environnement_ig.bnp"/>
         <_Files type="STRING" value="ryz_environnement_lightmaps.bnp"/>
         <_Files type="STRING" value="ryz_environnement_maps.bnp"/>
         <_Files type="STRING" value="ryz_environnement_pacs_prim.bnp"/>
         <_Files type="STRING" value="ryz_environnement_shapes.bnp"/>
         <_Files type="STRING" value="ryz_environnement_tiles.bnp"/>
         <_Files type="STRING" value="ryz_environnement_vegetable_sets.bnp"/>
         <_Files type="STRING" value="ryz_environnement_vegetables.bnp"/>
         <_Files type="STRING" value="ryz_environnement_zones.bnp"/>
         <_Files type="STRING" value="ryz_fauna_maps.bnp"/>
         <_Files type="STRING" value="ryz_fauna_shape.bnp"/>
         <_Files type="STRING" value="ryz_fauna_skeletons.bnp"/>
         <_Files type="STRING" value="ryz_handled_item.bnp"/>
         <_Files type="STRING" value="ryz_help.bnp"/>
         <_Files type="STRING" value="ryz_indoors_ig.bnp"/>
         <_Files type="STRING" value="ryz_indoors_lightmaps.bnp"/>
         <_Files type="STRING" value="ryz_indoors_pacs.bnp"/>
         <_Files type="STRING" value="ryz_indoors_shapes.bnp"/>
         <_Files type="STRING" value="ryz_interfaces.bnp"/>
         <_Files type="STRING" value="ryz_ring.bnp"/>
         <_Files type="STRING" value="ryz_sfx.bnp"/>
         <_Files type="STRING" value="ryz_sky.bnp"/>
         <_Files type="STRING" value="ryz_translate.bnp"/>
         <_Files type="STRING" value="ryz_zzz_bazaar.bnp"/>
<_Files type="STRING" value="exedll_linux32_.ref"/><_Files type="STRING" value="exedll_linux64_.ref"/><_Files type="STRING" value="exedll_osx_.ref"/><_Files type="STRING" value="exedll_win32_.ref"/><_Files type="STRING" value="exedll_win64_.ref"/>
      </_Category>
   </_Categories>
   <_IndexFileName type="STRING" value="ryzom.hist"/>
   <_PatchDirectory type="STRING" value="patch_game/patch/"/>
   <_BnpDirectory type="STRING" value="patch_game/bnp/"/>
   <_RefDirectory type="STRING" value="patch_game/ref/"/>
   <_NextVersionFile type="STRING" value="patch_game/Lirria.version"/>
</xml>

@+
29 Août 2017 à 19:45:30
Cliquez pour afficher le message
Bonjour,
Je viens de générer tous les fichiers patch (sous docker)

après controle avec les originaux (ceux récupérer par le client khanat quand il se connecter sur lirria.khaganat.net), je constate quelques différences

Fichier provenant de  lirria.khaganat.net [md5sum]

b640136cf07daef39169f6caf9d3f7c2   exedll_osx_.ref
b10ed0d1495f9f8f4238b393b03b047b   fonts.bnp
553eedba4a3a02e344cc061f9a455517   kh_construction.bnp
04ebb78c16bce3609a2d05f8fe5bf3f9   kh_fauna_maps.bnp
4bfc40b4b9a1ce03800ed3a45838d54e   kh_server.bnp
3a5c92ffadc5748b9392f0fb44874932    ryz_fauna_maps.bnp



Fichier que j'ai compilé : (via bnp_make)
ef3fd09f2a4280f6d972ab796f71318f   exedll_osx_.ref
6e5fd43ace293749259518aa64e68f80   fonts.bnp
306fb19f5e1ac41c842e3145c45fe407   kh_construction.bnp
a8f1277f36433870c79d493539fa2fb8   kh_fauna_maps.bnp
184356bf24632064a980424c4e888582   kh_server.bnp
e2d032204e35c6aa89c020a3951cfc92   ryz_fauna_maps.bnp


Bon, je vais contrôler leur contenu pour analyser d'ou provient la différence.

@+
AleaJactaEst

---------------
** controle du contenu de chacun : **

* Présent sur l'original :
fonts file:ryzom_monospace.ttf ref:1face09831023b98a0ff717f28d83bcc compil:missing
ryz_fauna_maps file:fy_mo_arma.dds ref:6f8058f88bf2b7a4c255df1918ff8e03 compil:missing
ryz_fauna_maps file:PR_MO_arma.dds ref:d6f6ba892299fffaf0e54e4c2296fd78 compil:missing
ryz_fauna_maps file:TR_MO_arma.dds ref:4df1478f3c106d95830bd5ef23faf23b compil:missing


* Présent sur mon compilé :
kh_construction file:fly.dds ref:missing compil:af6e5b25833f4fbb1e136d07e641f881
kh_construction file:o_lantern_a_01_off.dds ref:missing compil:f83fee6c79209e312acade9a923a3e99
kh_construction file:o_lantern_a_01_on.dds ref:missing compil:37d88438ee184d8caa425313f8750922
kh_construction file:o_signpost_a_02_disp_eatingplace.dds ref:missing compil:1319b524e144abde170c0c4c850bfbbb
kh_construction file:o_signpost_a_02_disp_sleepingplace.dds ref:missing compil:1b6f3350f2d61e9bddc64a7e2965d6f1
kh_construction file:o_signpost_a_02_disp_workplace.dds ref:missing compil:e4154156afc5cac802ddb5296053080f
kh_construction file:signpost_01_disp_eatingplace_off.shape ref:missing compil:1fe253fabade4e97faf3fa25d3c1610f
kh_construction file:signpost_01_disp_eating_place_on.ps ref:missing compil:9f968edbe7f59458a2772cbdee88c2dd
kh_construction file:signpost_01_disp_eatingplace_on.shape ref:missing compil:7bb16f91f59d7cffd2e77ccb1f1490ac
kh_construction file:signpost_01_disp_sleepingplace_off.shape ref:missing compil:3f8bf198a15541cceb1005e4b2118119
kh_construction file:signpost_01_disp_sleeping_place_on.ps ref:missing compil:a2c1c881101574483400d39287fd87a2
kh_construction file:signpost_01_disp_sleepingplace_on.shape ref:missing compil:0ec5e7bfad60a467617752985523cb94
kh_construction file:signpost_01_disp_workplace_off.shape ref:missing compil:d3e4aead527fd6fbd8905b4fd11cddc0
kh_construction file:signpost_01_disp_workplace_on.ps ref:missing compil:bb656b61a38d960675ba6da8da83a9bd
kh_construction file:signpost_01_disp_workplace_on.shape ref:missing compil:2e6b0de77dda01d26ef78f19c9e282fa
kh_fauna_maps file:JU_MO_arma.dds ref:missing compil:db82f578f8f0c54c7e30ceb44359a8f0


* Présent des deux coté, mes différents
exedll_osx_ file:client_default.cfg ref:8c2f6cf433f11aaf1f79a5b3e4b50ebe compil:87ad865460d7eda886a27284947e3970
kh_server file:creature.packed_sheets ref:f6c73f741f2c8f4cc1aafccc8ba6163f compil:ed45d60c0ec046e6c5ef19d1df8381b0
kh_server file:item.packed_sheets ref:f7245fa8e413b6574c64749be629329c compil:ce7641061d0255b5744c1eefd175e7c5
kh_server file:lmconts.packed ref:8dff79e0979c98d7c2d40a7edb019150 compil:5a93f937db671e8a6121fbae36a82ad8
kh_server file:sbrick.packed_sheets ref:0e6317e668024563132a91c568857e4f compil:26bd7836d4bfabfa25f13593bb04b4b5
kh_server file:sheet_id.bin ref:4780fc9db9cd521f7fb8f96dc2c73a2e compil:66f4c2e0d761c35239e3a2e5f1f62ebf
kh_server file:sitem.packed_sheets ref:550af0b3da7f57716978d107bbd6d0fd compil:999cea8fd7b3bc8eae0351aecdbb4546
kh_server file:sphrase.packed_sheets ref:d6e76ddd70f38091f3b86d62d41941c4 compil:9d2d67705c9b14336a4337eaca861cb1
kh_server file:visual_slot.tab ref:9432b586c5a0671046cb4bfde1968b01 compil:83151deb4e52c2c335e047abc7fd8380
kh_server file:weather_setup.packed_sheets ref:c6b0ba40d7fafc40e6e2da68a8847aeb compil:7fc4765c1c439b7434ebd9ab788cbd97


@+
AleaJactaEst
Licences Mentions légales Accueil du site Contact Inclusion