Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. Alias auf Shelly - unerwartete Änderung des Aliastyps

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Alias auf Shelly - unerwartete Änderung des Aliastyps

    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      ioMas @paul53 last edited by

      @paul53
      habe die Rolle in switch geändert leider bleibt es dabei, es wird ein string draus.

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @ioMas last edited by

        @iomas sagte: bleibt es dabei, es wird ein string draus.

        Mal InfluxDB auf dem Alias deaktiviert?

        I 1 Reply Last reply Reply Quote 0
        • I
          ioMas @paul53 last edited by

          @paul53
          InfluxDB abschalten hat leider keinen Einfluß auf das beschriebene Verhalten.

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @ioMas last edited by paul53

            @iomas
            Ich habe den Javascript-Code mal zum Testen übernommen, zwei Aliase und zwei MQTT-Datenpunkte erstellt und getestet: Ich erhalte immer nur:

            0.1: Hinweise: Typ:boolean Wert ist: false
            

            oder true. Mit welchem Ablauf erscheint?

            0.1: Hinweise: Typ:string Wert ist: off
            
            1 Reply Last reply Reply Quote 1
            • I
              ioMas last edited by ioMas

              @paul53
              Dieser erscheint wenn ich den shelly über die app frühzeitig ausschalte, also Licht geht an, ich schalte per App oder phsyikalisch den Schalter aus. Wenn danach erneut der Bewegungsmelder aktiviert wird, dann kommt es zu besagtem Wechsel des Typs.

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @ioMas last edited by paul53

                @iomas sagte in Alias auf Shelly - unerwartete Änderung des Aliastyps:

                Licht geht an, ich schalte per App oder phsyikalisch den Schalter aus. Wenn danach erneut der Bewegungsmelder aktiviert wird

                Habe ich mal nachgestellt:

                16:49:48.115	info	javascript.1 (2077) script.js.common.Neuer_Test: 0: Bewegung
                16:49:48.116	info	javascript.1 (2077) script.js.common.Neuer_Test: 0.1: Hinweise: Typ:boolean Wert ist: false
                16:49:48.116	info	javascript.1 (2077) script.js.common.Neuer_Test: 1: erkanntfalse
                16:49:48.117	info	javascript.1 (2077) script.js.common.Neuer_Test: 2: Licht ist aus
                16:49:48.117	info	javascript.1 (2077) script.js.common.Neuer_Test: 3: kleiner Schwellwert->Licht anschalten
                16:49:48.248	info	javascript.1 (2077) script.js.common.Neuer_Test: Alias: true, Ack: true, Skript: script.js.common.Shelly1
                16:50:00.164	info	javascript.1 (2077) script.js.common.Neuer_Test: Alias: false, Ack: true, Skript: script.js.common.Shelly1
                16:50:48.117	info	javascript.1 (2077) script.js.common.Neuer_Test: X: Licht ausschalten
                16:50:48.176	info	javascript.1 (2077) script.js.common.Neuer_Test: Alias: false, Ack: true, Skript: script.js.common.Shelly1
                16:51:02.813	info	javascript.1 (2077) script.js.common.Neuer_Test: 0: Bewegung
                16:51:02.813	info	javascript.1 (2077) script.js.common.Neuer_Test: 0.1: Hinweise: Typ:boolean Wert ist: false
                16:51:02.813	info	javascript.1 (2077) script.js.common.Neuer_Test: 1: erkanntfalse
                16:51:02.813	info	javascript.1 (2077) script.js.common.Neuer_Test: 2: Licht ist aus
                16:51:02.813	info	javascript.1 (2077) script.js.common.Neuer_Test: 3: kleiner Schwellwert->Licht anschalten
                16:51:02.886	info	javascript.1 (2077) script.js.common.Neuer_Test: Alias: true, Ack: true, Skript: script.js.common.Shelly1
                16:52:02.817	info	javascript.1 (2077) script.js.common.Neuer_Test: X: Licht ausschalten
                16:52:02.916	info	javascript.1 (2077) script.js.common.Neuer_Test: Alias: false, Ack: true, Skript: script.js.common.Shelly1
                

                Der zusätzliche Log-Eintrag kommt aus dem Debug-Log auf dem Alias:

                on({id: idLichtSchalter}, function(dp) {
                    log('Alias: ' + dp.state.val + ', Ack: ' + dp.state.ack + ', Skript: ' + dp.state.c);
                });
                

                Was mir auffällt: Der Debug-Trigger liefert stets "Ack: true", d.h. auf das ursprüngliche Setzen mit ack = false reagiert der Trigger nicht. Allerdings reagiert das MQTT-Kommando:

                17:25:49.123	info	javascript.1 (2077) script.js.common.Neuer_Test: X: Licht ausschalten
                17:25:49.127	info	javascript.1 (2077) script.js.common.Neuer_Test: MQTT Command: off, Ack: false
                17:25:49.180	info	javascript.1 (2077) script.js.common.Neuer_Test: Alias: false, Ack: true, Skript: script.js.common.Shelly1
                
                I 2 Replies Last reply Reply Quote 0
                • I
                  ioMas @paul53 last edited by

                  @paul53 said in Alias auf Shelly - unerwartete Änderung des Aliastyps:

                  on({id: idLichtSchalter}, function(dp) {

                  Ich habe mein Script mal um folgendes erweitert, analog zu deinem JS, hoffe ich...
                  5440c641-5f17-4b15-8f4c-984ede15e422-grafik.png

                  on({id: [].concat(idLichtSchalter), change: "ne"}, async function (obj) {
                    var value = obj.state.val;
                    var oldValue = obj.oldState.val;
                    console.debug((['Alias: ',(obj.state ? obj.state.val : ""),', Ack: ',(obj.state ? obj.state.ack : ""),', Skript: ',(obj.state ? obj.state.from : "")].join('')));
                  });
                  

                  ist was im blockly unter JS dazukam.
                  Die Ausgabe sieht bei mir danach wie folgt aus:

                  17:21:44.814	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 0: Bewegung
                  17:21:44.815	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 0.1: Hinweise: Typ:boolean Wert ist: false
                  17:21:44.815	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 1: erkanntfalse
                  17:21:44.817	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 2: Licht ist aus
                  17:21:44.821	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 3: kleiner Schwellwert->Licht anschalten
                  17:21:44.913	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: Alias: true, Ack: true, Skript: system.adapter.mqtt.0
                  17:22:03.022	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: Alias: false, Ack: true, Skript: system.adapter.mqtt.0
                  17:22:16.783	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 0: Bewegung
                  17:22:16.784	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 1: nicht erkannt
                  17:22:44.823	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: X: Licht ausschalten
                  17:22:54.973	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 0: Bewegung
                  17:22:54.974	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 0.1: Hinweise: Typ:string Wert ist: off
                  17:22:54.974	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 0.5: Bugfix wrong typestring Wert ist: off
                  17:22:54.974	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 0.5b: aus
                  17:22:54.975	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 1: erkanntfalse
                  17:22:54.976	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 2: Licht ist aus
                  17:22:54.977	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 3: kleiner Schwellwert->Licht anschalten
                  17:22:55.046	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: Alias: true, Ack: true, Skript: system.adapter.mqtt.0
                  17:23:26.961	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 0: Bewegung
                  17:23:26.962	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 1: nicht erkannt
                  17:23:54.979	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: X: Licht ausschalten
                  17:23:55.052	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: Alias: false, Ack: true, Skript: system.adapter.mqtt.0
                  

                  hilft das weiter?

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @ioMas last edited by paul53

                    @iomas sagte: hilft das weiter?

                    Nicht wirklich. Ich kann das Verhalten mit "Wert ist: off" bei mir nicht nachstellen - bei gleichem Ablauf. Version des Hosts (js-controller)?
                    Außerdem triggert mein Debug-Trigger auf "wurde aktualisiert".

                    I 1 Reply Last reply Reply Quote 0
                    • I
                      ioMas @paul53 last edited by

                      @paul53
                      habe es auf aktualisiert geändert:
                      f1d217cb-bd75-4c31-a783-205b3f147578-grafik.png

                      on({id: [].concat(idLichtSchalter), change: "any"}, async function (obj) {
                        var value = obj.state.val;
                        var oldValue = obj.oldState.val;
                        console.debug((['Alias: ',(obj.state ? obj.state.val : ""),', Ack: ',(obj.state ? obj.state.ack : ""),', Skript: ',(obj.state ? obj.state.from : "")].join('')));
                      });
                      

                      Debugausgabe:

                      17:36:35.502	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 0: Bewegung
                      17:36:35.502	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 0.1: Hinweise: Typ:boolean Wert ist: false
                      17:36:35.503	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 1: erkanntfalse
                      17:36:35.503	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 2: Licht ist aus
                      17:36:35.504	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 3: kleiner Schwellwert->Licht anschalten
                      17:36:35.588	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: Alias: true, Ack: true, Skript: system.adapter.mqtt.0
                      17:36:45.637	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: Alias: false, Ack: true, Skript: system.adapter.mqtt.0
                      17:37:07.496	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 0: Bewegung
                      17:37:07.498	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 1: nicht erkannt
                      17:37:35.507	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: X: Licht ausschalten
                      17:37:49.309	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 0: Bewegung
                      17:37:49.310	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 0.1: Hinweise: Typ:string Wert ist: off
                      17:37:49.310	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 0.5: Bugfix wrong typestring Wert ist: off
                      17:37:49.310	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 0.5b: aus
                      17:37:49.310	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 1: erkanntfalse
                      17:37:49.310	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 2: Licht ist aus
                      17:37:49.311	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 3: kleiner Schwellwert->Licht anschalten
                      17:37:49.417	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: Alias: true, Ack: true, Skript: system.adapter.mqtt.0
                      17:38:21.305	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 0: Bewegung
                      17:38:21.306	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: 1: nicht erkannt
                      17:38:49.312	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: X: Licht ausschalten
                      17:38:49.425	debug	javascript.0 (291426) script.js.EG.kueche.beweg2: Alias: false, Ack: true, Skript: system.adapter.mqtt.0
                      
                      

                      e30f3e69-2935-4d43-a5d8-122d7e17ab72-grafik.png

                      Host js sollt 4.0.24 sein.

                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @ioMas last edited by

                        @iomas sagte: Debugausgabe:

                        Wie bei mir - außer der Typänderung in String mit "off".

                        @iomas sagte in Alias auf Shelly - unerwartete Änderung des Aliastyps:

                        Host js sollt 4.0.24 sein.

                        Bei mir auch. An der Version kann es nicht liegen. Ich nutze allerdings noch Node.js 16.

                        1 Reply Last reply Reply Quote 0
                        • I
                          ioMas @paul53 last edited by

                          @paul53 said in Alias auf Shelly - unerwartete Änderung des Aliastyps:

                          Was mir auffällt: Der Debug-Trigger liefert stets "Ack: true", d.h. auf das ursprüngliche Setzen mit ack = false reagiert der Trigger nicht. Allerdings reagiert das MQTT-Kommando:

                          Da bin ich tatsächlich noch am schwimmen, bin erst seit Anfang des Monats dabei und habe diese Woche noch dazu ein Video angeschaut...

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @ioMas last edited by

                            @iomas sagte: Da bin ich tatsächlich noch am schwimmen

                            Dieses Verhalten ist offenbar nur bei Alias-DP mit getrennten IDs für Status und Kommando so: Es wird nur auf den Status getriggert.

                            I 2 Replies Last reply Reply Quote 1
                            • I
                              ioMas @paul53 last edited by ioMas

                              @paul53
                              Ich habe jetzt mal umgestellt auf 2 Aliase, einen auf lesen (EGKuecheFensterLichtRead) einen auf schreiben(EGKuecheFensterLichtWrite). Das JS von Blockly sieht nun so aus:

                              var LichtNachdetektionAnbleiben, schwellWertLicht, idLichtSchalterWrite, LichtDurchBewegAn, idLichtSchalterRead, lichtIstAn, verl_C3_A4ngerungLicht, initLichtAus;
                              
                              // Beschreibe diese Funktion …
                              async function Licht_ausschalten() {
                                console.debug('X: Licht ausschalten');
                                LichtDurchBewegAn = false;
                                setStateDelayed(idLichtSchalterWrite, false, false, parseInt(((0) || "").toString(), 10), false);
                              }
                              
                              
                              LichtNachdetektionAnbleiben = 60000;
                              schwellWertLicht = getState("0_userdata.0.Technik.EG.Kueche.EGKuecheFensterBeweg.BrigthnessSchwellwert").val;
                              idLichtSchalterWrite = 'alias.0.eg.Kueche.EGKuecheFensterLichtWrite';
                              idLichtSchalterRead = 'alias.0.eg.Kueche.EGKuecheFensterLichtRead';
                              LichtDurchBewegAn = false;
                              on({id: "alias.0.eg.Kueche.EGKuecheFensterBeweg"/*EGKuecheFensterBeweg*/, change: "any", ack: true}, async function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                console.debug('0: Bewegung ');
                                if ((obj.state ? obj.state.val : "")) {
                                  lichtIstAn = getState(idLichtSchalterRead).val;
                                  console.debug((['0.1: Hinweise: Typ:',typeof lichtIstAn,' Wert ist: ',lichtIstAn].join('')));
                                  if (true && typeof lichtIstAn != 'boolean') {
                                    console.debug((['0.5: Bugfix wrong type',typeof lichtIstAn,' Wert ist: ',lichtIstAn].join('')));
                                    if (lichtIstAn == 'on') {
                                      lichtIstAn = true;
                                      console.debug('0.5a: an');
                                    } else {
                                      lichtIstAn = false;
                                      console.debug('0.5b: aus');
                                    }
                                  }
                                  console.debug(('1: erkannt' + String(lichtIstAn)));
                                  if (lichtIstAn) {
                                    console.debug('2: Licht ist bereits an');
                                    if (LichtDurchBewegAn) {
                                      console.debug('3: verlängere Lichtdauer');
                                      (function () {if (initLichtAus) {clearTimeout(initLichtAus); initLichtAus = null;}})();
                                      (function () {if (verl_C3_A4ngerungLicht) {clearTimeout(verl_C3_A4ngerungLicht); verl_C3_A4ngerungLicht = null;}})();
                                      verl_C3_A4ngerungLicht = setTimeout(async function () {
                                        await Licht_ausschalten();
                                      }, parseInt(LichtNachdetektionAnbleiben));
                                    } else {
                                      console.debug('3:nothing2do Licht nicht durch Algo gesetzt');
                                    }
                                  } else {
                                    console.debug('2: Licht ist aus');
                                    if (getState("alias.0.eg.Kueche.EGKuecheFensterBewegLux").val < schwellWertLicht) {
                                      console.debug('3: kleiner Schwellwert->Licht anschalten');
                                      LichtDurchBewegAn = true;
                                      setStateDelayed(idLichtSchalterWrite, true, false, parseInt(((0) || "").toString(), 10), false);
                                      initLichtAus = setTimeout(async function () {
                                        await Licht_ausschalten();
                                      }, parseInt(LichtNachdetektionAnbleiben));
                                    } else {
                                      console.debug('3: größer Schwellwert');
                                    }
                                  }
                                } else {
                                  console.debug('1: nicht erkannt');
                                }
                              });
                              on({id: [].concat(idLichtSchalterRead), change: "any"}, async function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                console.debug((['AliasRead: ',(obj.state ? obj.state.val : ""),', Ack: ',(obj.state ? obj.state.ack : ""),', Skript: ',(obj.state ? obj.state.from : "")].join('')));
                              });
                              on({id: [].concat(idLichtSchalterWrite), change: "any"}, async function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                console.debug((['AliasWrite: ',(obj.state ? obj.state.val : ""),', Ack: ',(obj.state ? obj.state.ack : ""),', Skript: ',(obj.state ? obj.state.from : "")].join('')));
                              });
                              
                              //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0N2YXJpYWJsZXMlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyJTNBTiU1QmNJJTNGJTdEMiU3Qjh3ZHZmJTNGOGM0VyolMjIlM0VMaWNodE5hY2hkZXRla3Rpb25BbmJsZWliZW4lM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjJofiU3RHQ5TUxMJTVEaXRfViU3Q1ZSWTNNJTI1JTIyJTNFc2Nod2VsbFdlcnRMaWNodCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMjklMjRLaHElNjBaJTNGIUhMWSUzQTdFcmclM0R0bCUyMiUzRWlkTGljaHRTY2hhbHRlcldyaXRlJTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyTiklMkIqMX4zWlNsbSpkeGZlaCU2MCU1QkUlMjIlM0VMaWNodER1cmNoQmV3ZWdBbiUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMi1uJTVCX1duJTdDOHElN0RMbGhYZmslNDBrKCU1QiUyMiUzRWlkTGljaHRTY2hhbHRlclJlYWQlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjJyaCUyMyUyRk5iSCUzRlYuSk5xYyUyM1RyUCU3QyU1RCUyMiUzRWxpY2h0SXN0QW4lM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwdHlwZSUzRCUyMnRpbWVvdXQlMjIlMjBpZCUzRCUyMnZlcmwlQzMlQTRuZ2VydW5nTGljaHQlMjIlM0V2ZXJsJUMzJUE0bmdlcnVuZ0xpY2h0JTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMHR5cGUlM0QlMjJ0aW1lb3V0JTIyJTIwaWQlM0QlMjJpbml0TGljaHRBdXMlMjIlM0Vpbml0TGljaHRBdXMlM0MlMkZ2YXJpYWJsZSUzRSUzQyUyRnZhcmlhYmxlcyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiotJTNGSCU2MFduNGdEJTdEMF8pKTdZb2REJTIyJTIweCUzRCUyMjE2MyUyMiUyMHklM0QlMjIxMyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTNBTiU1QmNJJTNGJTdEMiU3Qjh3ZHZmJTNGOGM0VyolMjIlM0VMaWNodE5hY2hkZXRla3Rpb25BbmJsZWliZW4lM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMnB1NlUuQyUyM1dSYlAlNURQOShNeCU0MC1LJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFNjAwMDAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyJTJDZzZhfjh1ciUyRk9tYSUzRGRWRjMlNUR4JTVCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJofiU3RHQ5TUxMJTVEaXRfViU3Q1ZSWTNNJTI1JTIyJTNFc2Nod2VsbFdlcnRMaWNodCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMnZoQ3dnLTlsM01vQ2lUVk0lN0JnNDglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0UwX3VzZXJkYXRhLjAuVGVjaG5pay5FRy5LdWVjaGUuRUdLdWVjaGVGZW5zdGVyQmV3ZWcuQnJpZ3RobmVzc1NjaHdlbGx3ZXJ0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMjlGQiUyMyU3REV1JTVEbVBzNndDJTVEUSUzREopJTJCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjI5JTI0S2hxJTYwWiUzRiFITFklM0E3RXJnJTNEdGwlMjIlM0VpZExpY2h0U2NoYWx0ZXJXcml0ZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMnNMJTIzKiolMjRFayUyNSU1RFhBaGVUTzcoNV8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJvaWQlMjIlM0VhbGlhcy4wLmVnLkt1ZWNoZS5FR0t1ZWNoZUZlbnN0ZXJMaWNodFdyaXRlJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiUyNCU3Q21MdShnJTdDN0ghT3p6MERfZHFqJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjItbiU1Ql9XbiU3QzhxJTdETGxoWGZrJTQwayglNUIlMjIlM0VpZExpY2h0U2NoYWx0ZXJSZWFkJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmZpZWxkX29pZCUyMiUyMGlkJTNEJTIyaVZyJTNBMDIlM0J3JTdDNCUzRCUzQjE0NE5Yd1VZJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFYWxpYXMuMC5lZy5LdWVjaGUuRUdLdWVjaGVGZW5zdGVyTGljaHRSZWFkJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiU1QnNNNUMhaHllJTdDNkV+SWxZajU5biUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyTiklMkIqMX4zWlNsbSpkeGZlaCU2MCU1QkUlMjIlM0VMaWNodER1cmNoQmV3ZWdBbiUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJfcyUyQiU3QiU0MGElMkNkc2ZPJTVEJTVEKkl3TlkzJTVEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uJTIyJTIwaWQlM0QlMjJ1MSpsOClHUkElM0ZQQmolNUJSQTBhJTI0UyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsaWFzLjAuZWcuS3VlY2hlLkVHS3VlY2hlRmVuc3RlckJld2VnJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0VhbnklM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0V0cnVlJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZGVidWclMjIlMjBpZCUzRCUyMllhUWElN0IlNURyVTlMeGh3WHJXJTI0RiUyNX4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTZXZlcml0eSUyMiUzRWRlYnVnJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMnRFMClqc3MlMkZTTEhKeWQlM0YuTGkxRyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UwJTNBJTIwQmV3ZWd1bmclMjAlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjIxSW03JTNGS2J1VSUzQSUzQmMlN0MpYyUzQiUyNWRUJTJCJTIyJTNFJTNDbXV0YXRpb24lMjBlbHNlJTNEJTIyMSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb25fc291cmNlJTIyJTIwaWQlM0QlMjIpJTI0LW4lNURZJTNCX0trWTMlMjVNKnFBOVRMJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXN0YXRlLnZhbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJmJTNEVWYlNUJ0WE54T2t5c3Z5JTVFa1g0dyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIycmglMjMlMkZOYkglM0ZWLkpOcWMlMjNUclAlN0MlNUQlMjIlM0VsaWNodElzdEFuJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZV92YXIlMjIlMjBpZCUzRCUyMiUzRDglNDBpeSU0MEg0bWMpSVUlNUVJdiU1RDZjYSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJXOS5HM3QlM0ZmOSUzRHJ2T0g2Y1FqRiglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJOTWl2JTNEJTIzJTJCKSU3QyUyNSU0MCUyQyhYa0gtKVN+JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjItbiU1Ql9XbiU3QzhxJTdETGxoWGZrJTQwayglNUIlMjIlM0VpZExpY2h0U2NoYWx0ZXJSZWFkJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJkZWJ1ZyUyMiUyMGlkJTNEJTIyJTVEb29OKTMyWCU3RG0lM0ZmVjA1NSlLRCUzRCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlNldmVyaXR5JTIyJTNFZGVidWclM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfam9pbiUyMiUyMGlkJTNEJTIyJTVEanp5KU00dXFDQSUyM0ljR35HZ1VzJTIyJTNFJTNDbXV0YXRpb24lMjBpdGVtcyUzRCUyMjQlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjIlM0R5JTIzeVolMkYyNDUlMjMlMjUlN0RNIWdTNFclMkIoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRTAuMSUzQSUyMEhpbndlaXNlJTNBJTIwVHlwJTNBJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnZlcnRfdHlwZSUyMiUyMGlkJTNEJTIyaiUzQmklMjQyWkpZUGolMjRoISUzRCUyRmZmOUctJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySVRFTSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlB0TWJrJTYwJTQwJTVEJTNEJTJDJTdCRV9VM0F6bWpmJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJyaCUyMyUyRk5iSCUzRlYuSk5xYyUyM1RyUCU3QyU1RCUyMiUzRWxpY2h0SXN0QW4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMiUzQSUzRiU3QkhUJTJGcDBrYyU1RVpzUm5TQkElM0JJJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyMFdlcnQlMjBpc3QlM0ElMjAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQzJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyU1BfdFYlNjBuR3V+Mm9relMlNURTMDAlN0MlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnJoJTIzJTJGTmJIJTNGVi5KTnFjJTIzVHJQJTdDJTVEJTIyJTNFbGljaHRJc3RBbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMndHaSU3QmIlN0N3JTNCQU4xLi1sJTVCKnk4eHElMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19vcGVyYXRpb24lMjIlMjBpZCUzRCUyMkI0JTVEKTQxVXUlM0QqdGx6IWYqZCUyMyUyRiUyRiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyeDdmcV9VZkVxJTNCLiUyNFZTJTVEJTI0TUFUMSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMkdHJTdEVUMpJTI1OCUyRmg4cU4zcXRuUmVtJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VORVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb252ZXJ0X3R5cGUlMjIlMjBpZCUzRCUyMipHJTQwJTNGUiE2dCUyQiUzQWJjSFAzJTNEKXolM0E4JTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySVRFTSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMiUyQm9KOCU2MDRPNWYuejlnc1ElM0E1JTdDRTMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnJoJTIzJTJGTmJIJTNGVi5KTnFjJTIzVHJQJTdDJTVEJTIyJTNFbGljaHRJc3RBbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTJCaHRLKiU3Qn4lNDBVc3pwJTVEcktNVSp6QSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0Vib29sZWFuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZGVidWclMjIlMjBpZCUzRCUyMmlzdmFvek5rSyUyNCU3Q3p2MiUzRDBqYX5hJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0VkZWJ1ZyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dF9qb2luJTIyJTIwaWQlM0QlMjI3JTYwciFoJTNEQmFQejFrRW5QaG9+JTIzJTI1JTIyJTNFJTNDbXV0YXRpb24lMjBpdGVtcyUzRCUyMjQlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJuaGtQcXRDYXZTOEMlNjBhS2FGRjBPJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRTAuNSUzQSUyMEJ1Z2ZpeCUyMHdyb25nJTIwdHlwZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb252ZXJ0X3R5cGUlMjIlMjBpZCUzRCUyMiooJTIzWCUyQmN4KCpEeSU0ME1FeiUzQnElNUUuQSUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklURU0lMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJ5YWU1OCU1RChwRGsxJTVFJTdDJTI0biU1QjFiNSU1RSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIycmglMjMlMkZOYkglM0ZWLkpOcWMlMjNUclAlN0MlNUQlMjIlM0VsaWNodElzdEFuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJpbWNUZkgwVjNiJTIzKX4lNURjOCU3RCpZKiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlMjBXZXJ0JTIwaXN0JTNBJTIwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMyUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMi55THAlNURSJTI1QmR0biU2MCUzREMlN0Q1VENKTSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIycmglMjMlMkZOYkglM0ZWLkpOcWMlMjNUclAlN0MlNUQlMjIlM0VsaWNodElzdEFuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIyc19mWEMyJTQwcnRpV04lMjNiSlQ0Z0JKJTIyJTNFJTNDbXV0YXRpb24lMjBlbHNlJTNEJTIyMSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIydyUzQkglMjN5SDNhZSU1RHolM0RsMiU1RVJJNColMjMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTVFeTVnTHYlNUUtJTQwZWYlM0Y0NWtWVnVyMCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIycmglMjMlMkZOYkglM0ZWLkpOcWMlMjNUclAlN0MlNUQlMjIlM0VsaWNodElzdEFuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMk5PJTVCVihxJTNCJTIzZC05U1NUJTJGMG1PYiUzRCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VvbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyVkJXbCU2MGclMkMlM0ElNjBVMSUyQjYlM0ZDIV96VWElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnJoJTIzJTJGTmJIJTNGVi5KTnFjJTIzVHJQJTdDJTVEJTIyJTNFbGljaHRJc3RBbiUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjIzYiFtKCUyNEJqJTI0NnJxbCUyNVQlN0RoRkd6JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZGVidWclMjIlMjBpZCUzRCUyMiUzRCUyNH44YiU3QiFYZDZ6emIzKXNqR2tjJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0VkZWJ1ZyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJlJTdDYUklMkZJSyU3QkklNUVGQUtJNnIuLTcyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRTAuNWElM0ElMjBhbiUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJFTFNFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyaSU0MCU3RHFrUngpflB4LlElN0R3OGUlMkMyRiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIycmglMjMlMkZOYkglM0ZWLkpOcWMlMjNUclAlN0MlNUQlMjIlM0VsaWNodElzdEFuJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2Jvb2xlYW4lMjIlMjBpZCUzRCUyMk5kdGtLWlJ0dU5UWDFYJTVCMmlyZUYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZGVidWclMjIlMjBpZCUzRCUyMiUyM0YlNUUhfn5VSEY3ODFHaTUzQyU2MCFkJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0VkZWJ1ZyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJOaWN2T0VVLTglMkZENmdlQ0wlMkMlMjVWbiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UwLjViJTNBJTIwYXVzJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZGVidWclMjIlMjBpZCUzRCUyMl9GNEFzSSolN0QzJTdDMiU3QiUyM0YlNDAlNUJlMDkyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0VkZWJ1ZyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJka2xVODFEbTFtSzFINHJpJTVFJTdCdColMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0X2pvaW4lMjIlMjBpZCUzRCUyMjl1Si5qZmNNRC0lN0IlN0MlMkMlM0QlMkZMMXJ4OSUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIyJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyLkRTUEN2aXYpZ0E1eVE4b0YtQjklMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFMSUzQSUyMGVya2FubnQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIybCUzQTUuSkZwJTdCa2tBT1JaRjFGUFYpJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJyaCUyMyUyRk5iSCUzRlYuSk5xYyUyM1RyUCU3QyU1RCUyMiUzRWxpY2h0SXN0QW4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjIlNjBITSUyNGJvWklXOEUlNDAyQUolN0JDeChCJTIyJTNFJTNDbXV0YXRpb24lMjBlbHNlJTNEJTIyMSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyNDQlM0FZTHElNUJpeiU1RCUzRiUzQUJ5QzMhJTNBaWwlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnJoJTIzJTJGTmJIJTNGVi5KTnFjJTIzVHJQJTdDJTVEJTIyJTNFbGljaHRJc3RBbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJkZWJ1ZyUyMiUyMGlkJTNEJTIybmtGQyUyNHclMkMlMjRCJTVEJTNBJTVELiU3QyU3RGpuQzNkJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0VkZWJ1ZyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJKc2VFay1+VCUzQWpoNilhTC5iMnUhJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRTIlM0ElMjBMaWNodCUyMGlzdCUyMGJlcmVpdHMlMjBhbiUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMm1YOTJUJTNCaTlRdCUzRiUyNVkpb3F2JTVFemUlMjIlM0UlM0NtdXRhdGlvbiUyMGVsc2UlM0QlMjIxJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJtb3dyYmwxJTIzTE5oeW9UXy1OaCU1QmclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMk4pJTJCKjF+M1pTbG0qZHhmZWglNjAlNUJFJTIyJTNFTGljaHREdXJjaEJld2VnQW4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZGVidWclMjIlMjBpZCUzRCUyMiUyQ1lxNUJTUmYhWClHM3ZGSGRrJTNBMSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlNldmVyaXR5JTIyJTNFZGVidWclM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIybDUtTSUyQiUyNCpmdjMlN0QpU2kqbnd4JTVEaCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UzJTNBJTIwdmVybCVDMyVBNG5nZXJlJTIwTGljaHRkYXVlciUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfY2xlYXJ0aW1lb3V0JTIyJTIwaWQlM0QlMjJ3RUkwYlNpVzlHYmw4JTVFSXIlM0ElMkZ+JTNBJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRWluaXRMaWNodEF1cyUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX2NsZWFydGltZW91dCUyMiUyMGlkJTNEJTIyKipXMyU1RSU2MGVmJTJDJTVEUSUyM18hUSFLJTdELkQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFdmVybCVDMyVBNG5nZXJ1bmdMaWNodCUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3NldHRpbWVvdXRfdmFyaWFibGUlMjIlMjBpZCUzRCUyMk1+NFolMkZ5JTJDJTdEJTVCcXYlMkYlM0YlNUVNIVVzdiElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFdmVybCVDMyVBNG5nZXJ1bmdMaWNodCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU3Q1hFfm54TXQpJTQwLikySlZwTmlQWCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTEwMDAlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMiUyQ1R0JTNGQWdUJTVCMS5wS2xuJTQwWCU1QiFrQSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTNBTiU1QmNJJTNGJTdEMiU3Qjh3ZHZmJTNGOGM0VyolMjIlM0VMaWNodE5hY2hkZXRla3Rpb25BbmJsZWliZW4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19jYWxsbm9yZXR1cm4lMjIlMjBpZCUzRCUyMiU2MHolN0JLQktYTCU0MEotQyU2MChjVElidVMlMjIlM0UlM0NtdXRhdGlvbiUyMG5hbWUlM0QlMjJMaWNodCUyMGF1c3NjaGFsdGVuJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkVMU0UlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJkZWJ1ZyUyMiUyMGlkJTNEJTIyRzFiSCUyRiU3Qk9nNyUzQUJYKCohJTVFTWQ0MSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlNldmVyaXR5JTIyJTNFZGVidWclM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyLWRiaCUyQ1dKLkYlM0Y4MVBCIWh6bmUlN0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFMyUzQW5vdGhpbmcyZG8lMjBMaWNodCUyMG5pY2h0JTIwZHVyY2glMjBBbGdvJTIwZ2VzZXR6dCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkVMU0UlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJkZWJ1ZyUyMiUyMGlkJTNEJTIyTiUzQmxwKWFDJTI0JTYwZilmLnpLSVR6TVMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTZXZlcml0eSUyMiUzRWRlYnVnJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMlolN0NzJTQwLVklN0NjendsJTdCLjMpRnBZbn4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFMiUzQSUyMExpY2h0JTIwaXN0JTIwYXVzJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIyUiUyQ3FhdSU0MFVsWnAlNUJrJTVFRSUzRDkqWHF5JTIyJTNFJTNDbXV0YXRpb24lMjBlbHNlJTNEJTIyMSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyWSpDUWstWmhOXzR2JTVCJTdEJTVCbCFKJTVCbSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFTFQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMiFfJTYwSjRhJTdCMSU3QktfJTNCJTJDUHQlM0ElNjAlNjBkNCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsaWFzLjAuZWcuS3VlY2hlLkVHS3VlY2hlRmVuc3RlckJld2VnTHV4JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMnpHemhLUG5PLjhDV2QqJTNESS0lMjMlMjVEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJofiU3RHQ5TUxMJTVEaXRfViU3Q1ZSWTNNJTI1JTIyJTNFc2Nod2VsbFdlcnRMaWNodCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZGVidWclMjIlMjBpZCUzRCUyMkYocyUzRnYlMkYwVExUZUElNUVWa2UlMjVQQVolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTZXZlcml0eSUyMiUzRWRlYnVnJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMmlwYiElM0YodU1qbnlRJTVEWDguJTVFJTJDX2clMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFMyUzQSUyMGtsZWluZXIlMjBTY2h3ZWxsd2VydC0lMjZndCUzQkxpY2h0JTIwYW5zY2hhbHRlbiUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyUnUzZEVNT3ElM0R+ZEMhOCo0QmIlM0RwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJOKSUyQioxfjNaU2xtKmR4ZmVoJTYwJTVCRSUyMiUzRUxpY2h0RHVyY2hCZXdlZ0FuJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2Jvb2xlYW4lMjIlMjBpZCUzRCUyMnAlNDA1SnNOS34lM0YlN0IlMjRwR2dYUTQlMjUyZyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xfZXglMjIlMjBpZCUzRCUyMl8lM0RkZE9xZDRRNGclMjQxc19QdllxaSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRZUEUlMjIlM0VmYWxzZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ0xFQVJfUlVOTklORyUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJPSUQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIyZmllbGRfb2lkJTIyJTIwaWQlM0QlMjJSM3RUSThlQyUyRmUlMjVzJTJCci0lMkJNekFjJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFT2JqZWN0JTIwSUQlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMjBEM0g1JTIzZlVkXyUzQWJDOUJjLigwMyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyOSUyNEtocSU2MFolM0YhSExZJTNBN0VyZyUzRHRsJTIyJTNFaWRMaWNodFNjaGFsdGVyV3JpdGUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjI5JTYwMVM4NHlVJTVEbHo4aHN3TSpQbDIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJERUxBWV9NUyUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyLShTJTIzQ3lVOW5keiUzQnNrWSUzRFZ2JTJCLSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3NldHRpbWVvdXRfdmFyaWFibGUlMjIlMjBpZCUzRCUyMklQKCUzQjhmeSU3RHBmJTdDS3MqJTJDTURONWolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFaW5pdExpY2h0QXVzJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJERUxBWV9NUyUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIycHMlMjUlNUVYZk0qJTNEciUzRCU1QlRQejBxLkwyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFNjAwMDAlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMnUlN0J+bEQlM0ZSfjRxXyUyQ1AuckUlNUJkflclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUzQU4lNUJjSSUzRiU3RDIlN0I4d2R2ZiUzRjhjNFcqJTIyJTNFTGljaHROYWNoZGV0ZWt0aW9uQW5ibGVpYmVuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnByb2NlZHVyZXNfY2FsbG5vcmV0dXJuJTIyJTIwaWQlM0QlMjJtJTdCJTJDbEMwMnROSThqXzZMMyUzQipweSUyMiUzRSUzQ211dGF0aW9uJTIwbmFtZSUzRCUyMkxpY2h0JTIwYXVzc2NoYWx0ZW4lMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRUxTRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmRlYnVnJTIyJTIwaWQlM0QlMjJoZlUhbklMKlclM0EqJTdDSnolMjVodlolN0RFJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0VkZWJ1ZyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJ3KjE3diUyRiU3QmguJTI0QXZKbilDV0clM0JSJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRTMlM0ElMjBnciVDMyVCNiVDMyU5RmVyJTIwU2Nod2VsbHdlcnQlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkVMU0UlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJkZWJ1ZyUyMiUyMGlkJTNEJTIyYyUzRGcqZkklMjMtTHklMjMlMkNISyU3Qkd6c3E2JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0VkZWJ1ZyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjIlM0I1JTdENFAlMjRhNEtqTWNjNkFsT1lkNiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UxJTNBJTIwbmljaHQlMjBlcmthbm50JTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb25fZXh0JTIyJTIwaWQlM0QlMjJscDYlN0IlMkYlMjUpY3dSJTJCZWJpTHRLKEQlNUIlMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBpdGVtcyUzRCUyMjElMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTkRJVElPTiUyMiUzRWFueSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQUNLX0NPTkRJVElPTiUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEMCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMiglNUJ1JTVEJTYwJTI0eW0ybkIxenIlNDBOZ1klNURwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFZGVmYXVsdCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIybSkuUHdlZ19ieFBoJTNGZzYzMEN3JTJCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjItbiU1Ql9XbiU3QzhxJTdETGxoWGZrJTQwayglNUIlMjIlM0VpZExpY2h0U2NoYWx0ZXJSZWFkJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmRlYnVnJTIyJTIwaWQlM0QlMjJuKkRsX3IlM0RWMiUzREFhbF9+VTV+VlolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTZXZlcml0eSUyMiUzRWRlYnVnJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMnAlN0NEJTJCJTNCbHU1LiUyNCU3Q0lucy5OQXglM0QpJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXRlc3QlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfam9pbiUyMiUyMGlkJTNEJTIydSUyM2JINW1RRiUyNHZZYyU2MCU3Q0glM0FMVm9mJTIyJTNFJTNDbXV0YXRpb24lMjBpdGVtcyUzRCUyMjYlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJBQSU2MCp6ZHYqY2wlMjNYTFdUJTNBTG9XVCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VBbGlhc1JlYWQlM0ElMjAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb25fc291cmNlJTIyJTIwaWQlM0QlMjJIYy5QdHEhUFMlN0JtbmlpcyU3QjllKSU3QyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0VzdGF0ZS52YWwlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQyJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyaSU1QiFPJTNBfiFma1VtdHJ1bERTdzMpJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyQyUyMEFjayUzQSUyMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDMlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbl9zb3VyY2UlMjIlMjBpZCUzRCUyMjAwbSU1RWUlM0RTOX5Rdi5sRzVTYXVkcCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0VzdGF0ZS5hY2slM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQ0JTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyOEYlNUU3eUMlMkJ5JTI0cWp1KiUyNTVvZHIwRCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlMkMlMjBTa3JpcHQlM0ElMjAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQ1JTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb25fc291cmNlJTIyJTIwaWQlM0QlMjJndnpCYXNVJTVEU0NxLlVvTWhJRXYlM0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFc3RhdGUuZnJvbSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbl9leHQlMjIlMjBpZCUzRCUyMkpUaHZhVG0uKiU3QkUlM0YlNUIyM2VHTiU3RG0lMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBpdGVtcyUzRCUyMjElMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTkRJVElPTiUyMiUzRWFueSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQUNLX0NPTkRJVElPTiUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEMCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJvaWQlMjIlM0VkZWZhdWx0JTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJlJTI0JTNBQiUyNHN4MjAlMkMlNjB6dUN1JTNGJTNCWV8wJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjI5JTI0S2hxJTYwWiUzRiFITFklM0E3RXJnJTNEdGwlMjIlM0VpZExpY2h0U2NoYWx0ZXJXcml0ZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJkZWJ1ZyUyMiUyMGlkJTNEJTIyJTJDISUzRDFHOUFxNShvSEoodSlVWlBpJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0VkZWJ1ZyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXRlc3QlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfam9pbiUyMiUyMGlkJTNEJTIyYXBLMlUxeEZFaiUyQ01seW1sZCUyM3J2JTIyJTNFJTNDbXV0YXRpb24lMjBpdGVtcyUzRCUyMjYlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJBayU3RE8lNjAlMkNvdlk0RUw1JTNGZCU1QiU3QmEwSCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VBbGlhc1dyaXRlJTNBJTIwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX3NvdXJjZSUyMiUyMGlkJTNEJTIyYWhuJTJDKXpaJTI1eS1XT35TTmUlNUIlMjMlM0FpJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXN0YXRlLnZhbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJhJTQwZU14JTI1UUl5eW5VJTVEVyUyMyU1QmclM0JDSCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlMkMlMjBBY2slM0ElMjAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQzJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb25fc291cmNlJTIyJTIwaWQlM0QlMjI0JTQweSUyNFlOJTQwenBTbCUyQiU1RW1hMmpXcVElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFc3RhdGUuYWNrJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQURENCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMiU1QiU3Qio3JTdCcE5+KGNhOCU3RCU0MGRhMjZfeCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlMkMlMjBTa3JpcHQlM0ElMjAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQ1JTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb25fc291cmNlJTIyJTIwaWQlM0QlMjJOSTRzWnMtZyhFV2ZBJTNBWHgybl83JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXN0YXRlLmZyb20lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnByb2NlZHVyZXNfZGVmbm9yZXR1cm4lMjIlMjBpZCUzRCUyMnUwd1IlNDB5SGtsJTNBZCUyQiUyNCU1QnElMjRKOF9mJTIyJTIweCUzRCUyMjgzOCUyMiUyMHklM0QlMjI5NjMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFTGljaHQlMjBhdXNzY2hhbHRlbiUzQyUyRmZpZWxkJTNFJTNDY29tbWVudCUyMHBpbm5lZCUzRCUyMmZhbHNlJTIyJTIwaCUzRCUyMjgwJTIyJTIwdyUzRCUyMjE2MCUyMiUzRUJlc2NocmVpYmUlMjBkaWVzZSUyMEZ1bmt0aW9uJTIwJUUyJTgwJUE2JTNDJTJGY29tbWVudCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFDSyUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmRlYnVnJTIyJTIwaWQlM0QlMjJmMHctJTdERUZ3WnYlM0IlM0QxTEMlM0ElM0FtR2olMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTZXZlcml0eSUyMiUzRWRlYnVnJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMnRWJTJDSzQlMjVCZiUzQS5RZ3VDWEclN0QlMjRVJTVCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRVglM0ElMjBMaWNodCUyMGF1c3NjaGFsdGVuJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjIlM0RkJTJGaCUzRFNFT20oJTNEbyUyNGtlQlRwMyUyQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyTiklMkIqMX4zWlNsbSpkeGZlaCU2MCU1QkUlMjIlM0VMaWNodER1cmNoQmV3ZWdBbiUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjIlMjUlNUQqNFh2aCU1RCUzQmRkUSUyMzZmJTI1JTVFMyglM0QlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbF9leCUyMiUyMGlkJTNEJTIyZF9LMS1EcSUyQiU3QjIlMkMqV3EtZTFfJTNCJTQwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVFlQRSUyMiUzRWZhbHNlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJvaWQlMjIlM0VPYmplY3QlMjBJRCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyYmQlNUIxRmpmViU1RWQlM0ZtaiU3QnF0Wm50KSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyOSUyNEtocSU2MFolM0YhSExZJTNBN0VyZyUzRHRsJTIyJTNFaWRMaWNodFNjaGFsdGVyV3JpdGUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJ3aiUyQzByV2hwdWsyJTdCJTQwRlFRNWlqdiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJERUxBWV9NUyUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyMiUyQmJVSCU3Q2MlM0JsbmtXSyU1RGJSJTNEbFNLJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGeG1sJTNF
                              

                              Alias Read:

                              {
                                "common": {
                                  "name": "EGKuecheFensterLichtRead",
                                  "desc": "Manuell erzeugt",
                                  "role": "switch",
                                  "type": "boolean",
                                  "read": true,
                                  "write": true,
                                  "def": false,
                                  "alias": {
                                    "id": "mqtt.0.shellies.shelly1l-XXX.relay.0",
                                    "read": "val=='on'"
                                  }
                                },
                                "type": "state",
                                "native": {},
                                "_id": "alias.0.eg.Kueche.EGKuecheFensterLichtRead",
                                "acl": {
                                  "object": 1636,
                                  "state": 1636,
                                  "owner": "system.user.admin",
                                  "ownerGroup": "system.group.administrator"
                                },
                                "from": "system.adapter.admin.0",
                                "user": "system.user.admin",
                                "ts": 1677258916765
                              }
                              

                              Alias Write:

                              {
                                "common": {
                                  "name": "EGKuecheFensterLichtWrite",
                                  "desc": "Manuell erzeugt",
                                  "role": "switch",
                                  "type": "boolean",
                                  "read": true,
                                  "write": true,
                                  "def": false,
                                  "alias": {
                                    "id": "mqtt.0.shellies.shelly1l-XXX.relay.0.command",
                                    "write": "val?'on':'off'"
                                  }
                                },
                                "type": "state",
                                "native": {},
                                "_id": "alias.0.eg.Kueche.EGKuecheFensterLichtWrite",
                                "acl": {
                                  "object": 1636,
                                  "state": 1636,
                                  "owner": "system.user.admin",
                                  "ownerGroup": "system.group.administrator"
                                },
                                "from": "system.adapter.admin.0",
                                "user": "system.user.admin",
                                "ts": 1677258607761
                              }
                              

                              führte zu folgender Debugausgabe (ich habe den IOBroker neugestartet,da dieser den lesen alias am Anfang nicht aktualisiert hatte, dies ging aber ohne Probleme nach dem Neustart)
                              Debug ausgabe:

                              18:24:13.157	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 0: Bewegung
                              18:24:13.158	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 0.1: Hinweise: Typ:boolean Wert ist: false
                              18:24:13.158	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 1: erkanntfalse
                              18:24:13.159	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 2: Licht ist aus
                              18:24:13.159	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 3: kleiner Schwellwert->Licht anschalten
                              18:24:13.173	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: true, Ack: false, Skript: system.adapter.javascript.0
                              18:24:13.182	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: true, Ack: true, Skript: system.adapter.mqtt.0
                              18:24:13.197	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasRead: true, Ack: true, Skript: system.adapter.mqtt.0
                              18:24:26.354	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasRead: false, Ack: true, Skript: system.adapter.mqtt.0
                              18:24:45.147	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 0: Bewegung
                              18:24:45.148	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 1: nicht erkannt
                              18:25:13.160	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: X: Licht ausschalten
                              18:25:13.177	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: false, Ack: false, Skript: system.adapter.javascript.0
                              18:25:13.198	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: false, Ack: true, Skript: system.adapter.mqtt.0
                              18:25:26.413	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 0: Bewegung
                              18:25:26.414	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 0.1: Hinweise: Typ:boolean Wert ist: false
                              18:25:26.414	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 1: erkanntfalse
                              18:25:26.415	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 2: Licht ist aus
                              18:25:26.416	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 3: kleiner Schwellwert->Licht anschalten
                              18:25:26.431	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: true, Ack: false, Skript: system.adapter.javascript.0
                              18:25:26.440	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: true, Ack: true, Skript: system.adapter.mqtt.0
                              18:25:26.507	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasRead: true, Ack: true, Skript: system.adapter.mqtt.0
                              18:25:58.387	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 0: Bewegung
                              18:25:58.388	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 1: nicht erkannt
                              18:26:26.418	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: X: Licht ausschalten
                              18:26:26.452	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: false, Ack: false, Skript: system.adapter.javascript.0
                              18:26:26.466	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: false, Ack: true, Skript: system.adapter.mqtt.0
                              18:26:26.480	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasRead: false, Ack: true, Skript: system.adapter.mqtt.0
                              
                              

                              Zeile 16 zeigt nun den richtigen Wert an :).
                              Ich denke die Lösung liegt tatsächlich darin zwei Alias zu verwenden. Vielen, vielen Dank @paul53

                              paul53 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @ioMas last edited by paul53

                                @iomas sagte: Ich denke die Lösung liegt tatsächlich darin zwei Adapter zu verwenden.

                                Nein, das muss auch mit einem Alias funktionieren - wie bei mir.

                                EDIT: Welche Node.js-Version?

                                I 1 Reply Last reply Reply Quote 0
                                • I
                                  ioMas @paul53 last edited by ioMas

                                  @paul53
                                  Ich habe an der Version nichts geändert 18.14.0

                                  Dafür habe ich aber noch einmal getestet, diesmal habe ich nicht über die shellyapp das Licht ausgeschaltet sondern über den Alias, dies führte zu einem anderen Output, es wird immer noch korrekt geschaltet, aber es gibt eine andere Ausgabe:

                                  18:47:02.628	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 0: Bewegung
                                  18:47:02.629	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 0.1: Hinweise: Typ:boolean Wert ist: false
                                  18:47:02.630	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 1: erkanntfalse
                                  18:47:02.631	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 2: Licht ist aus
                                  18:47:02.631	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 3: kleiner Schwellwert->Licht anschalten
                                  18:47:02.646	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: true, Ack: false, Skript: system.adapter.javascript.0
                                  18:47:02.660	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: true, Ack: true, Skript: system.adapter.mqtt.0
                                  18:47:02.701	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasRead: true, Ack: true, Skript: system.adapter.mqtt.0
                                  18:47:17.711	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: false, Ack: false, Skript: system.adapter.admin.0
                                  18:47:17.719	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: false, Ack: true, Skript: system.adapter.mqtt.0
                                  18:47:17.753	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasRead: false, Ack: true, Skript: system.adapter.mqtt.0
                                  18:47:34.625	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 0: Bewegung
                                  18:47:34.627	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 1: nicht erkannt
                                  18:48:02.633	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: X: Licht ausschalten
                                  18:48:02.648	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: false, Ack: false, Skript: system.adapter.javascript.0
                                  18:48:28.666	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 0: Bewegung
                                  18:48:28.667	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 0.1: Hinweise: Typ:boolean Wert ist: false
                                  18:48:28.668	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 1: erkanntfalse
                                  18:48:28.669	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 2: Licht ist aus
                                  18:48:28.669	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 3: kleiner Schwellwert->Licht anschalten
                                  18:48:28.685	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: true, Ack: false, Skript: system.adapter.javascript.0
                                  18:48:28.694	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: true, Ack: true, Skript: system.adapter.mqtt.0
                                  18:48:28.718	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasRead: true, Ack: true, Skript: system.adapter.mqtt.0
                                  18:49:00.656	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 0: Bewegung
                                  18:49:00.657	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: 1: nicht erkannt
                                  18:49:28.671	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: X: Licht ausschalten
                                  18:49:28.679	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: false, Ack: false, Skript: system.adapter.javascript.0
                                  18:49:28.687	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasWrite: false, Ack: true, Skript: system.adapter.mqtt.0
                                  18:49:28.721	debug	javascript.0 (545343) script.js.EG.kueche.beweg3: AliasRead: false, Ack: true, Skript: system.adapter.mqtt.0
                                  
                                  

                                  Anscheinend wird wenn ich nativ shelly nutze die Ausgabe (.command) nicht aktualisiert, was aber der Fall ist wenn ich es über den Broker (Adminoberfläche) tue...

                                  paul53 1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 @ioMas last edited by

                                    @iomas sagte: Anscheinend wird wenn ich nativ shelly nutze die Ausgabe (.command) nciht aktualisiert

                                    Ja, natürlich nicht, denn ".command" ist das Kommando von ioBroker an den Shelly.

                                    @iomas sagte in Alias auf Shelly - unerwartete Änderung des Aliastyps:

                                    Version nichts geändert 18.14.0

                                    Ich verwende noch Version 16. Vielleicht macht das den Unterschied?

                                    I 1 Reply Last reply Reply Quote 0
                                    • I
                                      ioMas @paul53 last edited by

                                      @paul53 said in Alias auf Shelly - unerwartete Änderung des Aliastyps:

                                      Ich verwende noch Version 16

                                      Darf ich wissen welche genau? Dann würde ich es mal mit einem downgrade probieren und entsprechend berichten, oder einfach die aktuellste 16er nehmen?

                                      paul53 1 Reply Last reply Reply Quote 0
                                      • paul53
                                        paul53 @ioMas last edited by

                                        @iomas sagte: aktuellste 16er nehmen?

                                        Ja.

                                        I 1 Reply Last reply Reply Quote 0
                                        • I
                                          ioMas @paul53 last edited by

                                          @paul53
                                          Ich habe nun Version 16.16.0
                                          leider hat sich aber am output nichts geändert (Nutzung 1 Alias):

                                          19:13:22.734	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: 0: Bewegung
                                          19:13:22.736	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: 0.1: Hinweise: Typ:boolean Wert ist: false
                                          19:13:22.736	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: 1: erkanntfalse
                                          19:13:22.740	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: 2: Licht ist aus
                                          19:13:22.741	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: 3: kleiner Schwellwert->Licht anschalten
                                          19:13:22.893	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: Alias: true, Ack: true, Skript: system.adapter.mqtt.0
                                          19:13:33.861	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: Alias: false, Ack: true, Skript: system.adapter.mqtt.0
                                          19:13:54.682	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: 0: Bewegung
                                          19:13:54.682	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: 1: nicht erkannt
                                          19:14:22.743	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: X: Licht ausschalten
                                          19:14:33.522	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: 0: Bewegung
                                          19:14:33.526	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: 0.1: Hinweise: Typ:string Wert ist: off
                                          19:14:33.526	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: 0.5: Bugfix wrong typestring Wert ist: off
                                          19:14:33.527	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: 0.5b: aus
                                          19:14:33.527	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: 1: erkanntfalse
                                          19:14:33.527	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: 2: Licht ist aus
                                          19:14:33.527	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: 3: kleiner Schwellwert->Licht anschalten
                                          19:14:33.611	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: Alias: true, Ack: true, Skript: system.adapter.mqtt.0
                                          19:15:05.519	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: 0: Bewegung
                                          19:15:05.521	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: 1: nicht erkannt
                                          19:15:33.529	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: X: Licht ausschalten
                                          19:15:33.560	debug	javascript.0 (554097) script.js.EG.kueche.beweg2: Alias: false, Ack: true, Skript: system.adapter.mqtt.0
                                          
                                          paul53 1 Reply Last reply Reply Quote 0
                                          • paul53
                                            paul53 @ioMas last edited by paul53

                                            @iomas sagte: leider hat sich aber am output nichts geändert (Nutzung 1 Alias):

                                            Dann ist bei der Installation des js-controllers etwas schief gelaufen?

                                            @iomas sagte in Alias auf Shelly - unerwartete Änderung des Aliastyps:

                                            Ich habe nun Version 16.16.0

                                            ioBroker wurde mit dieser Version neu gestartet?

                                            I 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            855
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            alias blockly shellys
                                            3
                                            40
                                            1486
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo