From david.villasmil.work@gmail.com Mon Jun 6 20:08:05 2022 From: David Villasmil To: sr-users-es@lists.kamailio.org Subject: Re: [SR-Users-ES] Consulta =?utf-8?q?Envi=C3=B3?= de comando en forma remota Date: Mon, 06 Jun 2022 19:07:49 +0100 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1763790633==" --===============1763790633== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable quiz=C3=A1s un "exit;" es mejor aqu=C3=AD: if(src_ip!=3D192.168.224.184) { Y tambi=C3=A9n es recomendable que pongas una regla en iptables al menos. Regards, David Villasmil email: david.villasmil.work(a)gmail.com phone: +34669448337 On Mon, Jun 6, 2022 at 4:13 PM damian wrote: > Gente, > ya se encuentra funcionando, muchas gracias por toda la colaboraci=C3=B3n. > > La conf. qued=C3=B3 de la siguiente manera, por si alguno le interesa. > > disable_tcp=3Dno > tcp_accept_no_cl=3Dyes > > listen=3Dtcp:eth0:8080 > listen=3Dudp:eth0:5060 > listen=3Dudp:127.0.0.1:5060 > > #####Modulos para Request Reload mtree##### > loadmodule "xhttp.so" > loadmodule "jsonrpcs.so" > #sudo apt-get install kamailio-json-modules# > loadmodule "json.so" > ####### > > event_route[xhttp:request] { > if!(dst_port=3D=3D8080) { > xlog("L_NOTICE", "[XHTTP:REQUEST] $si FORBIDDEN! ***\n"); > exit; > } > if(src_ip!=3D192.168.224.184) { > xhttp_reply("403", "Forbidden", "text/html", > "Not allowed from $si"); > xlog("L_NOTICE", "[XHTTP:REQUEST] NOT ALLOWED FROM $si! ***\n"); > exit; > } > if ($hu =3D~ "^/mtree") { > $var(dbmtree) =3D$(rb{json.parse,db}); > xlog("L_NOTICE", "[XHTTP:REQUEST] $si:$sp - db: $var(dbmtree) > ACCEPTED ***\n"); > $var(json_rpc)=3D'{"jsonrpc": "2.0", "method": "mtree.reload", "id": > "$var(dbmtree)"}'; > jsonrpc_exec($var(json_rpc)); > xlog("L_NOTICE","jsonrpc response code: $jsonrpl(code) - the body > is: $jsonrpl(body)\n"); > xhttp_reply("200", "Forbidden", "text/html", > "OK - [$si:$sp - db: > $var(dbmtree)]"); > > } else { > xhttp_reply("200", "OK", "text/html", > "Wrong URL $hu"); > xlog("L_NOTICE", "[XHTTP:REQUEST] WRONG URL $hu! ***\n"); > } > return; > } > > > Saludos. > > El lun, 6 jun 2022 a las 9:49, damian () escribi=C3= =B3: > >> Disculpen, encontr=C3=A9 el error porque el que no levantaba el puerto 808= 0, >> Tenia en el archivo de configuraci=C3=B3n disable_tcp=3Dyes. >> Ire por el camino del Request y ver=C3=A9 si me funciona. >> >> Saludos. >> >> El lun, 6 jun 2022 a las 9:41, damian () escribi=C3= =B3: >> >>> Eh intentado lo del event_route[xhttp:request] pero no logro que >>> Kamailio escuche el puerto que configuro (80, 8080 o cualquier puerto que >>> defina) para enviar el request via http. >>> >>> >>> Tengo configurado: >>> listen=3Dtcp:eth0:8080 >>> listen=3Dudp:eth0:5060 >>> >>> Resultado. >>> >>> Listening on >>> udp: 172.x.x.x:5060 >>> udp: 127.0.0.1:5060 >>> Aliases: >>> udp: localhost:5060 >>> udp: LAB-SERVER:5060 >>> >>> Solo me escucha el 5060. >>> >>> El s=C3=A1b, 4 jun 2022 a las 12:55, Jose Fco. Irles Dur=C3=A1 () >>> escribi=C3=B3: >>> >>>> Otra opci=C3=B3n es que hagas un GET a un path espec=C3=ADfico en >>>> el event_route[xhttp:request] y ah=C3=AD ejecutes lo que quieras, como p= or >>>> ejemplo un script local para hacer lo que quieras. >>>> >>>> El s=C3=A1b, 4 jun 2022 a las 15:13, Joel Serrano () >>>> escribi=C3=B3: >>>> >>>>> Tambi=C3=A9n puedes usar el propio jsonrpcs_exec() y hacer el reload de= sde >>>>> la config cuando te de la gana. >>>>> >>>>> On Fri, Jun 3, 2022 at 15:15 David Villasmil < >>>>> david.villasmil.work(a)gmail.com> wrote: >>>>> >>>>>> Eso lo puedes hacer con un archivo de texto simple. Kamailio puede >>>>>> monitorizar el archivo y recargarlo autom=C3=A1ticamente. >>>>>> Si no, puedes hacer un un timer que dispare un trigger y recargarlo. >>>>>> >>>>>> On Fri, 3 Jun 2022 at 20:38, damian wrote: >>>>>> >>>>>>> Hola, buenas tardes. >>>>>>> Tengo una duda, espero que puedan orientarme o ayudarme. >>>>>>> Tengo montado un Sistema de Redirect Server con Kamailio, >>>>>>> funcionando OK. >>>>>>> Este server lee una tabla que sale de un MYSQL y con el modulo mtree >>>>>>> la cargo en memoria. >>>>>>> Cuando hago modificaicones en la DB refresco los datos en memoria >>>>>>> con el comando: kamcmd mtree.reload mytabla. >>>>>>> >>>>>>> Ahora bien, hay alguna forma de que haga este reload en forma >>>>>>> remota. es decir, no tener que conectarme al server por ssh y tirar el >>>>>>> comando localmente. >>>>>>> Hay alguna posibilidad de que kamailio este escuchando y hacerle el >>>>>>> request de reload? >>>>>>> Si lo hay, cuentan con algun ejemplo que puede utilizar de >>>>>>> referencia? >>>>>>> >>>>>>> Saludos. >>>>>>> _______________________________________________ >>>>>>> sr-users-es mailing list >>>>>>> sr-users-es(a)lists.kamailio.org >>>>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users-es >>>>>>> >>>>>> -- >>>>>> Regards, >>>>>> >>>>>> David Villasmil >>>>>> email: david.villasmil.work(a)gmail.com >>>>>> phone: +34669448337 >>>>>> _______________________________________________ >>>>>> sr-users-es mailing list >>>>>> sr-users-es(a)lists.kamailio.org >>>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users-es >>>>>> >>>>> _______________________________________________ >>>>> sr-users-es mailing list >>>>> sr-users-es(a)lists.kamailio.org >>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users-es >>>>> >>>> >>>> >>>> -- >>>> Jose Fco. Irles Dur=C3=A1 >>>> _______________________________________________ >>>> sr-users-es mailing list >>>> sr-users-es(a)lists.kamailio.org >>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users-es >>>> >>> _______________________________________________ > sr-users-es mailing list > sr-users-es(a)lists.kamailio.org > https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users-es > --===============1763790633== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PGRpdiBkaXI9Imx0ciI+cXVpesOhcyB1biAmcXVvdDtleGl0OyZxdW90OyBlcyBtZWpvciBhcXXD rTo8ZGl2Pjxicj48L2Rpdj48ZGl2PsKgIGlmKHNyY19pcCE9MTkyLjE2OC4yMjQuMTg0KSB7PGJy PjxkaXY+PGJyPjwvZGl2PjxkaXY+WSB0YW1iacOpbiBlcyByZWNvbWVuZGFibGUgcXVlIHBvbmdh cyB1bmEgcmVnbGEgZW4gaXB0YWJsZXMgYWwgbWVub3MuPC9kaXY+PGRpdj48YnIgY2xlYXI9ImFs bCI+PGRpdj48ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21haWxfc2lnbmF0dXJlIiBkYXRhLXNtYXJ0 bWFpbD0iZ21haWxfc2lnbmF0dXJlIj48ZGl2IGRpcj0ibHRyIj48ZGl2PlJlZ2FyZHMsPC9kaXY+ PGRpdj48YnI+PC9kaXY+RGF2aWQgVmlsbGFzbWlsPGRpdj5lbWFpbDogPGEgaHJlZj0ibWFpbHRv OmRhdmlkLnZpbGxhc21pbC53b3JrQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmRhdmlkLnZp bGxhc21pbC53b3JrQGdtYWlsLmNvbTwvYT48L2Rpdj48ZGl2PnBob25lOiArMzQ2Njk0NDgzMzc8 L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48YnI+PC9kaXY+PC9kaXY+PC9kaXY+PGJyPjxkaXYgY2xh c3M9ImdtYWlsX3F1b3RlIj48ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21haWxfYXR0ciI+T24gTW9u LCBKdW4gNiwgMjAyMiBhdCA0OjEzIFBNIGRhbWlhbiAmbHQ7PGEgaHJlZj0ibWFpbHRvOmNhc3Np ZHlub0BnbWFpbC5jb20iPmNhc3NpZHlub0BnbWFpbC5jb208L2E+Jmd0OyB3cm90ZTo8YnI+PC9k aXY+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHgg MHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmct bGVmdDoxZXgiPjxkaXYgZGlyPSJsdHIiPjxkaXY+R2VudGUswqA8L2Rpdj48ZGl2PnlhIHNlIGVu Y3VlbnRyYSBmdW5jaW9uYW5kbywgbXVjaGFzIGdyYWNpYXMgcG9yIHRvZGEgbGEgY29sYWJvcmFj acOzbi48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkxhIGNvbmYuIHF1ZWTDsyBkZSBsYSBzaWd1 aWVudGUgbWFuZXJhLCBwb3Igc2kgYWxndW5vIGxlIGludGVyZXNhLjwvZGl2PjxkaXY+PGJyPjwv ZGl2PjxkaXY+ZGlzYWJsZV90Y3A9bm88YnI+dGNwX2FjY2VwdF9ub19jbD15ZXM8YnI+PGJyPmxp c3Rlbj10Y3A6ZXRoMDo4MDgwPGJyPmxpc3Rlbj11ZHA6ZXRoMDo1MDYwPGJyPmxpc3Rlbj11ZHA6 PGEgaHJlZj0iaHR0cDovLzEyNy4wLjAuMTo1MDYwIiB0YXJnZXQ9Il9ibGFuayI+MTI3LjAuMC4x OjUwNjA8L2E+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+IyMjIyNNb2R1bG9zIHBhcmEg UmVxdWVzdCBSZWxvYWQgbXRyZWUjIyMjIzxicj5sb2FkbW9kdWxlICZxdW90O3hodHRwLnNvJnF1 b3Q7PGJyPmxvYWRtb2R1bGUgJnF1b3Q7anNvbnJwY3Muc28mcXVvdDs8YnI+I3N1ZG8gYXB0LWdl dCBpbnN0YWxsIGthbWFpbGlvLWpzb24tbW9kdWxlcyM8YnI+bG9hZG1vZHVsZSAmcXVvdDtqc29u LnNvJnF1b3Q7PGJyPiMjIyMjIyM8YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+ZXZlbnRfcm91dGVb eGh0dHA6cmVxdWVzdF0gezxicj7CoCBpZiEoZHN0X3BvcnQ9PTgwODApIHs8YnI+wqAgwqAgeGxv ZygmcXVvdDtMX05PVElDRSZxdW90OywgJnF1b3Q7W1hIVFRQOlJFUVVFU1RdICRzaSBGT1JCSURE RU4hICoqKlxuJnF1b3Q7KTs8YnI+wqAgwqAgZXhpdDs8YnI+wqAgfTxicj7CoCBpZihzcmNfaXAh PTE5Mi4xNjguMjI0LjE4NCkgezxicj7CoCDCoCDCoCDCoCB4aHR0cF9yZXBseSgmcXVvdDs0MDMm cXVvdDssICZxdW90O0ZvcmJpZGRlbiZxdW90OywgJnF1b3Q7dGV4dC9odG1sJnF1b3Q7LDxicj7C oCDCoCDCoCDCoCDCoCDCoCAmcXVvdDsmbHQ7aHRtbCZndDsmbHQ7Ym9keSZndDtOb3QgYWxsb3dl ZCBmcm9tICRzaSZsdDsvYm9keSZndDsmbHQ7L2h0bWwmZ3Q7JnF1b3Q7KTs8YnI+wqAgwqAgwqAg wqAgeGxvZygmcXVvdDtMX05PVElDRSZxdW90OywgJnF1b3Q7W1hIVFRQOlJFUVVFU1RdIE5PVCBB TExPV0VEIEZST00gJHNpISAqKipcbiZxdW90Oyk7PGJyPsKgIMKgIMKgIMKgIGV4aXQ7PGJyPgl9 PGJyPsKgIMKgIGlmICgkaHUgPX4gJnF1b3Q7Xi9tdHJlZSZxdW90Oykgezxicj7CoCDCoCAJJHZh cihkYm10cmVlKSA9JChyYntqc29uLnBhcnNlLGRifSk7PGJyPsKgIMKgIMKgIMKgIHhsb2coJnF1 b3Q7TF9OT1RJQ0UmcXVvdDssICZxdW90O1tYSFRUUDpSRVFVRVNUXSAkc2k6JHNwIMKgLSBkYjog JHZhcihkYm10cmVlKSBBQ0NFUFRFRCAqKipcbiZxdW90Oyk7PGJyPsKgIMKgIMKgIMKgICR2YXIo anNvbl9ycGMpPSYjMzk7eyZxdW90O2pzb25ycGMmcXVvdDs6ICZxdW90OzIuMCZxdW90OywgJnF1 b3Q7bWV0aG9kJnF1b3Q7OiAmcXVvdDttdHJlZS5yZWxvYWQmcXVvdDssICZxdW90O2lkJnF1b3Q7 OiAmcXVvdDskdmFyKGRibXRyZWUpJnF1b3Q7fSYjMzk7Ozxicj7CoCDCoCDCoCDCoCBqc29ucnBj X2V4ZWMoJHZhcihqc29uX3JwYykpOzxicj7CoCDCoCDCoCDCoCB4bG9nKCZxdW90O0xfTk9USUNF JnF1b3Q7LCZxdW90O2pzb25ycGMgcmVzcG9uc2UgY29kZTogJGpzb25ycGwoY29kZSkgLSB0aGUg Ym9keSBpczogJGpzb25ycGwoYm9keSlcbiZxdW90Oyk7PGJyPsKgIMKgIMKgIMKgIHhodHRwX3Jl cGx5KCZxdW90OzIwMCZxdW90OywgJnF1b3Q7Rm9yYmlkZGVuJnF1b3Q7LCAmcXVvdDt0ZXh0L2h0 bWwmcXVvdDssPGJyPsKgIMKgIMKgIMKgIMKgIMKgICZxdW90OyZsdDtodG1sJmd0OyZsdDtib2R5 Jmd0O09LIC0gWyRzaTokc3AgwqAtIGRiOiAkdmFyKGRibXRyZWUpXSZsdDsvYm9keSZndDsmbHQ7 L2h0bWwmZ3Q7JnF1b3Q7KTs8YnI+wqAgwqAgwqAgwqAgPGJyPgl9IGVsc2Ugezxicj7CoCDCoCDC oCDCoCB4aHR0cF9yZXBseSgmcXVvdDsyMDAmcXVvdDssICZxdW90O09LJnF1b3Q7LCAmcXVvdDt0 ZXh0L2h0bWwmcXVvdDssPGJyPsKgIMKgIMKgIMKgIMKgIMKgICZxdW90OyZsdDtodG1sJmd0OyZs dDtib2R5Jmd0O1dyb25nIFVSTCAkaHUmbHQ7L2JvZHkmZ3Q7Jmx0Oy9odG1sJmd0OyZxdW90Oyk7 PGJyPsKgIMKgIMKgIMKgIHhsb2coJnF1b3Q7TF9OT1RJQ0UmcXVvdDssICZxdW90O1tYSFRUUDpS RVFVRVNUXSBXUk9ORyBVUkwgJGh1ISAqKipcbiZxdW90Oyk7PGJyPsKgIMKgIH08YnI+wqAgwqAg cmV0dXJuOzxicj59PGJyPjxkaXY+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+U2FsdWRv cy48L2Rpdj48L2Rpdj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPjxkaXYgZGlyPSJsdHIi IGNsYXNzPSJnbWFpbF9hdHRyIj5FbCBsdW4sIDYganVuIDIwMjIgYSBsYXMgOTo0OSwgZGFtaWFu ICgmbHQ7PGEgaHJlZj0ibWFpbHRvOmNhc3NpZHlub0BnbWFpbC5jb20iIHRhcmdldD0iX2JsYW5r Ij5jYXNzaWR5bm9AZ21haWwuY29tPC9hPiZndDspIGVzY3JpYmnDszo8YnI+PC9kaXY+PGJsb2Nr cXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4 O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgi PjxkaXYgZGlyPSJsdHIiPjxkaXY+RGlzY3VscGVuLCBlbmNvbnRyw6kgZWwgZXJyb3IgcG9ycXVl IGVsIHF1ZSBubyBsZXZhbnRhYmEgZWwgcHVlcnRvIDgwODAsIDxicj48L2Rpdj48ZGl2PlRlbmlh IGVuIGVsIGFyY2hpdm8gZGUgY29uZmlndXJhY2nDs24gZGlzYWJsZV90Y3A9eWVzLjwvZGl2Pjxk aXY+SXJlIHBvciBlbCBjYW1pbm8gZGVsIFJlcXVlc3QgeSB2ZXLDqSBzaSBtZSBmdW5jaW9uYS48 L2Rpdj48ZGl2PjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+U2FsdWRvcy48YnI+PC9kaXY+PC9k aXY+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21h aWxfYXR0ciI+RWwgbHVuLCA2IGp1biAyMDIyIGEgbGFzIDk6NDEsIGRhbWlhbiAoJmx0OzxhIGhy ZWY9Im1haWx0bzpjYXNzaWR5bm9AZ21haWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+Y2Fzc2lkeW5v QGdtYWlsLmNvbTwvYT4mZ3Q7KSBlc2NyaWJpw7M6PGJyPjwvZGl2PjxibG9ja3F1b3RlIGNsYXNz PSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBweCAwLjhleDtib3JkZXItbGVm dDoxcHggc29saWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IGRpcj0i bHRyIj48ZGl2PkVoIGludGVudGFkbyBsbyBkZWwgZXZlbnRfcm91dGVbeGh0dHA6cmVxdWVzdF0g IHBlcm8gbm8gbG9ncm8gcXVlIEthbWFpbGlvIGVzY3VjaGUgZWwgcHVlcnRvIHF1ZSBjb25maWd1 cm8gKDgwLCA4MDgwIG8gY3VhbHF1aWVyIHB1ZXJ0byBxdWUgZGVmaW5hKcKgIHBhcmEgZW52aWFy IGVsIHJlcXVlc3QgdmlhIGh0dHAuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+ PGRpdj5UZW5nbyBjb25maWd1cmFkbzo8L2Rpdj48ZGl2Pmxpc3Rlbj10Y3A6ZXRoMDo4MDgwPGJy Pmxpc3Rlbj11ZHA6ZXRoMDo1MDYwPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5SZXN1bHRhZG8u PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+TGlzdGVuaW5nIG9uIDxicj7CoCDCoCDCoCDC oCDCoCDCoCDCoHVkcDogMTcyLngueC54OjUwNjA8YnI+wqAgwqAgwqAgwqAgwqAgwqAgwqB1ZHA6 IDxhIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6NTA2MCIgdGFyZ2V0PSJfYmxhbmsiPjEyNy4wLjAu MTo1MDYwPC9hPjxicj5BbGlhc2VzOiA8YnI+wqAgwqAgwqAgwqAgwqAgwqAgwqB1ZHA6IGxvY2Fs aG9zdDo1MDYwPGJyPsKgIMKgIMKgIMKgIMKgIMKgIMKgdWRwOiBMQUItU0VSVkVSOjUwNjA8YnI+ PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5Tb2xvIG1lIGVzY3VjaGEgZWwgNTA2MC48YnI+PC9k aXY+PC9kaXY+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48ZGl2IGRpcj0ibHRyIiBjbGFz cz0iZ21haWxfYXR0ciI+RWwgc8OhYiwgNCBqdW4gMjAyMiBhIGxhcyAxMjo1NSwgSm9zZSBGY28u IElybGVzIER1csOhICgmbHQ7PGEgaHJlZj0ibWFpbHRvOmpvc2VmdUBnbWFpbC5jb20iIHRhcmdl dD0iX2JsYW5rIj5qb3NlZnVAZ21haWwuY29tPC9hPiZndDspIGVzY3JpYmnDszo8YnI+PC9kaXY+ PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHggMHB4 IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVm dDoxZXgiPjxkaXYgZGlyPSJsdHIiPk90cmEgb3BjacOzbiBlcyBxdWUgaGFnYXMgdW4gR0VUIGEg dW4gcGF0aCBlc3BlY8OtZmljbyBlbiBlbMKgZXZlbnRfcm91dGVbeGh0dHA6cmVxdWVzdF0geSBh aMOtIGVqZWN1dGVzIGxvIHF1ZSBxdWllcmFzLCBjb21vIHBvciBlamVtcGxvIHVuIHNjcmlwdCBs b2NhbCBwYXJhIGhhY2VyIGxvIHF1ZSBxdWllcmFzLjwvZGl2Pjxicj48ZGl2IGNsYXNzPSJnbWFp bF9xdW90ZSI+PGRpdiBkaXI9Imx0ciIgY2xhc3M9ImdtYWlsX2F0dHIiPkVsIHPDoWIsIDQganVu IDIwMjIgYSBsYXMgMTU6MTMsIEpvZWwgU2VycmFubyAoJmx0OzxhIGhyZWY9Im1haWx0bzpqb2Vs QHRleHRwbHVzLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmpvZWxAdGV4dHBsdXMuY29tPC9hPiZndDsp IGVzY3JpYmnDszo8YnI+PC9kaXY+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHls ZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0 LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgZGlyPSJhdXRvIj5UYW1iacOpbiBwdWVk ZXMgdXNhciBlbCBwcm9waW8ganNvbnJwY3NfZXhlYygpIHkgaGFjZXIgZWwgcmVsb2FkIGRlc2Rl IGxhIGNvbmZpZyBjdWFuZG8gdGUgZGUgbGEgZ2FuYS7CoDwvZGl2PjxkaXY+PGJyPjxkaXYgY2xh c3M9ImdtYWlsX3F1b3RlIj48ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21haWxfYXR0ciI+T24gRnJp LCBKdW4gMywgMjAyMiBhdCAxNToxNSBEYXZpZCBWaWxsYXNtaWwgJmx0OzxhIGhyZWY9Im1haWx0 bzpkYXZpZC52aWxsYXNtaWwud29ya0BnbWFpbC5jb20iIHRhcmdldD0iX2JsYW5rIj5kYXZpZC52 aWxsYXNtaWwud29ya0BnbWFpbC5jb208L2E+Jmd0OyB3cm90ZTo8YnI+PC9kaXY+PGJsb2NrcXVv dGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4O2Jv cmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPjxk aXYgZGlyPSJhdXRvIj5Fc28gbG8gcHVlZGVzIGhhY2VyIGNvbiB1biBhcmNoaXZvIGRlIHRleHRv IHNpbXBsZS4gS2FtYWlsaW8gcHVlZGUgbW9uaXRvcml6YXIgZWwgYXJjaGl2byB5IHJlY2FyZ2Fy bG8gYXV0b23DoXRpY2FtZW50ZS48L2Rpdj48ZGl2IGRpcj0iYXV0byI+U2kgbm8sIHB1ZWRlcyBo YWNlciB1biB1biB0aW1lciBxdWUgZGlzcGFyZSB1biB0cmlnZ2VyIHkgcmVjYXJnYXJsby48L2Rp dj48ZGl2Pjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+PGRpdiBkaXI9Imx0ciIgY2xhc3M9 ImdtYWlsX2F0dHIiPk9uIEZyaSwgMyBKdW4gMjAyMiBhdCAyMDozOCwgZGFtaWFuICZsdDs8YSBo cmVmPSJtYWlsdG86Y2Fzc2lkeW5vQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmNhc3NpZHlu b0BnbWFpbC5jb208L2E+Jmd0OyB3cm90ZTo8YnI+PC9kaXY+PGJsb2NrcXVvdGUgY2xhc3M9Imdt YWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFw eCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgZGlyPSJsdHIi PjxkaXY+SG9sYSwgYnVlbmFzIHRhcmRlcy48YnI+PC9kaXY+PGRpdj5UZW5nbyB1bmEgZHVkYSwg ZXNwZXJvIHF1ZSBwdWVkYW4gb3JpZW50YXJtZSBvIGF5dWRhcm1lLjxicj48L2Rpdj48ZGl2PlRl bmdvIG1vbnRhZG8gdW4gU2lzdGVtYSBkZSBSZWRpcmVjdCBTZXJ2ZXIgY29uIEthbWFpbGlvLCBm dW5jaW9uYW5kbyBPSy48YnI+PC9kaXY+PGRpdj5Fc3RlIHNlcnZlciBsZWUgdW5hIHRhYmxhIHF1 ZSBzYWxlIGRlIHVuIE1ZU1FMIHkgY29uIGVsIG1vZHVsbyBtdHJlZSBsYSBjYXJnbyBlbiBtZW1v cmlhLjwvZGl2PjxkaXY+Q3VhbmRvIGhhZ28gbW9kaWZpY2FpY29uZXMgZW4gbGEgREIgcmVmcmVz Y28gbG9zIGRhdG9zIGVuIG1lbW9yaWEgY29uIGVsIGNvbWFuZG86IGthbWNtZCBtdHJlZS5yZWxv YWQgbXl0YWJsYS48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkFob3JhCiBiaWVuLCBoYXkgYWxn dW5hIGZvcm1hIGRlIHF1ZSBoYWdhIGVzdGUgcmVsb2FkIGVuIGZvcm1hIHJlbW90YS4gZXMgCmRl Y2lyLCBubyB0ZW5lciBxdWUgY29uZWN0YXJtZSBhbCBzZXJ2ZXIgcG9yIHNzaCB5IHRpcmFyIGVs IGNvbWFuZG8gCmxvY2FsbWVudGUuPC9kaXY+PGRpdj5IYXkgYWxndW5hIHBvc2liaWxpZGFkIGRl IHF1ZSBrYW1haWxpbyBlc3RlIGVzY3VjaGFuZG8geSBoYWNlcmxlIGVsIHJlcXVlc3QgZGUgcmVs b2FkPzwvZGl2PjxkaXY+U2kgbG8gaGF5LCBjdWVudGFuIGNvbiBhbGd1biBlamVtcGxvIHF1ZSBw dWVkZSB1dGlsaXphciBkZSByZWZlcmVuY2lhPzwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+U2Fs dWRvcy48L2Rpdj48L2Rpdj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX188YnI+CnNyLXVzZXJzLWVzIG1haWxpbmcgbGlzdDxicj4KPGEgaHJlZj0ibWFpbHRv OnNyLXVzZXJzLWVzQGxpc3RzLmthbWFpbGlvLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnNyLXVzZXJz LWVzQGxpc3RzLmthbWFpbGlvLm9yZzwvYT48YnI+CjxhIGhyZWY9Imh0dHBzOi8vbGlzdHMua2Ft YWlsaW8ub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9zci11c2Vycy1lcyIgcmVsPSJub3Jl ZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9saXN0cy5rYW1haWxpby5vcmcvY2dpLWJp bi9tYWlsbWFuL2xpc3RpbmZvL3NyLXVzZXJzLWVzPC9hPjxicj4KPC9ibG9ja3F1b3RlPjwvZGl2 PjwvZGl2Pi0tIDxicj48ZGl2IGRpcj0ibHRyIj48ZGl2IGRpcj0ibHRyIj48ZGl2PlJlZ2FyZHMs PC9kaXY+PGRpdj48YnI+PC9kaXY+RGF2aWQgVmlsbGFzbWlsPGRpdj5lbWFpbDogPGEgaHJlZj0i bWFpbHRvOmRhdmlkLnZpbGxhc21pbC53b3JrQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmRh dmlkLnZpbGxhc21pbC53b3JrQGdtYWlsLmNvbTwvYT48L2Rpdj48ZGl2PnBob25lOiArMzQ2Njk0 NDgzMzc8L2Rpdj48L2Rpdj48L2Rpdj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX188YnI+CnNyLXVzZXJzLWVzIG1haWxpbmcgbGlzdDxicj4KPGEgaHJlZj0i bWFpbHRvOnNyLXVzZXJzLWVzQGxpc3RzLmthbWFpbGlvLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnNy LXVzZXJzLWVzQGxpc3RzLmthbWFpbGlvLm9yZzwvYT48YnI+CjxhIGhyZWY9Imh0dHBzOi8vbGlz dHMua2FtYWlsaW8ub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9zci11c2Vycy1lcyIgcmVs PSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9saXN0cy5rYW1haWxpby5vcmcv Y2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3NyLXVzZXJzLWVzPC9hPjxicj4KPC9ibG9ja3F1b3Rl PjwvZGl2PjwvZGl2PgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXzxicj4Kc3ItdXNlcnMtZXMgbWFpbGluZyBsaXN0PGJyPgo8YSBocmVmPSJtYWlsdG86c3It dXNlcnMtZXNAbGlzdHMua2FtYWlsaW8ub3JnIiB0YXJnZXQ9Il9ibGFuayI+c3ItdXNlcnMtZXNA bGlzdHMua2FtYWlsaW8ub3JnPC9hPjxicj4KPGEgaHJlZj0iaHR0cHM6Ly9saXN0cy5rYW1haWxp by5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3NyLXVzZXJzLWVzIiByZWw9Im5vcmVmZXJy ZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2xpc3RzLmthbWFpbGlvLm9yZy9jZ2ktYmluL21h aWxtYW4vbGlzdGluZm8vc3ItdXNlcnMtZXM8L2E+PGJyPgo8L2Jsb2NrcXVvdGU+PC9kaXY+PGJy IGNsZWFyPSJhbGwiPjxkaXY+PGJyPjwvZGl2Pi0tIDxicj48ZGl2IGRpcj0ibHRyIj5Kb3NlIEZj by4gSXJsZXMgRHVyw6E8L2Rpdj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX188YnI+CnNyLXVzZXJzLWVzIG1haWxpbmcgbGlzdDxicj4KPGEgaHJlZj0ibWFp bHRvOnNyLXVzZXJzLWVzQGxpc3RzLmthbWFpbGlvLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnNyLXVz ZXJzLWVzQGxpc3RzLmthbWFpbGlvLm9yZzwvYT48YnI+CjxhIGhyZWY9Imh0dHBzOi8vbGlzdHMu a2FtYWlsaW8ub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9zci11c2Vycy1lcyIgcmVsPSJu b3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9saXN0cy5rYW1haWxpby5vcmcvY2dp LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3NyLXVzZXJzLWVzPC9hPjxicj4KPC9ibG9ja3F1b3RlPjwv ZGl2Pgo8L2Jsb2NrcXVvdGU+PC9kaXY+CjwvYmxvY2txdW90ZT48L2Rpdj4KX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+CnNyLXVzZXJzLWVzIG1haWxp bmcgbGlzdDxicj4KPGEgaHJlZj0ibWFpbHRvOnNyLXVzZXJzLWVzQGxpc3RzLmthbWFpbGlvLm9y ZyIgdGFyZ2V0PSJfYmxhbmsiPnNyLXVzZXJzLWVzQGxpc3RzLmthbWFpbGlvLm9yZzwvYT48YnI+ CjxhIGhyZWY9Imh0dHBzOi8vbGlzdHMua2FtYWlsaW8ub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0 aW5mby9zci11c2Vycy1lcyIgcmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6 Ly9saXN0cy5rYW1haWxpby5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3NyLXVzZXJzLWVz PC9hPjxicj4KPC9ibG9ja3F1b3RlPjwvZGl2Pgo= --===============1763790633==--