10:53 < tarek_> http://www.gizmodo.fr/2007/10/05/my_tailor_is_chebran.html
14:08 < gawel> matin
14:39 < gawel> ogrisel: cat /etc/afpy/admin_scripts/afpy_backup
14:45 < gawel> j'ai bien bossé
14:45 < gawel> j'ai fait un truc de backup
14:46 < gawel> complété la sync pou l'annuaire ldap
14:46 < gawel> et fait un truc qui envois des mail avec les info ldap
14:46 < gawel> http://svn.afpy.org/portal/afpy.mail/afpy/mail/doctests/ldap.txt
14:47 < gawel> c'est assez sympa
14:54 < gawel> d'ailleurs en complétant le ldap je me suis appercu qu'on avait une bonne baisse de membre
14:55 < gawel> 41 en 2006 contre 33 en 2007
14:57 < gawel> alors qu'il y a plus de 400 inscrit dans le forum
14:57 < gawel> ca me laisse perplexe
14:58 < gawel> je me suis aussi apercu que lgodard avait mis un numéro de tél foireux ;)
15:15 < ogrisel> gawel: matin
15:15 < ameurant> matin de naples
15:15 < ameurant> :)
15:17 < ogrisel> ameurant: cool
15:17 < gawel> le pays des belles brunes
15:18 < gawel> bon appétit
15:18 < ogrisel> gawel: pour les membres effectivement faudrait faire des relances
15:18 < ogrisel> j'ai toujours pas recu le numero IANA
15:19 < ogrisel> mais des que je l'ai je mets en place la nouvelle objectClass
15:19 < gawel> c'est indispensable ce numéro ?
15:20 < yota> non
15:20 < yota> c'est juste si tu veux permettre aux autres de manipuler tes objets
15:21 < yota> j'ai des serveurs ldap avec objet perso depuis des années sans aucun soucis :)
15:21 < ogrisel> non c'est pas indispensable mais c'est plus clean
15:22 < gawel> je vois
15:22 < ogrisel> pour etre sur de ne pas avoir de conflit de nom avec d'autres schemas custom
15:23 < gawel> y a d'autres trucs qu'on aimerais stocker je crois
15:23 < ogrisel> c'est un namespace officiel et unique en qqsorte
15:23 < gawel> - si le mec veut une facture
15:23 < gawel> - les listes ou il veut être
15:23 < ogrisel> ok
15:23 < gawel> et heu, je sais pas, surement d'autres
15:23 < ogrisel> tu peux mettre tout ca sur une page wiki ?
15:23 < gawel> montant cotisé ?
15:24 < gawel> ouais
15:24 < ogrisel> pour les montant cotisé c'est lié aux dates
15:24 < gawel> ouais. relou ?
15:25 < ogrisel> je sais pas si on peut faire des attributs structurés en LDAP
15:25 < ogrisel> je pense pas
15:25 < gawel> c'est ce que je me disais ouais
15:25 < ogrisel> on va faire en sorte qu'une date == une cotise
15:25 < gawel> enfin si tu peux. faudrais que ce soit un sous arbre du membre. ca se complique
15:25 < ogrisel> et que donc on doit avoir le meme nombre de date que le nombre de cotises
15:26 < ogrisel> oui tu as raison
15:26 < gawel> bah ouais, mais un étudiant paye 10 euro, un membre 20 et peut-^tre plus tard un boite 50
15:27 < ogrisel> mais on pourra plus faire de recherche du type : trouvé les inscrits qui ont pas de cotise
15:27 < ogrisel> faut y reflechir effectivement
15:27 < gawel> pourquoi ?
15:27 < ogrisel> tu vois comment ecrire une telle requete ?
15:28 < ogrisel> on peut faire des requete sur les attributs d'un noued, pas sur l'existance et la valeur des attributs des noeuds fils
15:28 < gawel> je sais pas. on sait bien rechercher ceux qui n'ont pas d'attribut. doit y avoir moyen de faire ca avec des sous arbre
15:28 < gawel> bah sur l'existence d'un noeud
15:29 < ogrisel> les requete retourne les noeud eux meme, pas leurs parent
15:29 < gawel> pas faux
15:30 < gawel> au pire tu fais un diff entre les membres et ceux qui on un cotis
15:30 < gawel> c'est pas un truc qu'on ferais toutes les minutes
15:30 < ogrisel> oui
15:31 < gawel> et ca nous permettrais de stocker aussi les dons ou autres
15:31 < gawel> donc sympa quand même
15:31 < ogrisel> oui
15:31 < ogrisel> donc on fait des objectClass 'membership' et 'donation' ?
15:32 < ogrisel> qui seront des fils des fiches des membres ?
15:32 < gawel> un seul objectclass suffirais non ?
15:32 < ogrisel> et ont met a jour une attribut date sur la fiche des membres qui dit juste qu'a quand il est membre
15:32 < gawel> et tu lui colle un attribut type
15:33 < ogrisel> on peut aussi faire comme ca
15:33 < gawel> ptete mieux avec objectclass en fait. c'est indexé
15:34 < ogrisel> un object class 'payment' avec des attributs "date", "amount", "reason"
15:34 < ogrisel> s/"reason"/"object"
15:34 < gawel> et un num de facture tant qu'a faire
15:34 < ogrisel> et dans object on met "student membership", "corporate membership", ..., "donation"
15:34 < ogrisel> oui
15:35 < gawel> (c'est gwen qui veut ça)
15:35 < ogrisel> pour les indexes ont peut mettre ce qu'on veut
15:35 < gawel> ouais, top ça
15:35 < gawel> je sais mais si on évite d'en coller c'est pas plus mal
15:36 < ogrisel> c'est pas compliqué a ajouter et c'est pas comme si on avait de milliers de transactions par secondes niveaux impacte sur les perfs
15:36 < gawel> je sais pas comment réagit python-ldap avec les attribut date
15:36 < gawel> ouaip, certes
15:36 < ogrisel> oui moi non plus
15:36 < ogrisel> au pire c'est des chaine de caracteres parsables
15:37 < gawel> ah oui, je sais ce que je voulais aussi. un champs pour un alias mail
15:37 < ogrisel> bon aller je me fais un café, je choisis un PEN bidon temporairement et j'ecris ce schemas dans /etc/ldap/schemas/afpy.schema
15:37 < ogrisel> ok
15:37 < gawel> yeah :)
15:38 < gawel> t'as vu mon script de backup aussi ?
15:38 < gawel> ca me semble une bonne solut
15:38 < gawel> ca fait les tar avec backup-manager sur py
15:38 < ogrisel> j'ai pas encore regardé mais j'ai vu ton code pour les emails depuis les infos ldap
15:38 < gawel> héhé
15:38 < ogrisel> backup-manager c'est un user ?
15:39 < gawel> non, un soft
15:39 < ogrisel> ah je connais pas
15:39 < gawel> un cron qui tar ce que tu lui dit
15:39 < ogrisel> ok, c'est cool
15:39 < ogrisel> faut mettre les backup dans un repertoire accessible avec un user non root
15:40 < gawel> tout est expliqué :)
15:40 < ogrisel> et donner des clefs ssh pour que les autres box puisse aspirer les backup
15:40 < ogrisel> ah ok je vais lirs
15:40 < gawel> oui :)
15:41 < ogrisel> d'abord café
16:10 < ogrisel> gawel: pour ton script faudrair remplacer scp par rsync
16:10 < ogrisel> sinon tout a l'air ok
16:11 < ogrisel> http://samba.anu.edu.au/rsync/examples.html
16:12 < gawel> bah c'est bien scp
16:13 < gawel> rsync ça sync, ca backup pas vraiment
16:13 < ogrisel> si ca evite de copier les fichiers qui n'ont pas changé
16:13 < ogrisel> ca va beaucoup plus vite
16:14 < gawel> on s'en fou non ?
16:14 < gawel> je veux dire on est de dedibox a dedibox
16:14 < gawel> ca va super vite et on est pas limité en bp
16:15 < ogrisel> c'est juste que c'est plus rapide de faire "rsync -avR" plutot que "scp -r"
16:15 < gawel> cpas super grace je trouve
16:16 < gawel> et ca oblige à install rsync
16:16 < ogrisel> faut juste tester les options (j'ai toujours tendance a me planter :))
16:16 < ogrisel> ok comme tu veux
16:16 < gawel> bien comme ça je trouve
16:16 < gawel> on verra si y a vraiment trop de traffic plus tard
16:16 < gawel> mais la y a pas grand chose
16:16 < ogrisel> j'utilise LDAPStudio pour faire le schema
16:16 < ogrisel> trop bien
16:17 < gawel> je l'ai install ouais. c'est bien foutu
16:27 < gawel> ogrisel: ou tu choppe ssh-copy-id ?
16:28 < gawel> on en parle partout mais je le trouve nul part
16:28 < ogrisel> hum je sais plus 2s
16:29 < gawel> ah il est par défaut dans debian en fait
16:29 < ogrisel> comment on fait pour trouver le paquet debian qui a installer un fichier par son path ?
16:29 < gawel> je cherchais pour mon mac
16:29 < gawel> oula je sais pas
16:29 < ogrisel> dpkg qqchose
16:30 < ogrisel> tiens voila
16:30 < ogrisel> http://pastebin.com/m6f7cf2ca
16:31 < gawel> merci
16:33 < ogrisel> pour info voici le schema dans son etat actuel
16:33 < ogrisel> http://pastebin.com/m22d99b4a
16:33 < ogrisel> je l'ai pas encore testé
16:33 < ogrisel> je vais le tester sur mon localhost avant de le charger sur py.afpy.org
16:33 < ogrisel> si t'as des remarques
16:34 < ccomb> jour'
16:34 < ccomb> pour rsync je confirme c'est carrément mieux pour le backup
16:35 < ccomb> j'utilise rsync --rsh=ssh -arv /home/dossier user@machine:/quelque/part
16:36 < ccomb> et selon les gouts, --delete-after ou --delete-during
16:37 < ccomb> dpkg -S ssh-copy-id
16:37 < ccomb> openssh-client: /usr/bin/ssh-copy-id
16:43 < gawel> -SEARCH
16:43 < gawel> ogrisel: je verrais bien un object class cotis et un "autre"
16:44 < gawel> s/cotis/cotisation/
16:44 < ogrisel> ccomb: merci
16:44 < ogrisel> gawel: trop tard
16:44 < ogrisel> :)
16:44 < gawel> arf :)
16:44 < gawel> tu l'as mis ?
16:44 < ogrisel> pour payment tu veux dire ?
16:44 < gawel> ouais
16:44 < ogrisel> je l'ai corrigé pour qu'il marche dans mon openldap
16:45 < ogrisel> je trouve ca plus simple comme ca
16:45 < gawel> soit, ok
16:46 < ogrisel> on peut faire des requete pour filtrer les donation
16:46 < gawel> ca me parait très bien sinon
16:46 < gawel> yep
16:46 < ogrisel> et le jour ou on recoit du firc pour autre chose on aura pas besoin de changer le schema
16:46 < ogrisel> genre pour nos activités mafieuses
16:46 < gawel> le "autre" aurait été :)
16:47 < gawel> c'était juste pour isoler les cotis. mais ca va
16:47 < ogrisel> :)
16:47 < ogrisel> ok
16:47 < ogrisel> je charge le schema sur py.afpy.org
16:47 < gawel> cool
16:47 < gawel> je vais me coller à la sync
16:48 < gawel> on vas voir comment ca se comporte avec les date
16:48 < ogrisel> ccomb: avec "-arv" comme option /quelque/part contiendra un sous repertoire "dossier" ou pas ?
16:49 < ccomb> je crois que ça dépend si tu mets / à la fin ou pas
16:49 < ccomb> je regarde
16:49 < ogrisel> ah ok
16:52 < ccomb> ah non
16:53 < ccomb> /home/dossier /quelque/part ça copie le contenu de dossier dans part
16:53 < ccomb> donc ça ajoute pas de répertoire "dossier"
16:53 < ccomb> avec / à la fin c'est pareil
17:03 < ogrisel> ok merci ccomb
17:03 < ogrisel> gawel: j'ai chargé le schema et il a l'air de marcher
17:04 < gawel> merde, on a zapé la date de naissance :)
17:04 < ogrisel> mais je sait pas quoi prendre comme rdn pour les paiements
17:04 < ogrisel> c'est important la date de naissance ?
17:04 < gawel> ouais, si le mec est pas majeur
17:04 < ogrisel> pas majeur, pas de chocolat
17:05 < gawel> voila
17:05 < ogrisel> pas de fiche de membre => pas besoin d'attribut si ?
17:05 < gawel> c'est pour lui signifier qu'on accepte pas les paiement allopass
17:05 < gawel> comment ca ?
17:07 < ogrisel> ok je vais ajouter ton birthDate
17:07 < gawel> chouet
17:07 < ogrisel> sinon pour le rdn des payment on prend le paymentDate
17:07 < ogrisel> c'est un generalizedTime
17:08 < ogrisel> donc la syntaxe c'est yyyymmddhhmmssZ
17:08 < gawel> ca me parait pas mal
17:08 < ogrisel> exemple 20070225000000Z c'est ma derniere date de cotise
17:08 < ogrisel> (de memoire)
17:09 < ogrisel> je l'ai testé ca marche
17:09 < ogrisel> DN: paymentDate=20070225000000Z,uid=ogrisel,ou=members,dc=afpy,dc=org
17:09 < ogrisel> invoiceReference est facultatif
17:10 < gawel> donc date + montant ?
17:14 < ogrisel> MUST: paymentDate (RDN), paymentAmount, paymentObject
17:14 < gawel> ok
17:14 < ogrisel> MAY: invoiceReference
17:15 < ogrisel> j'ajoute birthDate
17:16 < ogrisel> done
17:16 < ogrisel> je teste sur ma fiche
17:16 < gawel> on peut mettre 0 dans le montant ?
17:18 < ogrisel> ca marche
17:19 < ogrisel> oui pour le montant on peut mettre ce qu'on veut tant que c'est numerique
17:19 < gawel> cool
17:19 < ogrisel> on peut pe meme mettre des valeures negatives pour des remboursement
17:20 < ogrisel> a tester
17:22 < ogrisel> bon je vais commiter mes changement sur /etc :)
17:27 < ogrisel> gawel: faudrait faire une liste admins@lists.afpy.org en plus de la liste buro
17:27 < ogrisel> avec les logs de commits bzr
17:28 < gawel> j'y pensais ouais
17:28 < ogrisel> si jamais on a des admins qui sont pas dans le buro
17:28 < ogrisel> ca peut arriver y pas de raison
17:28 < gawel> qui sait
17:29 < ogrisel> je vais matter pour mettre un post-commit hook qui envoie des mails pour bzr
17:31 < gawel> pour le svn ca serait bien aussi
17:32 < gawel> cool
17:37 < gawel> faut quoi comme object class pour les membres du coup maintenant ?
17:39 < ogrisel> associationMember en plus de person
17:39 < ogrisel> c'est auxialiary
17:39 < ogrisel> comme ca on peut mettre n'importe quelle autre entrée ldap comme associationMember
17:40 < ogrisel> meme des trucs qui sont pas forcemment des person
17:40 < gawel> associationMember voila :)
17:41 < gawel> j'ai du mal a rajouter des payements la
17:42 < ogrisel> prends exemple sur le mien
17:42 < gawel> non mais en python :)
17:43 < gawel> invalid per syntax
17:44 < gawel> ERROR:root:paymentDate=20071006000000Z,uid=test_user,ou=members,dc=afpy,dc=org {'info': 'objectClass: value #1 invalid per syntax', 'desc': 'Invalid syntax'} {'objectClass': ['top', 'payement'], 'paymentObject': ['personnal membership'], 'payementDate': ['20071006000000Z'], 'paymentAmount': ['0']}
17:44 < gawel> marche pas top :(
17:44 < gawel> déjà python-ldap accept que des strings
17:46 < ogrisel> dn: paymentDate=20070225000000Z,uid=ogrisel,ou=members,dc=afpy,dc=org
17:46 < ogrisel> objectClass: payment
17:46 < ogrisel> objectClass: top
17:46 < ogrisel> paymentAmount: 20
17:46 < ogrisel> paymentDate: 20070225000000Z
17:46 < ogrisel> paymentObject: personnal membership
17:47 < ogrisel> ton objectClass est pas bonne
17:47 < gawel> ha, bien vu
17:48 < gawel> NOT_ALLOWED_ON_NONLEAF: {'info': 'subordinate objects must be deleted first', 'desc': 'Operation not allowed on non-leaf'}
17:48 < gawel> oups :)
17:49 < gawel> ah ouais, je vois
17:53 < gawel> Ran 3 tests in 0.377s
17:53 < gawel> OK
17:53 < gawel> \o/
17:55 < ogrisel> \o/
17:55 < ogrisel> tu peux verifier la liste afpy-bureau pour voir si y a pas un message de commit en attente de moderation ?
17:55 < gawel> ca m'envois un mail
17:55 < gawel> rien, recu
17:55 < ogrisel> en provenance de root@py.afpy.org
17:55 < ogrisel> ah chiotte
17:56 < gawel> ah si
17:56 < ogrisel> je vais faire des tests avec mon addresse alors
17:56 < ogrisel> ah cool
17:56 < gawel> rien dit, marche
17:56 < ogrisel> marche ?
17:56 < ogrisel> ca marche ou ca marche pas ?
17:56 < gawel> oui, recu
17:57 < ogrisel> ok tu peux autoriser root@py.afpy.org a poster sur la liste ?
17:57 < gawel> sur bureau tu veux ?
17:57 < ogrisel> oui
17:58 < gawel> fait
17:58 < ogrisel> cool
17:58 < gawel> merde j'ai mis sur mebres :D
17:58 < ogrisel> :)
17:58 < ogrisel> j'ai pas encore recu le mail de commit perso
17:59 < gawel> mieux
18:02 < ogrisel> cool ca marche
18:02 < ogrisel> trop dlababalle
18:02 < gawel> :)
18:02 < ogrisel> faut que je finisse le howto
18:04 < ogrisel> je vais faire des taches sur trac
18:04 < gawel> bah c'est assez clair
18:04 < gawel> pas sorcier de s'en servir
18:04 < ogrisel> pour ma todo liste des trucs en retard
18:04 < ogrisel> oui mais bon
18:04 < gawel> par contre, je serais pour merger les repos svn
18:04 < ogrisel> apres un jour je bloguerai sur comment utiliser bzr pour un admin sys
18:05 < gawel> ca sert a rien d'en avoir deux
18:05 < ogrisel> oui mais c'est trop chiant a merger svn
18:05 < gawel> avec svnadmin ?
18:05 < ogrisel> oui
18:05 < gawel> ah
18:05 < ogrisel> enfin ca depend si t'as des corruptions :)
18:05 < gawel> ca se tente
18:06 < ogrisel> je sais que les sur les repos de nuxeo on a des merde a cause de vieux bugs de svn
18:06 < ogrisel> et que du coup svnadmin plante sur ce type d'operation
18:06 < ogrisel> mais bon si tu le sens, va z
18:09 < ogrisel> si tu merges les svn / trac tu garde le quel au final ?
18:09 < ogrisel> c'est surtout pour le trac
18:09 < gawel> misc
18:10 < ogrisel> ok
18:13 < ogrisel> ok c'est parti pour les tickets : http://trac.afpy.org/misc/report/1
18:13 < ogrisel> ok je vais faire une pause et retourner dans mon bouquin moi
18:14 < ogrisel> c'est cool on avance bien :)
18:14 < ogrisel> meme s'il reste a mort de taff
18:14 < gawel> ouaip, carrément
18:14 < gawel> marche pas trop mal les date la
18:14 < ogrisel> avec python ?
18:14 < gawel> ouais
18:15 < gawel> je la formate comme il faut et rulez
18:15 < gawel> en str
18:19 < ogrisel> ok
18:19 < ogrisel> sinon pour dubstation ca te branche toujours pas ?
18:19 < ogrisel> faut que je prenne une decision la
18:20 < gawel> pas plus que ça non
18:20 < gawel> j'ai envis de bouger mais le dub me motive moyen
18:22 < gawel> on dirait que ca marche
18:23 < gawel> je dirais même plus, ça marche
18:24 < gawel> pas la birthdate tiens
18:24 < ogrisel> ok pour le dub
18:24 < ogrisel> cool que ca marche
18:25 < gawel> :)
18:25 < gawel> tu t'y bouge toi ?
18:25 < ogrisel> je penses que je vais bouger en banlieue voir la famille
18:25 < gawel> je vois
18:26 < ogrisel> mais si pour la birthDate, a mon avis c'est que t'es trop vieux :P
18:27 < gawel> hin hin
18:27 [#] gawel pleure
18:30 < gawel> bon, c'est super nice
18:30 < gawel> tout est ok
18:31 < ogrisel> classe
18:31 < gawel> meme la birthDate :)
18:31 < ogrisel> y a plus qu'a faire une interface d'admin
18:31 < ogrisel> tu as commencé un truc dans le plone ?
18:31 < gawel> surtout un interface pour les membres
18:31 < gawel> non
18:31 < ogrisel> gwen il fait comment ?
18:31 < gawel> je pensais faire un truc avec mod_python
18:31 < ogrisel> ok alors faut la faire en pylons :)
18:31 < gawel> pourquoi pas
18:32 < ogrisel> matte les tutos en video
18:32 < gawel> je connais pas ca me donnera l'ocas de voir
18:32 < ogrisel> strodlaballe
18:32 < gawel> faudras des formulaire plugable dans le plone, mais bon
18:32 < ogrisel> http://www.inklesspen.com/pylons/
18:33 < ogrisel> http://pylonshq.com/
18:35 < ogrisel> tu peux installer Pylons avec easy install sans modifier ton site-packages avec http://peak.telecommunity.com/DevCenter/EasyInstall#custom-installation-locations
18:36 < ogrisel> parceque j'ai eu des merde en melangeant les paquets debian avec les paquets de devs de turbogears et/ou pylons
18:36 < ogrisel> donc vaut mieux se faire un sandbox independant par appli
18:41 < gawel> c'est ce que j'ai fait pour django
18:41 < gawel> enfin c'est dans afpy/lib
18:41 < gawel> pas le must mais bon
18:56 < ogrisel> gawel: oué c'est ok
18:56 < ogrisel> bon j'y vais moi
18:56 < ogrisel> a la prochaine
19:01 < gawel> ++
19:41 < lgodard> gawel: ah ? tel foireux ? je me souviens plus :)
19:48 < jpcw2002> matin tlm
2019 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14
2019 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2019 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2019 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2019 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2019 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2019 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2019 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2019 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2019 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2018 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2018 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2018 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2018 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2018 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2017 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2017 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2017 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2017 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2017 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2016 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2016 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2016 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2016 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
2016 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2015 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2015 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2015 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2015 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2015 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2014 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2014 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2014 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2014 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2014 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2013 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2013 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2013 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2013 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2013 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2012 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2012 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2012 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2012 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
2012 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2011 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2011 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2011 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 04
01 04 07 08 11 14 15 19 20 21 22 23 24 25 26 27 28 29 30
2011 03
01 02 03 04 06 07 08 09 10 11 12 14 15 16 17 21 22 23 25 28 29 31
2011 02
02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 21 22 23 24 25
2011 01
03 04 05 06 10 11 13 15 16 18 19 20 21 22 23 24 25 26 27 28 31
2010 12
01 02 03 07 08 09 10 14 15 16 17 21 22 23 28 29 30
2010 11
01 02 03 04 05 06 07 08 09 10 13 14 16 17 18 19 22 23 24 25 26 28 29
2010 10
01 03 04 05 06 07 08 09 10 11 12 13 14 15 18 19 20 22 24 25 27 28 29 30 31
2010 09
01 02 03 04 06 07 08 09 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2010 08
02 03 04 05 06 08 09 10 11 12 13 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2010 07
01 02 03 05 07 08 13 14 15 19 20 21 22 23 25 26 27 28 29 30 31
2010 06
01 02 03 04 08 09 10 11 13 15 18 19 20 21 22 23 24 25 26 27 28 29 30
2010 05
03 06 09 10 11 12 14 15 17 18 19 21 22 25 26 27 28 30
2010 04
01 02 03 04 05 06 08 09 10 11 12 13 15 16 19 20 21 22 24 26 27 28 29 30
2010 03
02 03 04 05 06 07 09 10 11 12 14 15 19 22 23 24 25 26 27 28 29 30 31
2010 02
01 02 03 04 05 08 09 11 12 14 15 18 19 21 23 25 26
2010 01
03 04 05 06 07 11 12 14 15 18 21 22 23 24 25 26 27 28 29 30 31
2009 12
01 02 03 04 07 08 09 10 11 14 15 16 17 18 19 20 23 25 28 30 31
2009 11
01 02 03 04 05 07 08 09 11 12 14 15 16 17 18 19 20 21 22 23 24 25 26 27 30
2009 10
01 02 03 04 05 06 07 08 09 11 13 14 15 16 18 19 20 21 22 23 24 25 26 27 29 30 31
2009 09
01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 17 18 21 22 23 24 25 27 28 30
2009 08
01 02 03 04 05 06 07 09 10 11 12 13 14 17 18 19 20 21 23 24 25 26 27 28 29 30 31
2009 07
02 03 04 05 06 07 08 09 10 13 15 16 17 18 20 21 22 23 24 26 27 28 29 30 31
2009 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 29 30
2009 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2009 04
01 02 03 04 06 07 08 09 10 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29 30
2009 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31
2009 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28
2009 01
04 05 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2008 12
01 03 04 05 06 07 08 09 10 11 12 14 15 16 17 18 19 20 21 22 23 24 28 29 30 31
2008 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 16 17 18 19 20 21 23 24 25 26 27 28 29
2008 10
01 02 03 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2008 09
01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2008 08
01 02 03 04 05 06 07 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30
2008 07
01 02 03 04 05 07 08 09 10 11 12 13 15 16 17 18 20 21 22 23 24 25 26 27 28 29 30 31
2008 06
01 02 03 04 06 07 08 09 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 30
2008 05
01 02 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2008 04
01 02 03 07 09 10 14 15 16 23 24 25 26 28 29 30
2008 03
02 03 04 05 06 07 10 11 12 13 14 17 18 19 20 21 25 28
2008 02
04 05 06 07 08 11 12 13 14 16 17 18 21 22 23 24 25 26 27 28 29
2008 01
02 07 08 11 12 14 18 22 24 28 29 30 31
2007 12
03 05 06 13 14 15 16 17 18 20 21
2007 11
03 04 05 08 09 10 11 14 15 17 19 23 26 27 28 29 30
2007 10
01 02 03 04 05 06 09 10 11 12 13 14 15 16 17 18 22 23 24 25 27 29
2007 09
01 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 20 21 26 27 28 29 30
2007 08
02 06 14 16 17 19 22 23 24 27 28 29 30 31
2007 07
02 03 04 05 06 09 10 11 12 13 15 18 19 20 25 27
2007 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 18 19 20 21 22 23 24 25 26 27 28 29 30
2007 05
02 03 07 09 10 12 14 15 18 19 20 22 23 24 25 29 30 31
2007 04
01 02 03 04 05 06 07 08 10 11 12 16 18 19 20 21 23 24 25 26
2007 03
01 02 06 07 08 09 10 12 13 14 16 19 20 21 22 23 24 26 27 28 29 31
2007 02
26 27 28