Last-Crusade.de – The Empire Writes Black Stories of these dark and modern days…

3Aug/11559

ejabberd zu Prosody: Migration & Konfiguration

Endlich habe ich mein lange geplantes Projekt umgesetzt und meinen ejabberd-Server durch einen Prosody ersetzt. Hier eine kurze Übersicht für andere, die diesen Schritt auch planen.

Hintergründe - Warum der Wechsel?

Mein ejabberd hat mir in letzter Zeit immer öfter "consuming too much memory"-Fehlermeldungen gebracht, das hat mich ziemlich genervt (war aber vermutlich eine Konfigurations-Sache). Zudem hat der werte ejabberd immer wieder Einstellungen "vergessen", was ziemlich ärgerlich war. Kurzum, er war schon immer ein wenig zickig und von der Konfiguration her stellenweise nicht sehr entgegenkommend (mag hier und da mein Fehler gewesen sein). Zudem ist ein Stream Management-Plugin nicht in absehbarer Zeit zu erwarten.

Warum Prosody?

Nun, Prosody ist relativ neu (2008) und sehr schlank, dafür umso einfacher zu erweitern. Da der/die Entwickler anderen gegenüber sehr offen sind, hat sich ein gesundes Ökosystem an Modulen gebildet. Eines davon hatte es mir besonders angetan - Überraschung - : Stream Management. Endlich ist es möglich, auch bei schlechter Verbindung verlässlich zu kommunizieren! :-)

Was darüber hinaus wirklich spitze ist, ist der Support, den einem die Leute im MUC bieten - ich habe einige Stunden hier verbracht und eine Hand voll Leute haben sichwirklich viel Mühe gegeben (und sie waren Erfolgreich *g*), meine Fragen bestmöglich zu klären - danke nochmals!!

Installation Prosody - Mein Vorgehen

Während der ejabberd noch friedlich auf dem Server arbeitete, begann die Revolution. Es empfiehlt sich bei Debian-Systemen auf das Repository von prosody (Übersicht hier) zurück zu greifen, da hier immer die aktuellste Version zusammengeschnürt wird (0.6.1 in den ubuntu-Repos versus 0.8.2 in den Prosody-Repos).

Im Anschluss sollte man sich die Konfig-Datei  /etc/prosody/prosody.cfg.lua zu Gemüte ziehen. Sie ist glücklicher Weise recht schön dokumentiert. Hier muss man als erstes den Host auf die eigene Domain ändern. Bei der Verwendung von self-signed-certificates kann man zunächst einmal das aus der Konfiguration weiter oben kopieren und später ein neues erzeugen.

Ein weiteres Detail, das man beachten sollte ist, dass der Nutzer unter dem Prosody läuft auf /var/lib/prosody/* vollen Schreib- und Lesezugriff haben muss. Um herauszufinden, ob etwaige Probleme, z.B. mit den MUC-Bookmarks (nicht les- oder beschreibbar) daran liegen, kann man unter /var/log/prosody/prosody.log bzw. prosody.err nach Fehlermeldungen mit "Permission denied" schauen. Bei mir ist das jedenfalls der Fall gewesen, lies sich durch die Rechtevergabe auf den Ordner aber  schnell beheben.

Migration ejabberd => Prosody IM

Nun, natürlich wollte ich die Nutzeraccounts samt allen Einstellungen und gespeicherten Daten erhalten. Glücklicherweise gibt es von den Prosody-Leuten hierfür ein Script, das sehr gut funktionierte: http://prosody.im/files/ejabberd2prosody (Update: Jens hat im Kommentar unten auf das Script bei Github verwiesen. Es ist rund 1.100 Zeilen kürzer und wohl einiges aktueller. Ich habe es selbst nicht getestet, bei ihm scheint es ja funktioniert zu haben - daher hier der nochmal sein Link: https://github.com/bjc/prosody/blob/master/tools/ejabberd2prosody.lua ). Auszuführen ist es in /var/lib/prosody/. Zunächst muss man jetzt auf der Konsole mittels
ejabberdctl dump filename.txt
die Daten aus der Datenbank von Ejabberd exportieren (sollte nicht die Standard-DB verwendet werden, weiß ich nicht, ob es geht -> an den Prosody MUC wenden). Das Migrations-Script führt man mittels
lua ejabberd2prosody pfadZurExportiertenEjabberdDatei
aus.
Zu beachten ist, dass der Pfad wo die Dateien hin sollen vom Skript nicht richtig erkannt werden kann und man ggf. noch den Ordner verschieben muss.
Das Skript hat bei mir alles übernommen, es hat sich nur an einer Stelle etwas verschluckt: meine hoch geschätzten Notizen (Storage-Notes) konnten nicht von Psi+ (hab es auch mit Miranda IM getestet) geladen werden. Hier knallte es irgendwie. Wer die Notizen wieder richten möchte, kann folgendermaßen vorgehen: Das private XML liegt unter /var/lib/prosody/<host>/private/<nutzername>.dat.
Das Problem (ich saß da echt 'ne Weile dran, bis ich endlich darauf kam) liegt darin, dass hier leere Attribute = {} gesetzt werden, was irgendwie nicht interpretierbar ist. Wenn man alle leeren geschweiften Klammern durch zwei Anführungszeichen ("") ersetzt, sollte es gehen. Darüber hinaus fügt Prosody bei neuen Notizen immer den Namespace hinzu, daher habe ich das auch gemacht:

["attr"] = {};

bzw.

["tags"] = {};

wurde somit zu

["attr"] = {
["xmlns"] = "http://miranda-im.org/storage#notes";
};

bzw.

["tags"] = "";

Dann ist alles wie gehabt vorhanden und man kann munter weiter damit arbeiten. Könnte man sich auch ein nettes kleines Script basteln, aber den Aufwand war es bei mir nicht wert (genau genommen war es auch den von mir betriebenen nicht wert, weil es nur um meine eigenen Notizen ging, aber egal *g*)

Module

Neue Module werden unter /usr/lib/prosody/modules abgelegt und in der oben bereits erwähnten Konfigurations-Datei aktiviert.

Wer Stream Compression nutzen will (bietet sich bei dem nicht gerade sparsamen XMPP-XML meines Erachtens an), muss unter Debian & Konsorten normal noch die Lua Erweiterung für zlib mittels sudo apt-get install lua-zlib herunterladen und installieren - sonst kann Prosody mit dem aktivierten Modul nichts anfangen. Danach kann man es in der Konfig-Datei aktivieren (und es läuft *g*).

Das Stream Management-Modul mod_smacks lies sich ohne weiteres einbinden und lief auf Anhieb. Jetzt braucht es nur noch bessere Client-Unterstützung, aber für Gajim ist diese in Arbeit und wird hoffentlich nicht so schändlich (bzw. einfach nicht) eingepflegt wie bei Psi. Und Swift bekommt hoffentlich bald Stream Resumption. Aber ich schweife vom Thema ab.

Was es sonst so an Modulen gibt, kann man hier (https://prosody-modules.googlecode.com/hg/) nachsehen und hier (https://code.google.com/p/prosody-modules/w/list) in den meisten Fällen eine kurze Beschreibung und Anleitung finden.

Was nicht mehr geht

Derzeit unterstützt Prosody offiziell kein Publish-Subscribe (es ist aber bereits ein Modul verfügbar), das wird sich aber vermutlich bald ändern. Ich muss zugeben, dass mir der genaue Zweck von PubSub noch nicht 100% erschlossen hat (Nachlesebedarf! *g*), aber ich habe dadurch noch keine Einschränkungen erkennen können.

Ein Webinterface ist standardmäßig nicht gegeben, als eingetragener Admin (entsprechende JIDs sind in der Konfig eingebbar) kann man aber so gut wie alles über Adhoc Kommandos einstellen, einschließlich dem Laden von Modulen). Es gibt aber auch ein Modul, welches auch via Webinterface diese Kommandos bietet, allerdings habe ich das noch nicht getestet. Einfach mal reinschnuppern.

Fazit

Ich bin sehr zufrieden! Die Migration lief mit Ausnahme der Notizen im private XML Storage erstaunlich glatt und problemlos. Dieses Problem wird aber ohnehin nur die Wenigstens tangieren. Die Module funktionieren wunderbar. Ich würde sagen, dass Prosody auf dem Besten Weg ist, State of the Art bei den offenen XMPP-Servern zu werden - wenn er das nicht schon ist. Ejabberd ist gewiss ein guter Server, der auch im großen Stile relativ gut skaliert und seit Jahren bewährt ist. Aber wenn man sich mit XMPP etwas austoben will, halte ich Prosody für die bessere Wahl. Ich hoffe, dass er mich weiterhin so begeistert und sich weiterentwickelt. Rein subjektiv habe ich übrigens das Gefühl, dass der Verbindungsaufbau jetzt schneller geht als zuvor - aber das kann auch euphorische Einbildung sein ;-D

So, vielleicht hilft das hier ja dem Einen oder der Anderen bei der Migration bzw. bei der Entscheidung zu eben dieser.

Kommentare (559) Trackbacks (1)
  1. Ich danke Dir sehr für diesen Artikel. Hat mir bei der Migration von ejabberd nach prosody sehr geholfen!

    • Freut mich zu hören. Habe bislang noch nichts vom ejabberd vermisst, Prosody ist schon ein feines Stück Software :-)

      • Ich mf6chte nur kurz auf 2 Client Probleme mit neueren ejebbard Versionen hinweisen, wovon vielleicht ein paar Benutzer auf diesem Server betroffen sein werden.Mit ejebbard 2.0.3 gibt es ein Problem mit Kopete im Zusammenhang mit MUCs, wobei das ein Bug in Kopete ist. ejebbard fcberprfcft ab dieser Version den Absender, der in den XML Daten vom Client hinzugeffcgt werden kf6nnen und Kopete schreibt dort leider die jeweilige MUC JID von sich selber rein, wodurch ein Kopete Benutzer beispielsweise beim Abschicken einer Nachricht in einem MUC vom Jabber Server vf6llig getrennt wird. Ein Bug Report ffcr Kopete gibt es schon, aber da hat sich leider lange nichts getan (obwohl selbst alle Kopete Benutzer mit gmail betroffen sind): Und sonst werden noch teilweise e4ltere Pidgin Clients (<=2.4.X) Probleme mit der Authentifikation am Server haben (das Problem gab es frfcher auch schon mit Openfire und ist auch ein Bug in Pidgin). Abhilfe wfcrde hier die Benutzung von der e4lteren SSL Methode ffcr die Verbindung zum Server oder die Aktualisierung auf eine neue Pidgin Version schaffen.Vielleicht habe ich ja jemand mit diesen Hinweisen geholfen

  2. Super-Anleitung! Nach jahrelangem Warten auf XEP-0198 in ejabberd habe ich es aufgegeben, und bin innerhalb weniger Stunden auf Prosody umgestiegen. Bei IPv6 war zwar noch etwas Hilfe der Entwickler vonnöten, aber nun läuft die Bude!

    • Hallo Georg, danke für das Feedback :-)
      IPv6 steht bei mir auch noch auf der Liste… bislang haben meine Experimente da nicht so wirklich gut funktioniert (also Server allgemein, beim Prosody war ich noch nicht einmal).
      Dann mal viel Spaß mit Prosody – ich habe die Migration keine Sekunde lang bereut.
      Vielleicht besinnen sich die eJabberd-Devs auch mal auf Stream Management, wenn sie bemerken, dass ihnen immer mehr Nutzer durch die Finger rinnen – ich sähe aber keinerlei (!) Grund, wieder zurück zu migrieren.

    • Jo, ich auch nich mehr, schon le4nger. Ist hier nur eine Person ffcr den Server zuste4ndig? Wenn ja, kann man das verzeihen am Wochenende, aber man sotlle das vllt mal auf 2-3 Leute verteilen, so dass schnelle Reaktionszeiten gewe4hrleistet sind (Wir wollen doch eine Alternative zu den Grodfen wie ICQ aufbauen, oder?)

  3. Danke, das war hilfreich. :-)

    Zwei Hinweise:
    * Der ejabberd2prosody link geht nicht mehr. Das Skript gibt es z.B. hier: https://github.com/bjc/prosody/blob/master/tools/ejabberd2prosody.lua
    * https://bettercrypto.org/static/applied-crypto-hardening.pdf Gibt es ein paar Infos zu den Security Einstellungen von prosody.

    • Hi Jens, danke für deinen Kommtentar! Freut mich, wenn es geklappt hat – hoffe, Du wirst mit Prosody so zufrieden sein wie ich.

      Zum Link: Also ich konnte ihn eben problemlos aufrufen, hatte vllt. prosody.im ein kleines Problem? Allerdings ist die von dir verlinkte Version wohl einiges neuer – daher habe ich den Artikel aktualisiert.

      Zu den SSL-Einstellungen: Ja, mit Cipher-Konfiguration kann man sich wirklich verkünsteln 😉 Ist aber natürlich immens wichtig. Falls noch nicht bekannt: unter http://xmpp.net/ kann man den eigenen Server S2S und C2S dahingehend testen lassen.

  4. No matter how happy people may be with their life, stress may find its way in. Sometimes stress is so hard to control because people do not know how to go about fixing their stresses. In the following article, you are going to be given advice to help you deal with life’s stresses.

    viagra sans prescription en pharmacie

  5. Sleep apnea is a very difficult thing to live with, both for the sufferer and for people living and sleep with him or her. If you fit into either of these categories, then you know just how frustrating it can be. Read through the tips found in this article to learn the best way to survive this problem!

    Skip sleeping pills if you are prone to bouts of sleep apnea. You may feel you need them to get to sleep, but they have a similar effect as alcohol on the body. They also have additional side effects besides the obvious ones. Stay away if you want to lessen your sleep apnea symptoms.

    If you have sleep apnea, be sure to ask your doctor every five years if you should have a follow-up sleep study. As your weight and health change, your CPAP pressure may need to be adjusted. The most accurate way to reassess your needs is to have another sleep study with CPAP so the appropriate pressure can be determined.

    On easy way to help limit your sleep apnea is to stick to regular sleeping hours. When you stick to a sleep schedule that is steady and consistent, you will be more relaxed and sleep much better. Apnea episode frequency will be greatly reduced if you can get plenty of sleep every night.

    Try your best to lay off tobacco and nicotine products. Cigarette smoke can irritate your upper airway causing it to swell up, subsequently hindering your ability to breath during the night. Quitting smoking could therefore, significantly improve your sleep apnea symptoms and will also improve your body’s overall health and your feelings of well-being.

    Try your best to maintain a regular sleeping schedule. When your body gets into a customary sleeping cycle, you will find yourself getting a better night’s sleep, and you will also be more relaxed. Several studies have shown that apnea episodes decrease when a person is not sleep deprived or stressed out.

    Avoid any type of drugs or alcohol if you are experiencing any type of sleep apnea. Drugs and alcohol will slow down your respiratory system, and that is known to be one of the causes of sleep apnea. If you are struggling with this issue, try to get some professional help to overcome these addictions.

    The most important aspect of dealing with sleep apnea is understanding exactly what it is. Unlike simple snoring, it is when a sleeper stop’s breathing for a short period of time while he is sleeping. If your sleep partner tells you that sometimes you stop breathing, there is a good chance you have apnea.

    If simple changes in your lifestyle, such as regular sleep hours and losing weight, have not eliminated your sleep apnea episodes, it is time to consult with a sleep specialist. The specific causes of your sleep apnea can be evaluated, and an individual treatment plan can be designed for you.

    Learning more about sleep apnea is important because knowledge can help put your mind at ease. Take the information you have learned in this article and talk to your doctor about it. He or she can then better help you more easily when you know more about this disorder yourself.

    viagrasansordonnancefr.com

  6. cialis generic price lp7908er7037ez6208

  7. http://cytotecon.review cytotec over the counter uc5914vp9998bj9348

  8. http://buy-levitra.online/ levitra generic india

  9. generic levitra safety promethazine on line

  10. buy lyrica quand le cialis ne fait plus rien

  11. order cialis cialis 20 mg daily use

  12. http://buy-levitra.online/ women on cialis generic levitra

  13. Resources rx hotline

  14. http://buy-lyrica.bid/ buy cheap lyrica

  15. cheap lyrica lasix canada overnight

  16. read this bystolic online pharmacy

  17. recover data from hard drive suprax antibiotic buy

  18. android data recovery app 30 day sertraline paypal

  19. http://buy-cialis-canada.com/ are cialis generics safe

  20. read more ampicillin 500 low prices for you

  21. http://buy-levitra.online/ buy cialis generic levitra

  22. qcouldq http://levited.com generic levitra pakistan

  23. jcomes generic levitra manufacturers generic levitra calgary

  24. zendk http://levited.com levitra vardenafil drug

  25. pcauset levitra brand online and blindness generic levitra

  26. hdogk how effective is levitra generic generic levitra montreal

  27. fsweetr http://levited.com online pharmacy levitra

  28. gfootb levitra generic name how much should i take generic levitra

  29. iofx http://levited.com buy levitra online australia

  30. isettledu http://levited.com levitra generic online

  31. Feature articles are not front-page, occasion-sensitive news reports, though they are able to include news and research. Often an author may create a a few theme he appreciates nicely and that interests him on the private level. Library card Guidelines Your choice could possibly be challenging since attribute articles can be discussed just about anything that’s beneficial or entertaining. Narrow down the main topic of your feature report. Decide what angle-you will take or what questions you will remedy about the subject. Characteristics have to be factually appropriate, like other forms of posts. Outline the principle chapters of your function before you create your body of the writing. Start your guide having a good cause that pulls the audience in and makes him wish to see the remainder of your tale. Look at the different varieties of pictures you want to contain in your post. Pick a writing style manual to follow if you compose, including the MLA or APA format. Should you not know which structure the book you are producing for uses, select one and put it to use continually. Check your finished article for punctuation and grammatical mistakes. It could be useful to have another individual check your feature as well to catch problems that you do not notice. Tips & Alerts The typical average person examining a feature article isn’t likely to be a while in the subject you’re writing about and might not realize subject-specific vocabulary.
    application essay goal

  32. lmostc cialis cialis professional online

  33. yuntilr http://cgenrx.com cialis generic uk

  34. bwhend cialis online generic cialis forum

  35. cunderh http://cgenrx.com generic cialis buy

  36. fsoonerg http://cgenrx.com split cialis pills drug

  37. Language knowledge is essential to superior knowledge. Pre-reading includes surveying or researching the substance before it is read. Consider the images, too. Additionally, study any concerns that’ll need to be solved at the end of the reading. Pre-reading really helps to give more meaning for the information being read. This creates expectancy. Additionally it assists them to think more in what they have read. Reading is not simply indicating the language. Active reading also requires home-tracking. Pupils must be taught to prevent to get a handful of moments at organizing things (like by the end of each page or at each section header) and have themselves, „Do I am aware what I just read?“ or „May I declare what I recently read?“ If that nonetheless does not enable, they must be shown to avoid at that time and have the instructor for help because there could be an idea they need help with. Students should do significantly more than simply answer concerns by the end of that which was read. Graphical organizers are a good way to label data and kind relationships. Utilize a multisensory method with discovering, expressing, hearing, etc. to improve comprehension.
    book report diorama rubric

  38. Hello! cialis free sample very good website.

  39. Hello! free cialis coupon beneficial web site.

  40. Howdy! free cialis excellent internet site.

  41. Hello there! free cialis samples good internet site.

  42. Hi! cialis free trial beneficial site.

  43. Hi there! free cialis excellent internet site.

  44. Howdy! free cialis pills good site.

  45. Howdy! where buy cialis good website.

  46. Hi! generic cialis good web page.

  47. Hi! tadalafil beneficial web page.

  48. Howdy! buy generic cialis good web site.

  49. Hello there! purchase cialis beneficial web site.

  50. Hello there! buy viagra cheap very good web page.

  51. Hi! online pharmacy great internet site.

  52. Howdy! where buy viagra excellent internet site.

  53. Howdy! online pharmacy very good internet site.

  54. Hello! online pharmacy excellent internet site.

  55. Hello there! online pharmacy beneficial web page.

  56. Hi! online pharmacy excellent internet site.

  57. Howdy! buy levitra 20 mg beneficial internet site.

  58. Hello! online pharmacy very good site.

  59. Hi there! order levitra beneficial web site.

  60. Hi there! online pharmacies great site.

  61. Howdy! buy levitra uk very good internet site.

  62. Howdy! online pharmacies very good internet site.

  63. Hello! online pharmacies good web site.

  64. Hi! vardenafil beneficial internet site.

  65. Hello! online pharmacies good web site.

  66. Hi there! online pharmacy beneficial website.

  67. Howdy! buy generic slimex excellent internet site.

  68. Howdy! mexica pharmacy online great web page.

  69. Hello there! mexican online pharmacy excellent website.

  70. Howdy! mexican pharmacy online good internet site.

  71. Hi there! buy prednisone online without prescription excellent internet site.

  72. Hi there! buy prednisone online good site.

  73. Howdy! buy generic prednisone great internet site.

  74. Hello! buy deltasone no prescription very good site.

  75. Hi there! buy prednisone online beneficial website.

  76. Hello there! buy prednisone online beneficial web site.

  77. Hello! online pharmacy beneficial web page.

  78. Hello! online pharmacies beneficial website.

  79. Hi there! mexican online pharmacy good web page.

  80. Howdy! online pharmacy excellent website.

  81. Hello there! mexica pharmacy online great web page.

  82. Hi there! buy levitra online great internet site.

  83. Howdy! online pharmacies excellent website.

  84. Hi there! cialis daily use excellent website.

  85. Hello there! cialis coupon beneficial internet site.

  86. Hi! buy ventolin inhaler great site.

  87. Hi there! buy ventolin online very good website.

  88. Hello! buy ventolin online good site.

  89. Hi! buy albuterol no prescription beneficial web page.

  90. Howdy! ventolin beneficial web page.

  91. Hello there! buy ventolin usa good site.

  92. Hi! purchase ventolin very good website.

  93. Hi there! online pharmacy excellent internet site.

  94. Howdy! aciclovir spray great internet site.

  95. Hello there! online pharmacy very good internet site.

  96. Hi! soviclor aciclovir beneficial website.

  97. Hello there! buy Zovirax online very good site.

  98. Hello there! Zovirax usa beneficial web site.

  99. Hi! american zovirax online very good internet site.

  100. Hello there! zovirax cream ointment beneficial internet site.

  101. Hello there! online pharmacies great internet site.

  102. Hello! buy Aciclovir online beneficial web page.

  103. Hello there! online pharmacies excellent internet site.

  104. Howdy! zovirax generic over the counter beneficial site.

  105. Hello there! canada pharmacy online review great site.

  106. Hello there! online pharmacy very good website.

  107. Hello there! overseas online pharmacy great web page.

  108. Hi there! online pharmacies great internet site.

  109. Hello there! non prescription online pharmacy good internet site.

  110. Howdy! pharmacy online canada beneficial web site.

  111. Hello there! meds online pharmacy good internet site.

  112. Hello there! canadian pharmacy no prescription good internet site.

  113. Hello! good online pharmacy excellent web page.

  114. Hi there! Discount Prescription Drugs great internet site.

  115. Hello! pharmacy no prescription excellent site.

  116. Hi there! online pharmacies good internet site.

  117. Howdy! online pharmacy viagra good web page.

  118. Hi there! online pharmacies very good web page.

  119. Hi there! albuterol inhaler good internet site.

  120. Howdy! albuterol inhaler good site.

  121. Howdy! ventolin inhaler beneficial internet site.

  122. Howdy! albuterol good website.

  123. Hello there! albuterol inhaler very good site.

  124. Howdy! ventolin inhaler excellent internet site.

  125. Howdy! ventolin inhaler good internet site.

  126. Hello! ventolin inhaler great website.

  127. Hi! ventolin great website.

  128. Hello there! online pharmacy great website.

  129. Hello there! generic priligy good internet site.

  130. Hello there! buy priligy great website.

  131. Hello there! order priligy great internet site.

  132. Hi! online pharmacies good website.

  133. Hello! online pharmacies great web site.

  134. Hello there! online pharmacy great internet site.

  135. Hi there! viagra 30 day trial beneficial web site.

  136. Hello! online pharmacies great web site.

  137. Hello! online pharmacies very good website.

  138. Hi there! buy clomid pills beneficial website.

  139. Hello! online pharmacies good internet site.

  140. Hello there! buy generic clomid great web page.

  141. Hello there! online pharmacy very good web site.

  142. Hi! online pharmacy good web page.

  143. Hello! online pharmacies very good web site.

  144. Hello! online pharmacies very good website.

  145. Hello there! buy clomid pills great internet site.

  146. Hello there! online pharmacy beneficial web page.

  147. Howdy! online pharmacy very good web page.

  148. Howdy! online pharmacies good web page.

  149. Hello there! free cialis trial good web page.

  150. Hi there! cialis 5mg cost good internet site.

  151. Howdy! cialis free shipping excellent internet site.

  152. Hello there! meds online pharmacy excellent web page.

  153. Hello! online pharmacy viagra generic excellent internet site.

  154. Hello there! cialis coupons excellent internet site.

  155. Hi there! Buy Prescription Drugs Online beneficial web page.

  156. Hello there! cheap online pharmacy great internet site.

  157. Hello! online pharmacy beneficial web page.

  158. Hi! Online Pharmacies beneficial website.

  159. Hello there! Online Pharmacy great web site.

  160. Hello! online pharmacies canada great website.

  161. Hi! online pharmacies beneficial web site.

  162. Hello! Online Pharmacy beneficial web site.

  163. Hello! online pharmacies canada good web page.

  164. Hi there! canada pharmacy online review excellent web page.

  165. Hi! online pharmacy technician schools very good website.

  166. Hi! Foreign Pharmacy excellent web site.

  167. Howdy! india online pharmacy excellent internet site.

  168. Hi there! cialis trial very good web page.

  169. Hi there! cialis free sample beneficial website.

  170. Howdy! soma online pharmacy excellent internet site.

  171. Hi! free sample cialis very good web site.

  172. Hi there! free cialis coupon excellent web page.

  173. Hello! online rx pharmacy excellent internet site.

  174. Howdy! free sample of viagra or cialis very good website.

  175. Howdy! cialis free voucher good internet site.

  176. Hi there! cialis free sample beneficial internet site.

  177. Hello there! Generic Medications excellent internet site.

  178. Hi! free sample cialis excellent web page.

  179. Hello there! cialis 5mg coupon very good web site.

  180. Howdy! free sample cialis great web page.

  181. Hi there! free samples of cialis excellent internet site.

  182. Hello there! cialis cheap very good web site.

  183. Hi! accutane online pharmacy very good website.

  184. Hello there! buy cialis good internet site.

  185. Hi! pharmacies online very good web site.

  186. Howdy! generic online pharmacy great website.

  187. Hi there! online pharmacy forum very good site.

  188. Hello there! Buy Prescription Drugs Online great site.

  189. Hi there! online pharmacy no prescription canada beneficial web site.

  190. Hi there! best online pharmacies great site.

  191. Howdy! walgreens pharmacy online beneficial web page.

  192. Hello there! cvs pharmacy job application online great website.

  193. Hi there! canada online pharmacy very good website.

  194. Hi! india online pharmacy very good web site.

  195. Hello! online pharmacy excellent web page.

  196. Hello! online pharmacy discount code good internet site.

  197. Hi there! ritalin online pharmacy great web page.

  198. Hi there! testosterone online pharmacy beneficial internet site.

  199. Hello there! canadian online pharmacies great web site.

  200. Hello! canada pharmacy no prescription very good internet site.

  201. Hi there! pharmacy tech online great web site.

  202. Hello there! Save on Drugs beneficial web page.

  203. Hi! walmart pharmacy online excellent site.

  204. Howdy! foreign online pharmacies very good internet site.

  205. Hi! online pharmacy vicodin very good site.

  206. Hello! canadian online pharmacy reviews great internet site.

  207. Hello! cheap online pharmacy very good site.

  208. Hello there! clomid online pharmacy good web site.

  209. Howdy! buy levitra usa great internet site.

  210. Hello there! online pharmacy school programs great web page.

  211. Howdy! ambien online pharmacy excellent web site.

  212. Hi there! trusted online pharmacy beneficial internet site.

  213. Hello there! buy levitra beneficial internet site.

  214. Hi there! costco online pharmacy great internet site.

  215. Hello! pharmacy tech training online great web page.

  216. Howdy! my canadian pharmacy online good web page.

  217. Hi there! online pharmacies reviews good web site.

  218. Hi! mexican online pharmacy good internet site.

  219. Hi! us online pharmacy reviews beneficial site.

  220. Hi there! online pharmacy good website.

  221. Howdy! canadian pharmacy no rx excellent web site.

  222. Hello! pharmacy technician course online excellent internet site.

  223. Hello there! live pharmacy ce online beneficial internet site.

  224. Hello there! canadian pharmacy online excellent web page.

  225. Howdy! levitra online pharmacy very good website.

  226. Hi! fioricet online pharmacy very good site.

  227. Hello there! pharmacy tech schools online good internet site.

  228. Hi! legit online pharmacy great web page.

  229. Hello there! viagra generic beneficial web page.

  230. Hi there! ed drugs beneficial web site.

  231. Hi there! ed drugs online excellent internet site.

  232. Hello there! generic viagra beneficial web site.

  233. Hello! buy ed drugs pills online great website.

  234. Hello there! order ed drugs great website.

  235. Hi there! ed drugs online beneficial site.

  236. Howdy! ed drugs cheap excellent web site.

  237. Hello there! purchase ed drugs very good internet site.

  238. Hi there! generic viagra excellent website.

  239. Hi! generic viagra excellent internet site.

  240. Hello! buy viagra great internet site.

  241. Hello there! buy viagra usa great internet site.

  242. Hi there! buy diflucan usa beneficial website.

  243. Hello there! buy generic viagra excellent web site.

  244. Howdy! buy diflucan medication good web site.

  245. Hello there! buy fluconazole pills very good website.

  246. Hello there! clomiphene excellent site.

  247. Hi! buy diflucan online excellent web site.

  248. Hello there! clomiphene excellent website.

  249. Hello! buy fluconazole pills good web page.

  250. Hi there! clomiphene beneficial site.

  251. Hello there! diflucan beneficial internet site.

  252. Hi! buy diflucan usa great web page.

  253. Hello! clomid very good internet site.

  254. Hi! buy fluconazole pills good internet site.

  255. Hello there! diflucan online very good internet site.

  256. Hi there! clomid beneficial website.

  257. Howdy! where buy diflucan beneficial web page.

  258. Hello! clomid beneficial website.

  259. Hello there! clomid very good web site.

  260. Hello there! [url=http://pharmacyonlineus.top/#buy-meds-with-no-prescription-]online pharmacies uk[/url] great web site.

  261. Hello! [url=http://pharmacyonline.bid/#indian-pharma-online-]indian online pharmacies[/url] very good web page.

  262. Howdy! [url=http://pharmacyonline.bid/#pharmacies-online-]reputable online pharmacies no prescription requied[/url] great web site.

  263. Howdy! [url=http://pharmacyonline.bid/#india-drugs-online-]buy prescription drugs online[/url] very good web page.

  264. Howdy! [url=http://pharmacyonline.bid/#indian-pharmacies-online-]online pharmacies canada legitimate[/url] great web site.

  265. Hello! [url=http://pharmacyonlineus.top/#www.online-pharmacies.com-]no prescription[/url] great web site.

  266. Hello! [url=http://pharmacyonline.bid/#drugs-without-prescription-online-]no prescription pharmacy[/url] beneficial site.

  267. Hello! [url=http://pharmacyonline.bid/#canadian-online-pharmacy-viagra-]buy medication online usa[/url] excellent site.

  268. Hello! [url=http://pharmacyonlineus.top/#no-prescription-pharmacy-]pharmacy online uk[/url] excellent internet site.

  269. Hi there! [url=http://pharmacyonline.bid/#canada-pharmacies-no-prescription-needed-]prescription drugs online without[/url] good internet site.

  270. Hi there! [url=http://pharmacyonlineus.top/#online-discount-prescription-drug-with-out-prescriptin-]indian pharma online[/url] excellent site.

  271. Hi there! [url=http://pharmacyonline.bid/#online-pharmacies-in-usa-]on line pharmacy[/url] excellent web page.

  272. Howdy! [url=http://pharmacyonlineus.top/#mexico-pharmacy-drugs-online-]buy meds no rx[/url] beneficial internet site.

  273. Hi there! [url=http://pharmacyonline.bid/#cheapest-mexican-pharmacy-online-]buy prescription drugs online[/url] good website.

  274. Howdy! [url=http://pharmacyonlineus.top/#mexico-online-pharmacies-medication-]online pharmacies without prescription[/url] good web page.

  275. Hello! [url=http://pharmacyonline.bid/#online-us-pharmacies-]buy prescription drugs online[/url] beneficial website.

  276. Hello! [url=http://pharmacyonline.bid/#dillaudud-online-no-rx-]french pharmacy online[/url] excellent web page.

  277. Hi there! [url=http://pharmacyonlineus.top/#best-online-pharmacy-]no prescription pharmacy reviews[/url] beneficial web page.

  278. Hello there! [url=http://pharmacyonline.bid/#pharmacy-online-prescription-drug-]usa online pharmacies[/url] good internet site.

  279. Hi! [url=http://pharmacyonlineus.top/#online-pharmacies-no-prescription-uk-]online pharmacies without prescription[/url] good web site.

  280. Hello! [url=http://pharmacyonline.bid/#mexican-pharmacy-onlineno-rx-]online-pharmacy[/url] great website.

  281. Hi there! [url=http://pharmacyonlineus.top/#prescription-meds-without-the-prescription-]pharmacy[/url] very good site.

  282. Hi! [url=http://pharmacyonlineus.top/#usa-online-pharmacies-]mexican pharmacy onlineno rx[/url] good website.

  283. Hi! [url=http://pharmacyonline.bid/#safest-online-canada-pharmacies-]legitimate online pharmacies in canada[/url] great web page.

  284. Howdy! [url=http://pharmacyonlineus.top/#fioricet-onlinepharmacy-]buy cialis online no presciption canadian healthcare[/url] excellent website.

  285. Hi there! [url=http://viagra-sildenafil.bid/]where can i buy viagra in nairobi[/url] excellent website.

  286. Hello there! [url=http://viagra-sildenafil.bid/]can you buy viagra in pubs[/url] very good web page.

  287. Howdy! [url=http://viagra-sildenafil.bid/]best site to buy viagra forum[/url] very good website.

  288. Hello! [url=http://viagra-sildenafil.bid/]buy viagra over the counter in australia[/url] good web page.

  289. Hi there! [url=http://ventolin.top/#buy-ventolin-usa]buy ventolin online[/url] beneficial internet site.

  290. Hi! [url=http://viagra-sildenafil.bid/]where to buy viagra in surrey bc[/url] very good website.

  291. Hello! [url=http://ventolin.top/#buy-albuterol]buy ventolin with no prescription[/url] very good web site.

  292. Howdy! [url=http://ventolin.top/#where-buy-ventolin]purchase ventolin[/url] great web page.

  293. Howdy! [url=http://ventolin.top/#purchase-ventolin-online-no-prescription]order ventolin[/url] good website.

  294. Hi! [url=http://ventolin.top/#purchase-ventolin]buy ventolin inhaler[/url] good internet site.

  295. Hello! [url=http://viagra-sildenafil.bid/]cheap generic viagra from india[/url] great website.

  296. Hello! [url=http://viagra-sildenafil.bid/]purchase viagra 100mg[/url] beneficial website.

  297. Hello! [url=http://viagra-sildenafil.bid/]buy viagra reviews[/url] good internet site.

  298. Howdy! [url=http://viagra-sildenafil.bid/]can you buy real viagra online[/url] great site.

  299. Hello! [url=http://viagra-sildenafil.bid/]cheap viagra pills[/url] excellent website.

  300. Hello! [url=http://levitra-vardenafil.top/]buy levitra[/url] very good site.

  301. Hi! [url=http://propecia365.us/]buy finasteride no prescription[/url] good website.

  302. Howdy! [url=http://levitra-vardenafil.top/]where buy levitra[/url] excellent internet site.

  303. Hello there! [url=http://propecia365.us/]buy propecia medication[/url] good web site.

  304. Hi! [url=http://levitra-vardenafil.top/]buy levitra medication[/url] great web site.

  305. Hi there! [url=http://levitra-vardenafil.top/]buy vardenafil no prescription[/url] great site.

  306. Hello! [url=http://propecia365.us/]where buy propecia[/url] beneficial site.

  307. Hi there! [url=http://propecia365.us/]buy propecia uk[/url] excellent web site.

  308. Howdy! [url=http://levitra-vardenafil.top/#order-vardenafil]purchase vardenafil[/url] good web site.

  309. Hello! [url=http://propecia365.us/#propecia]purchase propecia online no prescription[/url] great web page.

  310. Hi! [url=http://levitra-vardenafil.top/#buy-vardenafil-online]vardenafil[/url] very good internet site.

  311. Hello there! [url=http://propecia365.us/#where-buy-propecia]purchase propecia[/url] very good website.

  312. Hi! [url=http://levitra-vardenafil.top/#buy-levitra-with-no-prescription]buy levitra medication[/url] beneficial web site.

  313. Howdy! [url=http://propecia365.us/#finasteride]buy propecia online[/url] beneficial site.

  314. Howdy! [url=http://levitra-vardenafil.top/#buy-levitra-cheap]buy vardenafil pills[/url] very good website.

  315. Hi! [url=http://propecia365.us/#purchase-propecia-online-no-prescription]propecia[/url] excellent website.

  316. Thank you for sharing your excellent web page http://allgomedic.com

  317. Давным-давно, когда человечеству были доступны лишь натуральные красители, выбор был весьма ограничен Гидроизоляционные материалы: проникающие, обмазочные и другие виды, классификация, видео и фото.


Leave a comment


*