Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Skriptsammlung für den neuen ALEXA2.0 Adapter

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

Skriptsammlung für den neuen ALEXA2.0 Adapter

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
184 Beiträge 45 Kommentatoren 45.2k Aufrufe 19 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • dslraserD Offline
    dslraserD Offline
    dslraser
    Forum Testing Most Active
    schrieb am zuletzt editiert von
    #97

    @haselchen:

    Bei welchem Blocky Punkt sagt sie denn, dass alles geschlossen ist? `

    Schau nochmal in meinen Beitrag über Deinem (da war beim Bilder einfügen was verdreht–-sollte jetzt passen)

    1 Antwort Letzte Antwort
    0
    • haselchenH Offline
      haselchenH Offline
      haselchen
      Most Active
      schrieb am zuletzt editiert von
      #98

      Jawoll, das wars.

      Danke.

      Jetzt haut sie es raus: Aktuell sind alle Fenster geschlossen :D

      Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

      1 Antwort Letzte Antwort
      0
      • dslraserD Offline
        dslraserD Offline
        dslraser
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #99

        @sissiwup:

        @haselchen:

        Hab auf die Version 1.0.0 upgedatet vorhin.

        Mag sein , dass es deswegen jetzt funktioniert :D

        Was sind denn so Gründe , warum Alexa einfach so mal die offenen Fenster ansagt, ohne gefragt zu werden? `

        Hallo,

        ich habe das auch. Die einzige Variante (die ich gefunden habe) das zu umgehen ist eine Variable dazwischen zu schalten.

        D.h. Alexa setzt die Variable Trigger… auf an und das Skript lauscht auf Änderungen an der Variablen.

        Ansonsten erzählt die andauern etwas und wenn du wirklich etwas damit steuerst wird es doof.

        Ich meine jedes Skript starte beim Neustart des Adapters und beim Speichern neu. `

        Kannst Du das bitte mal bissl genauer beschreiben.

        (mich stört es auch das manche Sripte beim Neustart bzw. beim aktualisieren loslaufen. (Ich denke da immer so drann wenn keiner zu Hause ist, oder Urlaub und es gibt einen Fehler bzw. Neustart und der Staubsauger oder der Rasenmäher würde los fahren…)

        Ein Beispiel Deiner Lösung wäre gut, da ich für mich auch noch keine Lösung gefunden habe.

        Edit: Hat sich erledigt, ich habe es für mich nun auch gelöst, wollte ich schon längst mal machen.

        Ich habe jetzt eigene Datenpunkte als Logikwert angelegt und schalte bzw. triggere in den Scripten damit.

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #100

          @mk120:

          eventuell mag das Script mich nicht `
          Du hast das Gewerk den Datenpunkten zugeordnet. Dann muss der Selektor entsprechend angepasst werden.

          const fensterSENSOR = $('[id=*.SENSOR](functions=Fenster)');
          

          Evtl. "Fenster" klein geschrieben, falls die Enum-Objekt-ID lautet enum.functions.fenster.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            Sven_hh
            schrieb am zuletzt editiert von
            #101

            Guten Morgen an alle,

            Das was „dslraser“ angesprochen hat mit dem Neustart des Raspi und dem damit verbundenen ausführen der Scripte nervt mich bzw meine Frau auch <emoji seq="1f60c">😌</emoji> gibt es da generell eine Möglichkeit das zu unterbinden?

            Vg Sven

            VG Sven :idea:

            1 Antwort Letzte Antwort
            0
            • sissiwupS Offline
              sissiwupS Offline
              sissiwup
              schrieb am zuletzt editiert von
              #102

              @Sven_hh:

              Guten Morgen an alle,

              Das was „dslraser“ angesprochen hat mit dem Neustart des Raspi und dem damit verbundenen ausführen der Scripte nervt mich bzw meine Frau auch <emoji seq="1f60c">😌</emoji> gibt es da generell eine Möglichkeit das zu unterbinden?

              Vg Sven `

              Hallo,

              Skripte sollten nie so geschrieben sein, das sie direkt beim Start (ausser Initialisierung, ON-Funktionen) etwas ausführen.

              Wie kann man das bei Alexa-Steuerung machen? So wie bei allen anderen Steuerungen auch:

              Man legt eine Hilfsvariable an, die dann von Alexa gesteuert wird und läßt das Skript darauf warten.

              Der Vorteil ist, man kann hier auch noch an und aus über eine Variable steuern.

              Variable anlegen:
              609_bildschirmfoto_2018-09-13_um_09.04.17.png
              609_bildschirmfoto_2018-09-13_um_09.04.02.png
              Das Skript reagiert auf jede Veränderung, nicht nur an und aus. Der Inhalt der Variablen ist mir hier egal:
              609_bildschirmfoto_2018-09-23_um_23.25.28.png
              Im Cloud-Adapter ein neues Gerät anlegen, Name hierbei egal, die heissen bei mir TriggerLetzterAnruf und mit der Variablen verbinden.

              Der Befehl wird so nicht verwendet.
              609_bildschirmfoto_2018-09-13_um_09.09.18.png
              Neue Geräte suchen lassen in Alexa.

              In der Alexa-App eine neue Routine anlegen, z.B.

              Alexa, Anrufliste und dann TriggerLetzterAnruf hinzufügen. Kann immer auf An gesetzt werden, da wir Aktualisierung horchen (s.o.)

              Wenn man die Werte an/aus z.B. verwenden möchte, dann anstelle TriggerLetzterAnruf einen

              vernünftigen Text verwenden, hier habe ich es nicht gemacht, da dann ja immer noch ein Attribut mit angegeben werden muss

              z.B. Alexa, TriggerLetzerAnruf "an". Deshalb habe ich die Routinen verwendet.

              MfG

              Sissi

              –-----------------------------------------

              1 CCU3 1 CCU2-Gateway 1 LanGateway 1 Pi-Gateway 1 I7 für ioBroker/MySQL


              1 Antwort Letzte Antwort
              0
              • dslraserD Offline
                dslraserD Offline
                dslraser
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #103

                genau so habe ich gestern angefangen alles bei mir umzustellen. (ich wußte es vorher auch nicht besser)

                Dann fährt auch der Staubsauger oder Rasenmäher (oder eben alle anderen geschalteten Geräte) nicht selbst los.

                1 Antwort Letzte Antwort
                0
                • B Offline
                  B Offline
                  Belei
                  schrieb am zuletzt editiert von
                  #104

                  @dslraser:

                  Alexa, sind noch irgendwo Fenster auf…

                  Ich habe meine Ansage/Abfrage über das Gewerk Fenster verändert und lasse mir nun Raumnamen mit geöffneten Fenstern ansagen.

                  Das Gewerk für dieses Script heißt Fenster

                  <u>Wenn bei Euch das Gewerk für Fensterkontakte anders heißt muss das im Script angepasst werden.</u>

                  (mit der Ansage einzelner Fenster wurde bei mir das 250 Zeichen Limit von Alexa speak gesprengt.)

                  Bei mehreren Echos/Alexas wird die Anfrage an dem Gerät beantwortet wo sie gestellt wurde. Ich habe hier mehrere Echos in mehreren Räumen im Blockly, zu sehen an den gelben Kommentaren.

                  Script 1 zum Gewerk Fenster:

                  -…........................... `

                  An welchen Stellen muss ich das den genau ändern? Das Wort Fenster kommt ja ziemlich oft vor.

                  Danke

                  1 Antwort Letzte Antwort
                  0
                  • dslraserD Offline
                    dslraserD Offline
                    dslraser
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #105

                    da![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201809 ... 706729.jpg">https://uploads.tapatalk-cdn.com/20180922/2621ffd9f4619a5963c66ead45706729.jpg</link_text>" />

                    1 Antwort Letzte Antwort
                    0
                    • B Offline
                      B Offline
                      Belei
                      schrieb am zuletzt editiert von
                      #106

                      Danke für die schnelle Antwort, hab ich gefunden und geändert.

                      Ich glaube aber irgentwas läuft bei mir noch nicht…

                      Habe alle 3 Scripte erstellt und aktiviert.

                      Unter Object steht bei Script 1 und 2: True aber bei Script 3 : False

                      Und als ergebniss bei Objects/Fenster/Ansage hab ich alles doppelt:

                      Fenster_Schlafzimmer_links, und Fenster_Schlafzimmer_links, und Fenster_Wohnzimmer_1, und Fenster_Wohnzimmer_1

                      und es werden auch die doppelte Anzahl Fenster gezählt.

                      Und im Log steht:
                      3799_error.jpg

                      1 Antwort Letzte Antwort
                      0
                      • dslraserD Offline
                        dslraserD Offline
                        dslraser
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von
                        #107

                        Das Script zum entfernen doppelter Raumnamen muß unter global laufen, hast Du es da ?

                        Und bitte anschließend den JS Adapter neu starten.

                        1 Antwort Letzte Antwort
                        0
                        • B Offline
                          B Offline
                          Belei
                          schrieb am zuletzt editiert von
                          #108

                          Ja ist unter Global und ein neustart hat leider keine änderung gebracht.

                          Script läuft jetzt ohne Fehler im Log durch aber ergebniss sind immer noch die doppelten Fenster.

                          3799_objects.jpg

                          1 Antwort Letzte Antwort
                          0
                          • dslraserD Offline
                            dslraserD Offline
                            dslraser
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von
                            #109

                            @Belei:

                            Ja ist unter Global und ein neustart hat leider keine änderung gebracht.

                            Script läuft jetzt ohne Fehler im Log durch aber ergebniss sind immer noch die doppelten Fenster.

                            filename="objects.JPG" index="0">~~ `

                            Im Screenshot kann man nicht alles sehen…(also rechts...)

                            Mach mal ein Fenster auf und zu und einen Screenshot wo alles drauf ist.

                            1 Antwort Letzte Antwort
                            0
                            • B Offline
                              B Offline
                              Belei
                              schrieb am zuletzt editiert von
                              #110

                              Hatte 1 Fenster zusätzlich geöffnet dann waren es 8 statt 6.

                              Screenshot:
                              3799_objects1.jpg

                              3799_scripte.jpg

                              1 Antwort Letzte Antwort
                              0
                              • dslraserD Offline
                                dslraserD Offline
                                dslraser
                                Forum Testing Most Active
                                schrieb am zuletzt editiert von
                                #111

                                Hast Du nur das Script neu gestartet ?

                                (kommt mir so vor ?)

                                Starte bitte noch mal den JS Adapter neu, also Deine Instanz vom Adapter.

                                1 Antwort Letzte Antwort
                                0
                                • B Offline
                                  B Offline
                                  Belei
                                  schrieb am zuletzt editiert von
                                  #112

                                  Doch hab schon alles neugestartet( script, js Adapter,Host und komplett den Pie)

                                  3799_java.jpg

                                  1 Antwort Letzte Antwort
                                  0
                                  • dslraserD Offline
                                    dslraserD Offline
                                    dslraser
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von
                                    #113

                                    Hm, dann weiß ich auch nicht was bei Dir schief läuft.

                                    Bitte poste mal Dein Script hier in Code Tags. Dann schaue ich morgen (also heute Vormittag) mal drüber.

                                    1 Antwort Letzte Antwort
                                    0
                                    • B Offline
                                      B Offline
                                      Belei
                                      schrieb am zuletzt editiert von
                                      #114

                                      Super vielen Dank und Gute Nacht.

                                      Scripts1

                                      // Status Zahl Fenster
                                      
                                      var logging = true;
                                      
                                      var idAnzahlAuf = 'javascript.0.Status.Fenster.Anzahl_auf',
                                          idAnzahl = 'javascript.0.Status.Fenster.Anzahl',
                                          idText = 'javascript.0.Status.Fenster.Text',
                                          idRaum = 'javascript.0.Status.Fenster.Raum',
                                          idAnsage = 'javascript.0.Status.Fenster.Ansage';
                                      
                                      // Ab hier nix mehr ändern
                                      createState(idAnzahl, { // wenn benötigt: Anzahl der vorhandenen Fenster
                                          type: 'number',
                                          name: 'Anzahl aller Fenster',
                                          min: 0,
                                          def: 0,
                                          role: 'value'
                                      });
                                      createState(idAnzahlAuf, { // Anzahl der Fenster, die auf sind als Variable unter Javascript.0 anlegen
                                          type: 'number',
                                          name: 'Anzahl der geoeffneten Fenster',
                                          min: 0,
                                          def: 0,
                                          role: 'value'
                                      });
                                      createState(idText, { // Anzahl der geoeffneten Fenster und deren Namen als Variable unter Javascript.0 anlegen
                                          type: 'string',
                                          name: 'geoeffnete Fenster',
                                          desc: 'Namen der geoeffneten Fenster',
                                          def: ' ',
                                          role: 'value'
                                      });
                                      createState(idAnsage, {
                                          type: 'string',
                                          name: 'geoeffnete Fenster (Ansage)',
                                          desc: 'Namen der geoeffneten Fenster (für Ansage aufbereitet)',
                                          def: ' ',
                                          role: 'value'
                                      });
                                      createState(idRaum, { // Räume, in denen Fenster geoeffnet sind
                                          type: 'string',
                                          name: 'Räume mit geoeffneten Fenster',
                                          desc: 'Namen der Räume, in denen Fenster geoeffnet sind',
                                          def: ' ',
                                          role: 'value'
                                      });
                                      
                                      var cacheSelectorState = $('channel[state.id=*.STATE](functions="Verschluss")'); // Gewerk Fenster
                                      
                                      function checkDevices(obj) {
                                          // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Fenster auf 0
                                          var anzahlFensterAuf = 0;
                                          var anzahlFenster = 0;
                                          var textFensterAuf = [];
                                          var textRaum = [];
                                          if (logging) {
                                              log('++++++ Fenster Anzahl ++++ ');
                                              log('#### SCHALTER ##### ');
                                          }
                                          cacheSelectorState.each(function(id, i) { // Schleife für jedes gefundenen Element *.STATE im Gewerk Fenster
                                              var obj = getObject(id);
                                              var name = getObject(id).common.name;
                                              var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element)
                                              var devicename = name.substring(0, name.indexOf(".STATE")); //.state aus Text entfernen
                                              var raumname = getObject(id, "rooms");
                                      
                                              if (logging) {
                                                  log('-------');
                                                  log('Kanal: ' + name);
                                                  log('Status: ' + status);
                                              }
                                              if (status) { // wenn Zustand = true, dann wird die Anzahl der Fenster hochgezählt
                                                  ++anzahlFensterAuf;
                                                  textFensterAuf.push(devicename); // Zu Array hinzufügen
                                                  textRaum.push(raumname.enumNames); //
                                              }
                                              ++anzahlFenster; // Zählt die Anzahl der vorhandenen Fenster unabhängig vom Status
                                              });
                                      
                                      textRaum = deleteDuplicates(textRaum); 
                                      
                                          // Array mit Fensternamen sortieren
                                          textFensterAuf.sort();
                                          textRaum.sort();
                                          // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon auf) ausgegeben
                                          if (logging) log("Text: " + textFensterAuf);
                                          if (logging) log("Anzahl Fenster: " + anzahlFenster + " # davon Fenster auf: " + anzahlFensterAuf);
                                          // die ermittelten Werte werden als javascript.0\. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
                                          setState(idText, textFensterAuf.join(', und ')); // Schreibt die aktuelle Namen der geoeffneten Fenster
                                          setState(idAnzahlAuf, textFensterAuf.length); // Schreibt die aktuelle Anzahl der geoeffneten Fenster
                                          setState(idAnzahl, anzahlFenster); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Fenster
                                          // setState(idRaum, textRaum.join(',
                                      ')); // Räume, in denen Fenster geoeffnet sind
                                          setState(idRaum, textRaum.join(', und ')); // Räume, in denen Fenster geoeffnet sind
                                      }
                                      
                                      // Trigger
                                      cacheSelectorState.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk Fenster
                                          if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
                                          checkDevices();
                                      });
                                      
                                      function main() {
                                          setTimeout(function() {
                                              if (logging) log('Auslöser Skriptstart');
                                              checkDevices();
                                          }, 2000);
                                      }
                                      
                                      main(); // Skriptstart-Auslöser
                                      
                                      // Aufbereitung für Ansage
                                      function strip_tags(data) {
                                          var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " ");
                                          return (rueckgabe);
                                      }
                                      
                                      on(idText, function(obj) {
                                          var text = obj.state.val;
                                          text = (getState(idAnzahl).val > 0) ? '' + strip_tags(text) : 'Alle Fenster sind ausgeschaltet';
                                          setState(idAnsage, text);
                                      });
                                      

                                      Script2 (global)

                                      // Funktion: Doppelte Einträge aus Array entfernen (für Räume) www.okco.de (c) codemaster
                                      function deleteDuplicates(arr) { 
                                          var temp = {}; 
                                          for (var i = 0; i < arr.length; i++) temp[arr[i]] = true; 
                                          var r = []; 
                                          for (var k in temp) r.push(k); 
                                          return r;
                                      }
                                      

                                      Script3 (import in Blocky) und die Echos noch nicht angepasst

                                      var Ausgabetext, timeout, timeout2;
                                      
                                      setState("alexa2.0.History.#trigger"/*Trigger/Rescan*/, true);
                                      if (getState("javascript.0.Status.Fenster.Anzahl_auf").val == 0) {
                                        Ausgabetext = String('aktuell sind') + String(getState("javascript.0.Status.Fenster.Ansage").val);
                                        timeout = setTimeout(function () {
                                          // Wohnzimmer
                                          if (getState("alexa2.0.History.name").val == 'Wohnzimmer') {
                                            setState("alexa2.0.Echo-Devices.xxx.Commands.speak", Ausgabetext);
                                          }
                                          // Küche
                                          if (getState("alexa2.0.History.name").val == 'Küche') {
                                            setState("alexa2.0.Echo-Devices.xxx.Commands.speak", Ausgabetext);
                                          }
                                          // Badezimmer
                                          if (getState("alexa2.0.History.name").val == 'Badezimmer') {
                                            setState("alexa2.0.Echo-Devices.xxx.Commands.speak", Ausgabetext);
                                          }
                                          // Gästezimmer
                                          if (getState("alexa2.0.History.name").val == 'Gästezimmer') {
                                            setState("alexa2.0.Echo-Devices.xxx.Commands.speak", Ausgabetext);
                                          }
                                          // Flur
                                          if (getState("alexa2.0.History.name").val == 'Flur') {
                                            setState("alexa2.0.Echo-Devices.xxx.Commands.speak", Ausgabetext);
                                          }
                                          // Schlafzimmer
                                          if (getState("alexa2.0.History.name").val == 'Schlafzimmer') {
                                            setState("alexa2.0.Echo-Devices.xxx.Commands.speak", Ausgabetext);
                                          }
                                          // Keller-Flur
                                          if (getState("alexa2.0.History.name").val == 'Keller-Flur') {
                                            setState("alexa2.0.Echo-Devices.xxx.Commands.speak", Ausgabetext);
                                          }
                                          // Werkstatt
                                          if (getState("alexa2.0.History.name").val == 'Werkstatt') {
                                            setState("alexa2.0.Echo-Devices.xxx.Commands.speak", Ausgabetext);
                                          }
                                        }, 500);
                                      }
                                      if (getState("javascript.0.Status.Fenster.Anzahl_auf").val != 0) {
                                        Ausgabetext = ['Im Moment sind im ',getState("javascript.0.Status.Fenster.Raum").val,'geöffnete Fenster'].join('');
                                        timeout2 = setTimeout(function () {
                                          // Wohnzimmer
                                          if (getState("alexa2.0.History.name").val == 'Wohnzimmer') {
                                            setState("alexa2.0.Echo-Devices.xxx.Commands.speak", Ausgabetext);
                                          }
                                          // Küche
                                          if (getState("alexa2.0.History.name").val == 'Küche') {
                                            setState("alexa2.0.Echo-Devices.xxx.Commands.speak", Ausgabetext);
                                          }
                                          // Badezimmer
                                          if (getState("alexa2.0.History.name").val == 'Badezimmer') {
                                            setState("alexa2.0.Echo-Devices.xxx.Commands.speak", Ausgabetext);
                                          }
                                          // Gästezimmer
                                          if (getState("alexa2.0.History.name").val == 'Gästezimmer') {
                                            setState("alexa2.0.Echo-Devices.xxx.Commands.speak", Ausgabetext);
                                          }
                                          // Flur
                                          if (getState("alexa2.0.History.name").val == 'Flur') {
                                            setState("alexa2.0.Echo-Devices.xxx.Commands.speak", Ausgabetext);
                                          }
                                          // Schlafzimmer
                                          if (getState("alexa2.0.History.name").val == 'Schlafzimmer') {
                                            setState("alexa2.0.Echo-Devices.xxx.Commands.speak", Ausgabetext);
                                          }
                                          // Keller-Flur
                                          if (getState("alexa2.0.History.name").val == 'Keller-Flur') {
                                            setState("alexa2.0.Echo-Devices.xxx.speak", Ausgabetext);
                                          }
                                          // Werkstatt
                                          if (getState("alexa2.0.History.name").val == 'Werkstatt') {
                                            setState("alexa2.0.Echo-Devices.xxx.Commands.speak", Ausgabetext);
                                          }
                                        }, 500);
                                      }
                                      
                                      //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiU0MEo3JTQwb2IlMkZyc1I5T0NZTiUyQiFoSTclMjIlMjB4JTNEJTIyLTUxMyUyMiUyMHklM0QlMjItMTA2MyUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFYWxleGEyLjAuSGlzdG9yeS4lMjN0cmlnZ2VyJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyb0klNURLUy0lMjM3JTdCJTYwTGgoVyUyMyU1RE1CN0MlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIyJTdCX0pUJTdDM01wdip0U09WV0QzUHo2JTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyRCUzRiUyQypRR0JCd2F1Q20lMkNRdGUlM0RRLSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFRVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMiU1RGlyTHdMV0d1bCU1RC54JTdCbSU2MC4lMjMuJTQwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlN0YXR1cy5GZW5zdGVyLkFuemFobF9hdWYlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMjVMTDZ4aTRGXzclN0QtYUVpJTVFakhZJTQwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyNVZGZkhZVEIhUzdBJTVFQSolM0ZTaWNBJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTNFQXVzZ2FiZXRleHQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dF9qb2luJTIyJTIwaWQlM0QlMjI0JTNGayU1QjByZUNSbi5tamt4SGc0MX4lMjIlM0UlM0NtdXRhdGlvbiUyMGl0ZW1zJTNEJTIyMiUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMjc1WilXbiU2MFlGJTQwJTNCMzh+YklNJTNCcEElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFYWt0dWVsbCUyMHNpbmQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJWaCUyRjhyeFUlNUR5RCEzbVQlN0QweSU1QmVDJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlN0YXR1cy5GZW5zdGVyLkFuc2FnZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfc2V0dGltZW91dCUyMiUyMGlkJTNEJTIyeEFfTUolNUUlNDAlM0RBQiUzRC1XdERUZSgzJTdEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRXRpbWVvdXQlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZJTIyJTNFNTAwJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFbXMlM0MlMkZmaWVsZCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJzMzBiMiU3QmZTUSUzQWEwdUMzJTYwJTJCUVdVJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRVdvaG56aW1tZXIlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIybChFMjQlM0RxJTVEbCU1RGIlMkNHSkRqNGRTaiUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMk1Ld0puMEMhTyU1RHhjIX4uOSU3Q0IlNjAqJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIycC1TSGJKNURtd3I2ZGp4ZzJvaEglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VhbGV4YTIuMC5IaXN0b3J5Lm5hbWUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTNGJTdEQSUzQjgoSXlNRiUyNUYlNDAodCU1REtjfiUyQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VXb2huemltbWVyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjIpTSU1RWpMY1ohaENwaiUyQ1glM0QlN0ItJTYwblYlMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy54eHguQ29tbWFuZHMuc3BlYWslM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJwKWJOT2RjWkZWb3ExZSU1RU01Vi0uJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTNFQXVzZ2FiZXRleHQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJBcyUyQ2RHKHhPJTVCQiU0MHdJWWN5QUclM0ZoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUslQzMlQkNjaGUlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIyd3JILSU3RFAoODRtbjdZJTJGcmc4QSU1Qi4lMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJrZy5RS0I3NTFOYVMlMjNJaGsxVmxnJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIycW5UejFPZTMxc3ElM0FOWGptYnhJSiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkhpc3RvcnkubmFtZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjIzJTNEVy4lM0ZjOEJaTiUyQlFyR1g0eEwlN0RoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRUslQzMlQkNjaGUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiU3RCUzRmRLJTJCJTJCKlYuN0pRY2pHJTdCM3VoQiUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFYWxleGEyLjAuRWNoby1EZXZpY2VzLnh4eC5Db21tYW5kcy5zcGVhayUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMnFIb04lNUR+dTFGSSU0MGlEUXMqMkMydiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUzRUF1c2dhYmV0ZXh0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyX2FteHo2QiUzRDlGJTdEXzJ1RUdzSyU3RCU2MCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VCYWRlemltbWVyJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMi5uN0p0R3dESkRHZmFleWwhOCpCJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIySS0lNDA5JTI1JTdCTmchJTI1JTdEOXJFJTIzSUVTYyUzQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFRVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMmMlM0ZkU2VHIWZ1JTVEVzhVTyU0MCUzRkQ0STMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VhbGV4YTIuMC5IaXN0b3J5Lm5hbWUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyTWl2R1YlNDAqa3QpM3JZOUNPS3BLQSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VCYWRlemltbWVyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJ6VHdYY35yOExkdDB1LTVUTmNWbiUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFYWxleGEyLjAuRWNoby1EZXZpY2VzLnh4eC5Db21tYW5kcy5zcGVhayUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMipYKn5xUUczJTVEfiU1Qk5DJTdCV01NbmRXJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTNFQXVzZ2FiZXRleHQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJDSk5HNTklNUIlM0ZDSiU3Q1UtJTNEQmYlNURjKXolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFRyVDMyVBNHN0ZXppbW1lciUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJPQyU1RGsxXyU3RGlEbEV4UVBWYyUzRChpYiUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMk9CSVh3NmhKJTQwJTVEMlhyJTYwSEJJejVoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyJTNEeH41VylucyUyRlZWJTNCYyU3Q1JGcVFjRSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkhpc3RvcnkubmFtZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJJeFclM0FocGxJdkRRbTFheCUzRCU0MFglMkJNJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRUclQzMlQTRzdGV6aW1tZXIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMmclMkIyJTVEd3ZzcmhSOHZ4djdjJTJDa0pfJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VhbGV4YTIuMC5FY2hvLURldmljZXMueHh4LkNvbW1hbmRzLnNwZWFrJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyNXE2JTJGen5TJTYwMERlSjZzWXJXaGoxJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTNFQXVzZ2FiZXRleHQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJDNiUyQ3dTaCUzRkJFWiUyQ0clM0FCOVRsJTQwJTIzdyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VGbHVyJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMmwlMkZnJTQwVU53NnB6ZVE2XzY5OFIlM0EtJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyJTNEWilENnFyQ3pZMm9VJTJGZlZWOTNBJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyU3RzYUcyQ0IlM0IqNWY1d0l2SCUyQ2tFJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFYWxleGEyLjAuSGlzdG9yeS5uYW1lJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMjdOJTNCeXk3Y0MlM0R0RSU2MCU3RE1ZT0ZmRjYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRmx1ciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyNSUyMy1WODg3UWhDQ1NBekklMkJ0d29rJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VhbGV4YTIuMC5FY2hvLURldmljZXMueHh4LkNvbW1hbmRzLnNwZWFrJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyTnVyRSUzQSUyNUtfeiElNUVWbGooZm41cUklMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlM0VBdXNnYWJldGV4dCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMnFLRDNiRHhIViUzQk5CdHVGRnMlN0NlLiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VTY2hsYWZ6aW1tZXIlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIyaU16KEglN0RjMSUyM05PJTQwS1ZObmhubFElMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJ6JTYwdnl5QVd2YVlkeHQ4WVp0JTJDME8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJtRUYpbmFxd0olMjN4TENlMU5lS08lM0ElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VhbGV4YTIuMC5IaXN0b3J5Lm5hbWUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyRjclM0ElM0FmYjRjb2tlSkpEJTNBZmt+cFYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFU2NobGFmemltbWVyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjIlN0IycyUyRmglMkZ4cGttJTVERiUyQjFpay1mNG0lMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy54eHguQ29tbWFuZHMuc3BlYWslM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJmdDdVZjMzJTQwSUIxenVfeGRUQXhuJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTNFQXVzZ2FiZXRleHQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJ3SVlaMWJMT1NqRmklM0ROeFQ5V2NNJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUtlbGxlci1GbHVyJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMiUyNUVFSyhwS0olMjVsR28pMzJjUjdxRiUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMjdNYihhbk0lNURrUjkwNTYpZ3hxblclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJ4Rn5iNyU2MCU3QmZWJTdDJTdDNG4lN0R6Qi0lN0QudSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkhpc3RvcnkubmFtZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJWSCU1RTJDSnNQR09kITZoR29xZEs0JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRUtlbGxlci1GbHVyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJGXyU1QnhlelhleXJ+KihBJTNEcS5ZRkolMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy54eHguQ29tbWFuZHMuc3BlYWslM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJTanRySUolM0ZnQTIwb2o4OE4lN0NzcmIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlM0VBdXNnYWJldGV4dCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMkUlMjNEMWElMkYlMkNyY0glNjBkbTMlM0ZOeCU1RSUzQXElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFV2Vya3N0YXR0JTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMiUzRHN+ZCUzQS1XSWcxJTIzVEUlNjAlNUV6ZjklNUI0JTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyKiUzQVglMjVWTSU1RSUyQjJNb1lsLSUzQXUhV0slNjAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjI2Zm5SV3lLMCUzQlAoLnglM0JIJTdCKTIyVCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkhpc3RvcnkubmFtZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJTJTNBJTIza2VSRU53MWdHakhXTFVEIS0lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFV2Vya3N0YXR0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJxbCU0MCU2MDQoUE50alNfQU0wYkVxRCUyQiUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFYWxleGEyLjAuRWNoby1EZXZpY2VzLnh4eC5Db21tYW5kcy5zcGVhayUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlAlNUJvak1xUURWUm91dSUyM3ZOfiU3QiU1QiUyNSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUzRUF1c2dhYmV0ZXh0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJOJTJCRiUyQiUyRmZZYkRlTVpMJTIzKEhhRW8lN0MlMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJUJTJCKW5aKCU1RHc0TGdEWSUyRiU3QyUzRnA1NmclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRU5FUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyayUzREJYZEV1UW83JTNGTW8lMjViZGZkbmclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuU3RhdHVzLkZlbnN0ZXIuQW56YWhsX2F1ZiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyai1ibEd5QyUzQlY0alRMSEt2aWtYciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMm1rJTJDLS1uJTI1OHglN0RlMVdzaE9DQmMuJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTNFQXVzZ2FiZXRleHQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dF9qb2luJTIyJTIwaWQlM0QlMjJFdzNWVHc3cUclN0NGeCUzQSU3RHZxM2hJUiUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIzJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyTG8wJTQwckdzTiU1RWd0MWlaJTIzJTQwfkElMkY3JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRUltJTIwTW9tZW50JTIwc2luZCUyMGltJTIwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyaSUzRiU1QlplJTJDVzIzJTdDTSU2MF9TNSU0MGQlM0YlM0JxJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlN0YXR1cy5GZW5zdGVyLlJhdW0lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQyJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyTnFFb2I5JTNCOFVUMTF3VCU2MGRDUWklMjMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFZ2UlQzMlQjZmZm5ldGUlMjBGZW5zdGVyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0aW1lb3V0c19zZXR0aW1lb3V0JTIyJTIwaWQlM0QlMjIlNUVjJTJDYlEpJTVFISU1QihIR3oyUXJXdyUyRnUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFdGltZW91dDIlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZJTIyJTNFNTAwJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFbXMlM0MlMkZmaWVsZCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjIzZTUlNUJjUi1sUTJQJTQwZzMtViU1RFQuKiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VXb2huemltbWVyJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMkthdXhXVUVKQVAyc3ApRCUyNUNkbTklMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJGNE1LKGZiWThXVSU1QnlXTyklNDBafk8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJPZSU0MClWTSUyQjFZJTYwXzFZSm4lM0Y2eHlsJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFYWxleGEyLjAuSGlzdG9yeS5uYW1lJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMlE4JTQwVDhxJTdDUCU1REQqV1I2YUclMjMqajAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFV29obnppbW1lciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyciU3Q3clM0ZHS0YyUjhBJTI1V1NYJTQwQVAlNUIlN0MlMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy54eHguQ29tbWFuZHMuc3BlYWslM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJIVGNLZDJWOUYpJTNEayUzQUFlNG1TJTdERiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUzRUF1c2dhYmV0ZXh0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyTGclNDAlM0FoYS1hMnglMkMwcmZoQy4lNURfJTNEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUslQzMlQkNjaGUlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIyRFRXRDNLS19mMkNtb3dXbCU3RER3JTJCJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyKnJ+ayUyNVBvIXZ6VVFIeWJVJTYwKXN2JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyMjg1TCUyQ3FUJTQwZVdrWlMoJTIzaGdYbmwlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VhbGV4YTIuMC5IaXN0b3J5Lm5hbWUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIydyFIdE0lMkNuYiUyQ0tJMWFxYU9lSTM2JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRUslQzMlQkNjaGUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMl9IJTdCJTI1azRiJTdDc2ohJTNBUCU1RXJEdSUyNSU3RCUzQiUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFYWxleGEyLjAuRWNoby1EZXZpY2VzLnh4eC5Db21tYW5kcy5zcGVhayUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMn41MUI4KDMlN0JzdHExQnBSMUp+cCUyNSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUzRUF1c2dhYmV0ZXh0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyMFklM0I4YyUzRFJHJTI1ZiUzQnFxUDJ5eWpibSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VCYWRlemltbWVyJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMkpTJTYwemZwcVp+TmlCaFd4YV8lM0JnSCUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMi03QVZXcHNhNDJMYWxKc2VxenYlN0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJjbTZzTXIlN0MqcENzeHglN0I5dUNNcm0lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VhbGV4YTIuMC5IaXN0b3J5Lm5hbWUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyNyUyQnN6eUliQkJQIWR0Q35EMWgpTyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VCYWRlemltbWVyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJIZyUzQkRxJTI1Z0pFWGclN0JTTFYlM0J0NiU3QjYlMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy54eHguQ29tbWFuZHMuc3BlYWslM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjIqbFglN0JaTSU2MFZCVGMlN0RBJTYwMSFnTTlIJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTNFQXVzZ2FiZXRleHQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjIlM0FLYSUyQlcqdXdJViUzQWgocGp6cV9oJTJDJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUclQzMlQTRzdGV6aW1tZXIlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIyVWclMjM4bUgxRkkhaWNLJTJGKVFFWWpRJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyKSU0MDc2cTRNWiUyRiU3RG9DSF9tTEtXTzQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJpSS1Ia3ZVWEZDJTQwJTNCJTNCXyUyQiU1QlRjUlAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VhbGV4YTIuMC5IaXN0b3J5Lm5hbWUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTIzJTNBJTNERHAlNUREdDFnaWwqV09QaiUyRmglN0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRyVDMyVBNHN0ZXppbW1lciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyeW9IbnolNUVXRzU4JTNEJTJCWCklN0NTLXU4JTIzJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VhbGV4YTIuMC5FY2hvLURldmljZXMueHh4LkNvbW1hbmRzLnNwZWFrJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyWThMSENQUEguLk9uRUpOJTVFc2pGUSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUzRUF1c2dhYmV0ZXh0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyITQwTW1ndSlUMEEzLXFQYUY5eU8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFRmx1ciUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJiJTJGU2dFMVlqVCUyQ2xkJTVCbm4lN0QlN0IlMjVSSCUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMmMpU2pXJTNCamVYJTdDJTIzRmglMkZDaGElMkMlMkMzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIySDklM0QlN0RGJTJGIVhLWTlVQm5uYnJ+RCUyRiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkhpc3RvcnkubmFtZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJyJTVFRWdJIUZRJTNCLURQV0ZGX0QhQzElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRmx1ciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyJTNCN2p5b3U5ZiUyQlYoJTYwNSoqJTNCQ0RWJTNGJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VhbGV4YTIuMC5FY2hvLURldmljZXMueHh4LkNvbW1hbmRzLnNwZWFrJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyUV9rOWtTSlZOUDVlJTI1YTgoKHhoZSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUzRUF1c2dhYmV0ZXh0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyJTYwJTNGazhZTCU1QiUzQiFtRTUlM0ItTmRkVlRjJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRVNjaGxhZnppbW1lciUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJ6eWVBbjN3TWMhJTNCaFlaRGhLKWh5JTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyYnElM0RCLXJHJTdEc3clN0Q3Z0cxJTdCJTJGWS0uJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyWnIlNjBTLWw4RSElN0Q4LjQlN0IlMkNxTTkqaSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkhpc3RvcnkubmFtZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJ0ZSUyQmdTd2hXaVZSNCUyQ3NjWVYlMjVjYSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VTY2hsYWZ6aW1tZXIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMmdySDYlMjN3aFkxLk4tcSU1QnBMTTVYLiUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFYWxleGEyLjAuRWNoby1EZXZpY2VzLnh4eC5Db21tYW5kcy5zcGVhayUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMiU1QmhNZiU1RSUzQnAlN0MlMkNDYVpWeWQlMkJxVG1+JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTNFQXVzZ2FiZXRleHQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJOMyU0MEsyQlJDN0M1TjlkYUJ5Y3ZfJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUtlbGxlci1GbHVyJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMkhQeE9keHM0TiUyNWoydW1XVGZVTkclMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJEWCUzRGtDUSUyRiUyQ0U2a3FZc1ElN0QlMkYlM0QlNUJlJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyWGlvblBSYTkxblExNk5LKE45JTJCLiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkhpc3RvcnkubmFtZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJaQiU3RG1FV0VSS1olMkZmYn4qTHdkMUElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFS2VsbGVyLUZsdXIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMmtQTEclMkI5ZGVjZyppR1VtODclNjAtMiUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFYWxleGEyLjAuRWNoby1EZXZpY2VzLnh4eC5zcGVhayUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMiU3RC5JJTJCNy1Gcnc0ZmpqMS1OJTVCQWVQJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTNFQXVzZ2FiZXRleHQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJDfkw5dyU1QkdfYi5IYiolMjU3b1R+YUUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFV2Vya3N0YXR0JTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMiU2MCUzQm90JTdDaSUzQSopSSU3Q0V3VyU0MHpTJTJDQjIlMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJIIWxkU1l0UiU3Q0MlN0MlNUVWY3F4UyUzQlh0JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIySSlvNkEyVTIoJTJDQTdlJTdDNC44bG8uJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFYWxleGEyLjAuSGlzdG9yeS5uYW1lJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMnM0b3dTLld3KSU3QjZheWVrJTNGVnpGYiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VXZXJrc3RhdHQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMjVHaCphVmwteChJUENuRiU0MDUlMkM1JTJGJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VhbGV4YTIuMC5FY2hvLURldmljZXMueHh4LkNvbW1hbmRzLnNwZWFrJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyZG1PJTdCeVIlM0IlN0NnJTQwKHJaSkUlMkNIWDRrJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTNFQXVzZ2FiZXRleHQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnhtbCUzRQ==
                                      
                                      1 Antwort Letzte Antwort
                                      0
                                      • dslraserD Offline
                                        dslraserD Offline
                                        dslraser
                                        Forum Testing Most Active
                                        schrieb am zuletzt editiert von
                                        #115

                                        Hier nochmal das Script was ich einsetze, abgeändert auf Verschluss.

                                        ! ````
                                        // Status Fenster. Das Script zählt alle Fenster im Gewerk Verschluss mit der id=*.STATE
                                        ! var logging = true;
                                        ! var
                                        idAnzahlAuf = 'javascript.0.Status.Fenster.Anzahl_auf',
                                        idAnzahl = 'javascript.0.Status.Fenster.Anzahl',
                                        idText = 'javascript.0.Status.Fenster.Text',
                                        idRaum = 'javascript.0.Status.Fenster.Raum',
                                        idAnsage = 'javascript.0.Status.Fenster.Ansage';
                                        ! // Ab hier nix mehr ändern
                                        createState(idAnzahl, { // Anzahl der vorhandenen Fenster
                                        type: 'number',
                                        name: 'Anzahl aller Fenster',
                                        min: 0,
                                        def: 0,
                                        role: 'value'
                                        });
                                        createState(idAnzahlAuf, { // Anzahl der Fenster, die auf sind
                                        type: 'number',
                                        name: 'Anzahl der geoeffneten Fenster',
                                        min: 0,
                                        def: 0,
                                        role: 'value'
                                        });
                                        createState(idText, { // Anzahl der geoeffneten Fenster und deren Namen
                                        type: 'string',
                                        name: 'geoeffnete Fenster',
                                        desc: 'Namen der geoeffneten Fenster',
                                        def: ' ',
                                        role: 'value'
                                        });
                                        createState(idAnsage, {
                                        type: 'string',
                                        name: 'geoeffnete Fenster (Ansage)',
                                        desc: 'Namen der geoeffneten Fenster (für Ansage aufbereitet)',
                                        def: ' ',
                                        role: 'value'
                                        });
                                        createState(idRaum, { // Räume, in denen Fenster geoeffnet sind
                                        type: 'string',
                                        name: 'Räume mit geoeffneten Fenster',
                                        desc: 'Namen der Räume, in denen Fenster geoeffnet sind',
                                        def: ' ',
                                        role: 'value'
                                        });
                                        ! var cacheSelectorState = $('channelstate.id=*.STATE'); // Gewerk Verschluss
                                        ! function checkDevices(obj) {
                                        // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Verschluss auf 0
                                        var anzahlFensterAuf = 0;
                                        var anzahlFenster = 0;
                                        var textFensterAuf = [];
                                        var textRaum = [];
                                        if (logging) {
                                        log('++++++ Fenster Anzahl ++++ ');
                                        log('#### SCHALTER ##### ');
                                        }
                                        cacheSelectorState.each(function(id, i) { // Schleife für jedes gefundenen Element *.STATE im Gewerk Verschluss
                                        var obj = getObject(id);
                                        var name = getObject(id).common.name;
                                        var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element)
                                        var devicename = name.substring(0, name.indexOf(".STATE")); //.STATE aus Text entfernen
                                        var raumname = getObject(id, "rooms");
                                        ! if (logging) {
                                        log('-------');
                                        log('Kanal: ' + name);
                                        log('Status: ' + status);
                                        }
                                        if (status) { // wenn Zustand = true, dann wird die Anzahl der Fenster hochgezählt
                                        ++anzahlFensterAuf;
                                        textFensterAuf.push(devicename); // Zu Array hinzufügen
                                        textRaum.push(raumname.enumNames); //
                                        }
                                        ++anzahlFenster; // Zählt die Anzahl der vorhandenen Fenster unabhängig vom Status
                                        });

                                        textRaum = deleteDuplicates(textRaum); 
                                        
                                        // Array mit Fensternamen sortieren
                                        textFensterAuf.sort();
                                        textRaum.sort();
                                        // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon auf) ausgegeben
                                        if (logging) log("Text: " + textFensterAuf);
                                        if (logging) log("Anzahl Fenster: " + anzahlFenster + " # davon Fenster auf: " + anzahlFensterAuf);
                                        // die ermittelten Werte werden als javascript.0\. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
                                        setState(idText, textFensterAuf.join(',\nund\n')); // Schreibt die aktuelle Namen der geoeffneten Fenster
                                        setState(idAnzahlAuf, textFensterAuf.length); // Schreibt die aktuelle Anzahl der geoeffneten Fenster
                                        setState(idAnzahl, anzahlFenster); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Verschluss
                                        // setState(idRaum, textRaum.join(',
                                        

                                        ')); // Räume, in denen Fenster geoeffnet sind
                                        setState(idRaum, textRaum.join(',\nund\n')); // Räume, in denen Fenster geoeffnet sind
                                        }

                                        ! // Trigger
                                        cacheSelectorState.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk Verschluss
                                        if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
                                        checkDevices();
                                        });
                                        ! function main() {
                                        setTimeout(function() {
                                        if (logging) log('Auslöser Skriptstart');
                                        checkDevices();
                                        }, 2000);
                                        }
                                        ! main(); // Skriptstart-Auslöser
                                        ! // Aufbereitung für Ansage
                                        function strip_tags(data) {
                                        var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " ");
                                        return (rueckgabe);
                                        }
                                        ! on(idText, function(obj) {
                                        var text = obj.state.val;
                                        text = (text.length > 1) ? ' ' + strip_tags(text) : 'Alle Fenster geschlossen';
                                        setState(idAnsage, text);
                                        });

                                        
                                        Halte mal Dein Script an und lösche die erstellten Datenpunkte. Dann das Script hier einfügen und starten. Sollte wieder bzw. immer noch was doppelt sein dann starte noch einmal den JS Adapter neu.
                                        
                                         ![3822_js-adapter.jpg](/assets/uploads/files/3822_js-adapter.jpg) 
                                        
                                        Wenn es dann immer noch nicht läuft, zeige mal Deine Aufzählungen
                                        
                                         ![3822_funktion.jpg](/assets/uploads/files/3822_funktion.jpg) 
                                        1 Antwort Letzte Antwort
                                        0
                                        • B Offline
                                          B Offline
                                          Belei
                                          schrieb am zuletzt editiert von
                                          #116

                                          Funktioniert leider immer noch nicht…

                                          Habe den Script gestopt ersetzt, die Datenpunkte Fenste gelöscht und js neugestartet.

                                          Punkte wurden wieder neu angelegt.

                                          Sollte denn bei Script2 auch true kommen?

                                          Log von script1

                                          12:06:55.830	[info]	javascript.0 Start javascript script.js.common.Skript1
                                          12:06:55.830	[info]	javascript.0 script.js.common.Skript1: registered 27 subscriptions and 0 schedules
                                          12:06:57.021	[info]	javascript.0 script.js.common.Skript1: Auslöser Skriptstart
                                          12:06:57.022	[info]	javascript.0 script.js.common.Skript1: ++++++ Fenster Anzahl ++++
                                          12:06:57.022	[info]	javascript.0 script.js.common.Skript1: #### SCHALTER #####
                                          12:06:57.023	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.023	[info]	javascript.0 script.js.common.Skript1: Kanal: Test_Kontakt_oben_benni:1.STATE
                                          12:06:57.024	[info]	javascript.0 script.js.common.Skript1: Status: false
                                          12:06:57.025	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.026	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Wohnzimmer_2_links.STATE
                                          12:06:57.026	[info]	javascript.0 script.js.common.Skript1: Status: false
                                          12:06:57.027	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.028	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Wohnzimmer_1.STATE
                                          12:06:57.028	[info]	javascript.0 script.js.common.Skript1: Status: false
                                          12:06:57.029	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.030	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Wohnzimmer_2_rechts.STATE
                                          12:06:57.030	[info]	javascript.0 script.js.common.Skript1: Status: true
                                          12:06:57.031	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.031	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Schlafzimmer_rechts.STATE
                                          12:06:57.032	[info]	javascript.0 script.js.common.Skript1: Status: false
                                          12:06:57.033	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.034	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Schlafzimmer_links.STATE
                                          12:06:57.034	[info]	javascript.0 script.js.common.Skript1: Status: true
                                          12:06:57.035	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.035	[info]	javascript.0 script.js.common.Skript1: Kanal: Tür_Wohnzimmer_Wintergarten.STATE
                                          12:06:57.036	[info]	javascript.0 script.js.common.Skript1: Status: false
                                          12:06:57.037	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.037	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Hwr:1.STATE
                                          12:06:57.040	[info]	javascript.0 script.js.common.Skript1: Status: true
                                          12:06:57.041	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.042	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Kinderzimmer.STATE
                                          12:06:57.043	[info]	javascript.0 script.js.common.Skript1: Status: false
                                          12:06:57.044	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.044	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Wohnzimmer_4_links:1.STATE
                                          12:06:57.045	[info]	javascript.0 script.js.common.Skript1: Status: false
                                          12:06:57.045	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.046	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Badezimmer.STATE
                                          12:06:57.047	[info]	javascript.0 script.js.common.Skript1: Status: true
                                          12:06:57.047	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.048	[info]	javascript.0 script.js.common.Skript1: Kanal: Test_Kontakt_oben_benni:1.STATE
                                          12:06:57.048	[info]	javascript.0 script.js.common.Skript1: Status: false
                                          12:06:57.049	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.049	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Wohnzimmer_2_links.STATE
                                          12:06:57.050	[info]	javascript.0 script.js.common.Skript1: Status: false
                                          12:06:57.050	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.051	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Wohnzimmer_1.STATE
                                          12:06:57.051	[info]	javascript.0 script.js.common.Skript1: Status: false
                                          12:06:57.052	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.052	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Wohnzimmer_2_rechts.STATE
                                          12:06:57.053	[info]	javascript.0 script.js.common.Skript1: Status: true
                                          12:06:57.053	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.054	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Schlafzimmer_rechts.STATE
                                          12:06:57.054	[info]	javascript.0 script.js.common.Skript1: Status: false
                                          12:06:57.055	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.056	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Schlafzimmer_links.STATE
                                          12:06:57.056	[info]	javascript.0 script.js.common.Skript1: Status: true
                                          12:06:57.056	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.057	[info]	javascript.0 script.js.common.Skript1: Kanal: Tür_Wohnzimmer_Wintergarten.STATE
                                          12:06:57.057	[info]	javascript.0 script.js.common.Skript1: Status: false
                                          12:06:57.058	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.058	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Hwr:1.STATE
                                          12:06:57.059	[info]	javascript.0 script.js.common.Skript1: Status: true
                                          12:06:57.059	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.059	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Kinderzimmer.STATE
                                          12:06:57.060	[info]	javascript.0 script.js.common.Skript1: Status: false
                                          12:06:57.060	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.060	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Wohnzimmer_4_links:1.STATE
                                          12:06:57.061	[info]	javascript.0 script.js.common.Skript1: Status: false
                                          12:06:57.061	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.061	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Badezimmer.STATE
                                          12:06:57.062	[info]	javascript.0 script.js.common.Skript1: Status: true
                                          12:06:57.067	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.068	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Flur:1.STATE
                                          12:06:57.069	[info]	javascript.0 script.js.common.Skript1: Status: false
                                          12:06:57.071	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.071	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Flur:1.STATE
                                          12:06:57.072	[info]	javascript.0 script.js.common.Skript1: Status: false
                                          12:06:57.072	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.075	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Kueche:1.STATE
                                          12:06:57.076	[info]	javascript.0 script.js.common.Skript1: Status: true
                                          12:06:57.076	[info]	javascript.0 script.js.common.Skript1: -------
                                          12:06:57.076	[info]	javascript.0 script.js.common.Skript1: Kanal: Fenster_Kueche:1.STATE
                                          12:06:57.077	[info]	javascript.0 script.js.common.Skript1: Status: true
                                          12:06:57.078	[info]	javascript.0 script.js.common.Skript1: Text: Fenster_Badezimmer,Fenster_Badezimmer,Fenster_Hwr:1,Fenster_Hwr:1,Fenster_Kueche:1,Fenster_Kueche:1,Fenster_Schlafzimmer_links,Fenster_Schlafzimmer_links,Fenster_Wohnzimmer_2_rechts,Fenster_Wohnzimmer_2_rechts
                                          12:06:57.078	[info]	javascript.0 script.js.common.Skript1: Anzahl Fenster: 26 # davon Fenster auf: 10
                                          

                                          3799_dingens.jpg

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          367

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe