Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. MCP3008 in IoBroker einbinden

    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

    MCP3008 in IoBroker einbinden

    This topic has been deleted. Only users with topic management privileges can see it.
    • Hasont
      Hasont last edited by Hasont

      Hallo, nach über 5 Jahren habe ich meinen Raspie4 32bit auf Bookworm 64bit umgestellt und konnte IoBroker auch bis auf SPI MCP3008 wieder herstellen.

      Da ich 8 analoge Kanäle (Feuchtesensor u.s.w) einbinde hatte ich hierzu den MCP3008 über getrennte + 3,3V an Pin 23, 21, 19 und 24 (10Mosi, 9Miso, 11 SCLK 8CEO) am Raspi angeschlossen.
      In der Raspi-Config habe ich SPI eingeschaltet.
      Alle Schritte die ich mir damals aufgeschrieben hatte funktionieren scheinbar nicht mehr unter 64bit.
      z.B gpio readall.

      sudo gpio readall
      gpio: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
      

      mit gpioinfo bekomme ich folgende Liste

      pi@raspberrypi:~ $ gpioinfo
      gpiochip0 - 58 lines:
              line   0:     "ID_SDA"       unused   input  active-high
              line   1:     "ID_SCL"       unused   input  active-high
              line   2:      "GPIO2"       unused   input  active-high
              line   3:      "GPIO3"       unused   input  active-high
              line   4:      "GPIO4"       unused   input  active-high
              line   5:      "GPIO5"       unused   input  active-high
              line   6:      "GPIO6"       unused   input  active-high
              line   7:      "GPIO7"   "spi0 CS1"  output   active-low [used]
              line   8:      "GPIO8"   "spi0 CS0"  output   active-low [used]
              line   9:      "GPIO9"       unused   input  active-high
              line  10:     "GPIO10"       unused   input  active-high
              line  11:     "GPIO11"       unused   input  active-high
              line  12:     "GPIO12" "opengpio_0_12_output" output active-high [used]
              line  13:     "GPIO13" "opengpio_0_13_output" output active-high [used]
              line  14:     "GPIO14"       unused   input  active-high
              line  15:     "GPIO15"       unused   input  active-high
              line  16:     "GPIO16" "opengpio_0_16_output" output active-high [used]
              line  17:     "GPIO17" "opengpio_0_17_watch" input active-high [used]
              line  18:     "GPIO18" "opengpio_0_18_watch" input active-high [used]
              line  19:     "GPIO19" "opengpio_0_19_output" output active-high [used]
              line  20:     "GPIO20" "opengpio_0_20_output" output active-high [used]
              line  21:     "GPIO21" "opengpio_0_21_output" output active-high [used]
              line  22:     "GPIO22" "opengpio_0_22_watch" input active-high [used]
              line  23:     "GPIO23" "opengpio_0_23_watch" input active-high [used]
              line  24:     "GPIO24" "opengpio_0_24_watch" input active-high [used]
              line  25:     "GPIO25" "opengpio_0_25_output" output active-high [used]
              line  26:     "GPIO26" "opengpio_0_26_output" output active-high [used]
              line  27:     "GPIO27" "opengpio_0_27_watch" input active-high [used]
              line  28: "RGMII_MDIO"       unused   input  active-high
              line  29:  "RGMIO_MDC"       unused   input  active-high
              line  30:       "CTS0"       unused   input  active-high
              line  31:       "RTS0"       unused   input  active-high
              line  32:       "TXD0"       unused   input  active-high
              line  33:       "RXD0"       unused   input  active-high
              line  34:    "SD1_CLK"       unused   input  active-high
              line  35:    "SD1_CMD"       unused   input  active-high
              line  36:  "SD1_DATA0"       unused   input  active-high
              line  37:  "SD1_DATA1"       unused   input  active-high
              line  38:  "SD1_DATA2"       unused   input  active-high
              line  39:  "SD1_DATA3"       unused   input  active-high
              line  40:  "PWM0_MISO"       unused   input  active-high
              line  41:  "PWM1_MOSI"       unused   input  active-high
              line  42: "STATUS_LED_G_CLK" "ACT" output active-high [used]
              line  43: "SPIFLASH_CE_N" unused input active-high
              line  44:       "SDA0"       unused   input  active-high
              line  45:       "SCL0"       unused   input  active-high
              line  46: "RGMII_RXCLK" unused input active-high
              line  47: "RGMII_RXCTL" unused input active-high
              line  48: "RGMII_RXD0"       unused   input  active-high
              line  49: "RGMII_RXD1"       unused   input  active-high
              line  50: "RGMII_RXD2"       unused   input  active-high
              line  51: "RGMII_RXD3"       unused   input  active-high
              line  52: "RGMII_TXCLK" unused input active-high
              line  53: "RGMII_TXCTL" unused input active-high
              line  54: "RGMII_TXD0"       unused   input  active-high
              line  55: "RGMII_TXD1"       unused   input  active-high
              line  56: "RGMII_TXD2"       unused   input  active-high
              line  57: "RGMII_TXD3"       unused   input  active-high
      gpiochip1 - 8 lines:
              line   0:      "BT_ON"   "shutdown"  output  active-high [used]
              line   1:      "WL_ON"       unused  output  active-high
              line   2: "PWR_LED_OFF" "PWR" output active-low [used]
              line   3: "GLOBAL_RESET" unused output active-high
              line   4: "VDD_SD_IO_SEL" "vdd-sd-io" output active-high [used]
              line   5:   "CAM_GPIO" "cam1_regulator" output active-high [used]
              line   6:  "SD_PWR_ON" "regulator-sd-vcc" output active-high [used]
              line   7:    "SD_OC_N"       unused   input  active-high
      gpiochip2 - 4 lines:
              line   0:      unnamed       kernel   input  active-high [used]
              line   1:      unnamed       kernel   input  active-high [used]
              line   2:      unnamed       kernel   input  active-high [used]
              line   3:      unnamed       kernel   input  active-high [used]
      gpiochip0 - 58 lines:
              line   0:     "ID_SDA"       unused   input  active-high
              line   1:     "ID_SCL"       unused   input  active-high
              line   2:      "GPIO2"       unused   input  active-high
              line   3:      "GPIO3"       unused   input  active-high
              line   4:      "GPIO4"       unused   input  active-high
              line   5:      "GPIO5"       unused   input  active-high
              line   6:      "GPIO6"       unused   input  active-high
              line   7:      "GPIO7"   "spi0 CS1"  output   active-low [used]
              line   8:      "GPIO8"   "spi0 CS0"  output   active-low [used]
              line   9:      "GPIO9"       unused   input  active-high
              line  10:     "GPIO10"       unused   input  active-high
              line  11:     "GPIO11"       unused   input  active-high
              line  12:     "GPIO12" "opengpio_0_12_output" output active-high [used]
              line  13:     "GPIO13" "opengpio_0_13_output" output active-high [used]
              line  14:     "GPIO14"       unused   input  active-high
              line  15:     "GPIO15"       unused   input  active-high
              line  16:     "GPIO16" "opengpio_0_16_output" output active-high [used]
              line  17:     "GPIO17" "opengpio_0_17_watch" input active-high [used]
              line  18:     "GPIO18" "opengpio_0_18_watch" input active-high [used]
              line  19:     "GPIO19" "opengpio_0_19_output" output active-high [used]
              line  20:     "GPIO20" "opengpio_0_20_output" output active-high [used]
              line  21:     "GPIO21" "opengpio_0_21_output" output active-high [used]
              line  22:     "GPIO22" "opengpio_0_22_watch" input active-high [used]
              line  23:     "GPIO23" "opengpio_0_23_watch" input active-high [used]
              line  24:     "GPIO24" "opengpio_0_24_watch" input active-high [used]
              line  25:     "GPIO25" "opengpio_0_25_output" output active-high [used]
              line  26:     "GPIO26" "opengpio_0_26_output" output active-high [used]
              line  27:     "GPIO27" "opengpio_0_27_watch" input active-high [used]
              line  28: "RGMII_MDIO"       unused   input  active-high
              line  29:  "RGMIO_MDC"       unused   input  active-high
              line  30:       "CTS0"       unused   input  active-high
              line  31:       "RTS0"       unused   input  active-high
              line  32:       "TXD0"       unused   input  active-high
              line  33:       "RXD0"       unused   input  active-high
              line  34:    "SD1_CLK"       unused   input  active-high
              line  35:    "SD1_CMD"       unused   input  active-high
              line  36:  "SD1_DATA0"       unused   input  active-high
              line  37:  "SD1_DATA1"       unused   input  active-high
              line  38:  "SD1_DATA2"       unused   input  active-high
              line  39:  "SD1_DATA3"       unused   input  active-high
              line  40:  "PWM0_MISO"       unused   input  active-high
              line  41:  "PWM1_MOSI"       unused   input  active-high
              line  42: "STATUS_LED_G_CLK" "ACT" output active-high [used]
              line  43: "SPIFLASH_CE_N" unused input active-high
              line  44:       "SDA0"       unused   input  active-high
              line  45:       "SCL0"       unused   input  active-high
              line  46: "RGMII_RXCLK" unused input active-high
              line  47: "RGMII_RXCTL" unused input active-high
              line  48: "RGMII_RXD0"       unused   input  active-high
              line  49: "RGMII_RXD1"       unused   input  active-high
              line  50: "RGMII_RXD2"       unused   input  active-high
              line  51: "RGMII_RXD3"       unused   input  active-high
              line  52: "RGMII_TXCLK" unused input active-high
              line  53: "RGMII_TXCTL" unused input active-high
              line  54: "RGMII_TXD0"       unused   input  active-high
              line  55: "RGMII_TXD1"       unused   input  active-high
              line  56: "RGMII_TXD2"       unused   input  active-high
              line  57: "RGMII_TXD3"       unused   input  active-high
      

      spidev lief damals noch unter python 2.7 und wenn ich jetzt was dazu finde ist es für python3.
      Alle Pfade dazu sind unter bookworm komplett anders und sudo apt-get install -y python-spidev python3-spidev bring Fehler

      pi@raspberrypi:~ $ sudo apt-get install -y python-spidev python3-spidev
      Reading package lists... Done
      Building dependency tree... Done
      Reading state information... Done
      Package python-spidev is not available, but is referred to by another package.
      This may mean that the package is missing, has been obsoleted, or
      is only available from another source
      
      E: Package 'python-spidev' has no installation candidate
      

      Ich bekomme es somit schon gar nicht am Raspi selbst zum laufen. Dort hatte ich früher einen Pfad py-spidev in dem ich den MCP3008.py angelegt hatte. Leider bin ich kein Profi und leg mir jetzt die Karten.

      Im IoBroker lief ein Script das jetzt beim Start viele Fehler bringt und Java in eine Bootschleife versetzt.

      2025-02-09 11:22:24.604	error	instance system.adapter.javascript.0 terminated with code 1 
       JS_CONTROLLER_STOPPED)
      host.raspberrypi
      	2025-02-09 11:22:24.604	error	Caught by controller[0]: }
      host.raspberrypi
      	2025-02-09 11:22:24.603	error	Caught by controller[0]: syscall: 'open'
      host.raspberrypi
      	2025-02-09 11:22:24.603	error	Caught by controller[0]: code: 'EACCES',
      host.raspberrypi
      	2025-02-09 11:22:24.602	error	Caught by controller[0]: errno: 13,
      host.raspberrypi
      	2025-02-09 11:22:24.596	error	Caught by controller[0]: [Error: EACCES, Permission denied] {
      javascript.0
      	2025-02-09 11:22:24.385	error	Error: EACCES, Permission denied
      javascript.0
      	2025-02-09 11:22:24.385	error	Error: EACCES, Permission denied
      javascript.0
      	2025-02-09 11:22:24.385	error	An error happened which is most likely from one of your scripts, but the originating script could not be detected.
      

      SPI.Analogwerte.xml SPI.Analogwerte.txt

      Kann mir hier jemand etwas weiter helfen, ich bin jetzt schon die ganze Woche dran mit eBus, GPIOs u.s.w. Komme aber hier irgendwie gar nicht mehr weiter und hoffe nur ich hab mir nicht schon einiges versaut. Letzte SD Sicherung war Gott sei Dank noch vor der SPI Orgie.

      LG Horst

      Thomas Braun 1 Reply Last reply Reply Quote 0
      • Thomas Braun
        Thomas Braun Most Active @Hasont last edited by Thomas Braun

        @hasont

        echad@chet:~ $ apt policy python3-spidev
        python3-spidev:
          Installed: 20200602~200721-1+bookworm
          Candidate: 20200602~200721-1+bookworm
          Version table:
         *** 20200602~200721-1+bookworm 500
                500 http://archive.raspberrypi.com/debian bookworm/main arm64 Packages
                100 /var/lib/dpkg/status
             3.6-1+b1 500
                500 http://deb.debian.org/debian bookworm/main arm64 Packages
        echad@chet:~ $ 
        
        

        libcrypt.so.1: cannot open shared object file: No such file or directory

        echad@chet:~ $ apt policy libcrypt1
        libcrypt1:
          Installed: 1:4.4.33-2
          Candidate: 1:4.4.33-2
          Version table:
         *** 1:4.4.33-2 500
                500 http://deb.debian.org/debian bookworm/main arm64 Packages
                100 /var/lib/dpkg/status
        echad@chet:~ $ 
        
        Hasont 1 Reply Last reply Reply Quote 0
        • Hasont
          Hasont @Thomas Braun last edited by Hasont

          @thomas-braun sagte in MCP3008 in IoBroker einbinden:

          apt policy libcrypt1

          Hallo Thomas, danke erstmal, es kommt die selbe Meldung wie bei dir!
          Komisch, dass das keiner im IoBroker braucht. Bin wahrscheinlich der letzte der noch löten kann;-).

          pi@raspberrypi:~ $ apt policy python3-spidev
          python3-spidev:
            Installed: 20200602~200721-1+bookworm
            Candidate: 20200602~200721-1+bookworm
            Version table:
           *** 20200602~200721-1+bookworm 500
                  500 http://archive.raspberrypi.com/debian bookworm/main arm64 Packages
                  100 /var/lib/dpkg/status
               3.6-1+b1 500
                  500 http://deb.debian.org/debian bookworm/main arm64 Packages
          
          pi@raspberrypi:~ $ apt policy libcrypt1
          libcrypt1:
            Installed: 1:4.4.33-2
            Candidate: 1:4.4.33-2
            Version table:
           *** 1:4.4.33-2 500
                  500 http://deb.debian.org/debian bookworm/main arm64 Packages
                  100 /var/lib/dpkg/status
          

          Ich hab das im Netz zum Thema gpio readall gefunden

          pi@raspberrypi:~ $ sudo gpio readall
          sudo: gpio: Befehl nicht gefunden
          pi@raspberrypi:~ $ wget https://project-downloads.drogon.net/wiringpi-latest.deb
          --2025-02-06 13:48:12--  https://project-downloads.drogon.net/wiringpi-latest.de
          
          pi@raspberrypi:~ $ sudo dpkg -i wiringpi-latest.deb
          Vormals nicht ausgewähltes Paket wiringpi:armhf wird gewählt.
          (Lese Datenbank ... 89919 Dateien und Verzeichnisse sind derzeit installiert.)
          Vorbereitung zum Entpacken von wiringpi-latest.deb ...
          Entpacken von wiringpi:armhf (2.52) ...
          wiringpi:armhf (2.52) wird eingerichtet ...
          /bin/chown: warning: '.' should be ':': „root.root“
          Trigger für man-db (2.11.2-2) werden verarbeitet ...
          pi@raspberrypi:~ $ sudo gpio readall
          gpio: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
          

          Ob ich gpio readall überhaupt brauche?
          Was ist gpizero? Hab dazu eine SPI Beschreibung im Netz gefunden https://github.com/pediehl
          Der verwendet aber halt ganz andere Pfade und ob das dann im IoBroker geht ist unklar. Ich schau mir das mal auf meiner alten SD Karte an und vergleiche das. Unter 32bit bookworm hat ja alles funktioniert.

          Thomas Braun 1 Reply Last reply Reply Quote 0
          • Thomas Braun
            Thomas Braun Most Active @Hasont last edited by

            @hasont

            wiringpi ist veraltet und wird nicht mehr verwendet.
            Du knallst dir da nur deine Kiste mit noch mehr veraltetem Code zu.
            Auch python 2.7 ist ein Ding aus der Vergangenheit.

            Hasont 1 Reply Last reply Reply Quote 0
            • Hasont
              Hasont @Thomas Braun last edited by Hasont

              Ich komme einfach nicht weiter, im Raspi ist SPI ist eingeschaltet und für IoBroker freigegeben.
              Gibt es einen Befehl der gpio readall in der 64bit Version ersetzt ?

              pi@raspberrypi:~ $ sudo adduser iobroker spi
              adduser: The user `iobroker' is already a member of `spi'.
              
              

              Sobald ich vom IoBroker das mit IoBroker Backup übernommene Skript einschalte kommen die o.g. Fehler.
              Wie gesagt hatte ich vorher Bookworm 32bit und jetzt Bookworm 64bit und ein Backup des IoBroker gemacht.
              Was das Read_8AI_Modul und mcpadc genau bedeutet ist mir nach 5 Jahren leider ein Rätsel

              b26449d2-eeb6-4c2a-ac51-fa19fadb865f-image.png

              Hier mal das Script

              var busNumber, deviceNumber, Interval, dreisatz_zwischenwert, Einheit, dreisatz_zwischenwert_Garten, dreisatz_endwert, Einheit_Garten, Bodenfeuche_Prozent, dreisatz_endwert_Garten, Bodenfeuchte_Prozent_Garten;
              
              // Liest die Werte des 4-Kanal-Analogmoduls.busNumber
              // > Nr. des SPI-Busses (RasPi 1= 0, RasPi2/3=1, Tinker
              // Board=2deviceNumber > genutzte CS-Leitung (0 oder1)
              async function Read_8AI_Modul(busNumber, deviceNumber, Interval) {
                  createState('Analogmodul.Channel0',0,read1);
                  createState('Analogmodul.Channel0_in_%',{name: "Channel0_in_%"});
                  createState('Analogmodul.Channel1',0,read2);
                  createState('Analogmodul.Channel1_in_%',{name: "Channel1_in_%"});
                  createState('Analogmodul.Channel2',0,read3);
                  createState('Analogmodul.Channel3',0,read4);
                  createState('Analogmodul.Channel4',0,read5);
                  createState('Analogmodul.Channel5',0,read6);
                  createState('Analogmodul.Channel6',0,read7);
                  createState('Analogmodul.Channel7',0,read8);
              
                  const mcpadc = require('mcp-spi-adc');
              
              
              
                  function read1(){
                  const input1 = mcpadc.openMcp3008(0, {busNumber: busNumber, deviceNumber:deviceNumber,  speedHz: 20000}, (err) => {
                    if (err) throw err;
              
                    setInterval(() => {
                      input1.read((err, reading) => {
                        if (err) throw err;
              
                        setState("Analogmodul.Channel0",(reading.rawValue)),true;
                      });
                    }, Interval);
                  });
                  }
              
                  function read2(){
                  const input2 = mcpadc.openMcp3008(1, {busNumber: busNumber, deviceNumber:deviceNumber,  speedHz: 20000}, (err) => {
                    if (err) throw err;
              
                    setInterval(() => {
                      input2.read((err, reading) => {
                        if (err) throw err;
              
                        setState("Analogmodul.Channel1",(reading.rawValue)),true;
                      });
                    }, Interval);
                  });
                  }
              
                  function read3(){
                  const input3 = mcpadc.openMcp3008(2, {busNumber: busNumber, deviceNumber:deviceNumber,  speedHz: 20000}, (err) => {
                    if (err) throw err;
              
                    setInterval(() => {
                      input3.read((err, reading) => {
                        if (err) throw err;
              
                        setState("Analogmodul.Channel2",(reading.rawValue)),true;
                      });
                    }, Interval);
                  });
                  }
              
                  function read4(){
                  const input4 = mcpadc.openMcp3008(3, {busNumber: busNumber, deviceNumber:deviceNumber,  speedHz: 20000}, (err) => {
                    if (err) throw err;
              
                    setInterval(() => {
                      input4.read((err, reading) => {
                        if (err) throw err;
              
                        setState("Analogmodul.Channel3",(reading.rawValue)),true;
                      });
                    }, Interval);
                  });
                  }
              
                  function read5(){
                  const input5 = mcpadc.openMcp3008(4, {busNumber: busNumber, deviceNumber:deviceNumber,  speedHz: 20000}, (err) => {
                    if (err) throw err;
              
                    setInterval(() => {
                      input5.read((err, reading) => {
                        if (err) throw err;
              
                        setState("Analogmodul.Channel4",(reading.rawValue)),true;
                      });
                    }, Interval);
                  });
                  }
              
                  function read6(){
                  const input6 = mcpadc.openMcp3008(5, {busNumber: busNumber, deviceNumber:deviceNumber,  speedHz: 20000}, (err) => {
                    if (err) throw err;
              
                    setInterval(() => {
                      input6.read((err, reading) => {
                        if (err) throw err;
              
                        setState("Analogmodul.Channel5",(reading.rawValue)),true;
                      });
                    }, Interval);
                  });
                  }
              
                  function read7(){
                  const input7 = mcpadc.openMcp3008(6, {busNumber: busNumber, deviceNumber:deviceNumber,  speedHz: 20000}, (err) => {
                    if (err) throw err;
              
                    setInterval(() => {
                      input7.read((err, reading) => {
                        if (err) throw err;
              
                        setState("Analogmodul.Channel6",(reading.rawValue)),true;
                      });
                    }, Interval);
                  });
                  }
              
                  function read8(){
                  const input8 = mcpadc.openMcp3008(7, {busNumber: busNumber, deviceNumber:deviceNumber,  speedHz: 20000}, (err) => {
                    if (err) throw err;
              
                    setInterval(() => {
                      input8.read((err, reading) => {
                        if (err) throw err;
              
                        setState("Analogmodul.Channel7",(reading.rawValue)),true;
                      });
                    }, Interval);
                  });
                  }
              
              }
              
              
              // 10000 = 10 sec   300000 = 5 min
              await Read_8AI_Modul(0, 0, 60000);
              
              on({ id: 'javascript.0.Analogmodul.Channel0' /* AM_C0_Carport */, change: 'any' }, async (obj) => {
                let value = obj.state.val;
                let oldValue = obj.oldState.val;
                if (getState('javascript.0.Analogmodul.Channel0').val > 230 && getState('javascript.0.Analogmodul.Channel0').val < 600) {
                  dreisatz_zwischenwert = 100 / 320;
                  Einheit = getState('javascript.0.Analogmodul.Channel0').val - 255;
                  dreisatz_endwert = dreisatz_zwischenwert * Einheit;
                  Bodenfeuche_Prozent = Math.round(dreisatz_endwert);
                  setState('javascript.0.Analogmodul.Channel0_in_%' /* AM_C0_%_Carport */, (100 - Bodenfeuche_Prozent));
                }
              });
              on({ id: 'javascript.0.Analogmodul.Channel1' /* AM_C1_Garten */, change: 'any' }, async (obj) => {
                let value = obj.state.val;
                let oldValue = obj.oldState.val;
                if (getState('javascript.0.Analogmodul.Channel1').val > 230 && getState('javascript.0.Analogmodul.Channel1').val < 600) {
                  dreisatz_zwischenwert_Garten = 100 / 320;
                  Einheit_Garten = getState('javascript.0.Analogmodul.Channel1').val - 255;
                  dreisatz_endwert_Garten = dreisatz_zwischenwert_Garten * Einheit_Garten;
                  Bodenfeuchte_Prozent_Garten = Math.round(dreisatz_endwert_Garten);
                  setState('javascript.0.Analogmodul.Channel1_in_%' /* AM_C1_%_Garten */, (100 - Bodenfeuchte_Prozent_Garten));
                }
              });
              
              // Kleinster Wert -20 in nasser Erde
              
              // Größter Wert Trocken +30
              
              // + 20 mehr als delta Trocken/Nass
              // +5 mehr als Wert in ganz nasser Erde
              
              //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0N2YXJpYWJsZXMlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyS35+ZUt2VW0lN0JkZSU2MHFSMVklM0FGTHYlMjIlM0VidXNOdW1iZXIlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjJIKUhKeCUzRC5XZnRhbiUyQ3hfSjZ3VUYlMjIlM0VkZXZpY2VOdW1iZXIlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjJUNzQlN0NOeUpvZDRHdkIoLjNSREMtJTIyJTNFSW50ZXJ2YWwlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjIqNCU1RVNOciUyNTglN0NuJTNGcShZSUEyJTVEMiUyQiUyMiUzRWRyZWlzYXR6X3p3aXNjaGVud2VydCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMiUyNUMlNUI3V0ElN0JBdCUzRjNKYkhHJTI1MyUyNCU0MCElMjIlM0VFaW5oZWl0JTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIybTUlMkJCeXYlMkNmJTdCUkZYRDBwR1piaFElMjIlM0VkcmVpc2F0el96d2lzY2hlbndlcnRfR2FydGVuJTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyY0xaTzElMjVSdSUyQiUzQTRtJTJDRlIlMkNLcjdzJTIyJTNFZHJlaXNhdHpfZW5kd2VydCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMjFJXyo2Z2IlM0EoZyUyMyp+MURNNXhoJTJDJTIyJTNFRWluaGVpdF9HYXJ0ZW4lM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjIlN0IzZ1AlMjVQdko0JTYwWGslMkNFRGowIXlXJTIyJTNFQm9kZW5mZXVjaGVfUHJvemVudCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMkUlNUR3MkxYUkY4QyU2MEx0Sm4lNUUlN0JvQzAlMjIlM0VkcmVpc2F0el9lbmR3ZXJ0X0dhcnRlbiUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMiUyNSl3cjIlNUJkdnAlMkYlMkZCUyU3Qn5lc3VvdCUyMiUzRUJvZGVuZmV1Y2h0ZV9Qcm96ZW50X0dhcnRlbiUzQyUyRnZhcmlhYmxlJTNFJTNDJTJGdmFyaWFibGVzJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19kZWZjdXN0b21ub3JldHVybiUyMiUyMGlkJTNEJTIyJTJCTXclNURZMiUzRi45M29CZihnZSU3Qmp0fiUyMiUyMHglM0QlMjI4OCUyMiUyMHklM0QlMjItMTYyJTIyJTNFJTNDbXV0YXRpb24lMjBzdGF0ZW1lbnRzJTNEJTIyZmFsc2UlMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIyYnVzTnVtYmVyJTIyJTIwdmFyaWQlM0QlMjJLfn5lS3ZVbSU3QmRlJTYwcVIxWSUzQUZMdiUyMiUzRSUzQyUyRmFyZyUzRSUzQ2FyZyUyMG5hbWUlM0QlMjJkZXZpY2VOdW1iZXIlMjIlMjB2YXJpZCUzRCUyMkgpSEp4JTNELldmdGFuJTJDeF9KNndVRiUyMiUzRSUzQyUyRmFyZyUzRSUzQ2FyZyUyMG5hbWUlM0QlMjJJbnRlcnZhbCUyMiUyMHZhcmlkJTNEJTIyVDc0JTdDTnlKb2Q0R3ZCKC4zUkRDLSUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRVJlYWRfOEFJX01vZHVsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTQ1JJUFQlMjIlM0VZM0psWVhSbFUzUmhkR1VvSjBGdVlXeHZaMjF2WkhWc0xrTm9ZVzV1Wld3d0p5d3dMSEpsWVdReEtUc0tZM0psWVhSbFUzUmhkR1VvSjBGdVlXeHZaMjF2WkhWc0xrTm9ZVzV1Wld3d1gybHVYeVVuTEh0dVlXMWxPaUFpUTJoaGJtNWxiREJmYVc1ZkpTSjlLVHNLWTNKbFlYUmxVM1JoZEdVb0owRnVZV3h2WjIxdlpIVnNMa05vWVc1dVpXd3hKeXd3TEhKbFlXUXlLVHNLWTNKbFlYUmxVM1JoZEdVb0owRnVZV3h2WjIxdlpIVnNMa05vWVc1dVpXd3hYMmx1WHlVbkxIdHVZVzFsT2lBaVEyaGhibTVsYkRGZmFXNWZKU0o5S1RzS1kzSmxZWFJsVTNSaGRHVW9KMEZ1WVd4dloyMXZaSFZzTGtOb1lXNXVaV3d5Snl3d0xISmxZV1F6S1RzS1kzSmxZWFJsVTNSaGRHVW9KMEZ1WVd4dloyMXZaSFZzTGtOb1lXNXVaV3d6Snl3d0xISmxZV1EwS1RzS1kzSmxZWFJsVTNSaGRHVW9KMEZ1WVd4dloyMXZaSFZzTGtOb1lXNXVaV3cwSnl3d0xISmxZV1ExS1RzS1kzSmxZWFJsVTNSaGRHVW9KMEZ1WVd4dloyMXZaSFZzTGtOb1lXNXVaV3cxSnl3d0xISmxZV1EyS1RzS1kzSmxZWFJsVTNSaGRHVW9KMEZ1WVd4dloyMXZaSFZzTGtOb1lXNXVaV3cySnl3d0xISmxZV1EzS1RzS1kzSmxZWFJsVTNSaGRHVW9KMEZ1WVd4dloyMXZaSFZzTGtOb1lXNXVaV3czSnl3d0xISmxZV1E0S1RzS0NtTnZibk4wSUcxamNHRmtZeUE5SUhKbGNYVnBjbVVvSjIxamNDMXpjR2t0WVdSakp5azdDZ29LQ21aMWJtTjBhVzl1SUhKbFlXUXhLQ2w3Q21OdmJuTjBJR2x1Y0hWME1TQTlJRzFqY0dGa1l5NXZjR1Z1VFdOd016QXdPQ2d3TENCN1luVnpUblZ0WW1WeU9pQmlkWE5PZFcxaVpYSXNJR1JsZG1salpVNTFiV0psY2pwa1pYWnBZMlZPZFcxaVpYSXNJQ0J6Y0dWbFpFaDZPaUF5TURBd01IMHNJQ2hsY25JcElEMCUyQklIc0tJQ0JwWmlBb1pYSnlLU0IwYUhKdmR5Qmxjbkk3Q2dvZ0lITmxkRWx1ZEdWeWRtRnNLQ2dwSUQwJTJCSUhzS0lDQWdJR2x1Y0hWME1TNXlaV0ZrS0NobGNuSXNJSEpsWVdScGJtY3BJRDAlMkJJSHNLSUNBZ0lDQWdhV1lnS0dWeWNpa2dkR2h5YjNjZ1pYSnlPd29LSUNBZ0lDQWdjMlYwVTNSaGRHVW9Ja0Z1WVd4dloyMXZaSFZzTGtOb1lXNXVaV3d3SWl3b2NtVmhaR2x1Wnk1eVlYZFdZV3gxWlNrcExIUnlkV1U3Q2lBZ0lDQjlLVHNLSUNCOUxDQkpiblJsY25aaGJDazdDbjBwT3dwOUNncG1kVzVqZEdsdmJpQnlaV0ZrTWlncGV3cGpiMjV6ZENCcGJuQjFkRElnUFNCdFkzQmhaR011YjNCbGJrMWpjRE13TURnb01Td2dlMkoxYzA1MWJXSmxjam9nWW5WelRuVnRZbVZ5TENCa1pYWnBZMlZPZFcxaVpYSTZaR1YyYVdObFRuVnRZbVZ5TENBZ2MzQmxaV1JJZWpvZ01qQXdNREI5TENBb1pYSnlLU0E5UGlCN0NpQWdhV1lnS0dWeWNpa2dkR2h5YjNjZ1pYSnlPd29LSUNCelpYUkpiblJsY25aaGJDZ29LU0E5UGlCN0NpQWdJQ0JwYm5CMWRESXVjbVZoWkNnb1pYSnlMQ0J5WldGa2FXNW5LU0E5UGlCN0NpQWdJQ0FnSUdsbUlDaGxjbklwSUhSb2NtOTNJR1Z5Y2pzS0NpQWdJQ0FnSUhObGRGTjBZWFJsS0NKQmJtRnNiMmR0YjJSMWJDNURhR0Z1Ym1Wc01TSXNLSEpsWVdScGJtY3VjbUYzVm1Gc2RXVXBLU3gwY25WbE93b2dJQ0FnZlNrN0NpQWdmU3dnU1c1MFpYSjJZV3dwT3dwOUtUc0tmUW9LWm5WdVkzUnBiMjRnY21WaFpETW9LWHNLWTI5dWMzUWdhVzV3ZFhReklEMGdiV053WVdSakxtOXdaVzVOWTNBek1EQTRLRElzSUh0aWRYTk9kVzFpWlhJNklHSjFjMDUxYldKbGNpd2daR1YyYVdObFRuVnRZbVZ5T21SbGRtbGpaVTUxYldKbGNpd2dJSE53WldWa1NIbzZJREl3TURBd2ZTd2dLR1Z5Y2lrZ1BUNGdld29nSUdsbUlDaGxjbklwSUhSb2NtOTNJR1Z5Y2pzS0NpQWdjMlYwU1c1MFpYSjJZV3dvS0NrZ1BUNGdld29nSUNBZ2FXNXdkWFF6TG5KbFlXUW9LR1Z5Y2l3Z2NtVmhaR2x1WnlrZ1BUNGdld29nSUNBZ0lDQnBaaUFvWlhKeUtTQjBhSEp2ZHlCbGNuSTdDZ29nSUNBZ0lDQnpaWFJUZEdGMFpTZ2lRVzVoYkc5bmJXOWtkV3d1UTJoaGJtNWxiRElpTENoeVpXRmthVzVuTG5KaGQxWmhiSFZsS1Nrc2RISjFaVHNLSUNBZ0lIMHBPd29nSUgwc0lFbHVkR1Z5ZG1Gc0tUc0tmU2s3Q24wS0NtWjFibU4wYVc5dUlISmxZV1EwS0NsN0NtTnZibk4wSUdsdWNIVjBOQ0E5SUcxamNHRmtZeTV2Y0dWdVRXTndNekF3T0NnekxDQjdZblZ6VG5WdFltVnlPaUJpZFhOT2RXMWlaWElzSUdSbGRtbGpaVTUxYldKbGNqcGtaWFpwWTJWT2RXMWlaWElzSUNCemNHVmxaRWg2T2lBeU1EQXdNSDBzSUNobGNuSXBJRDAlMkJJSHNLSUNCcFppQW9aWEp5S1NCMGFISnZkeUJsY25JN0Nnb2dJSE5sZEVsdWRHVnlkbUZzS0NncElEMCUyQklIc0tJQ0FnSUdsdWNIVjBOQzV5WldGa0tDaGxjbklzSUhKbFlXUnBibWNwSUQwJTJCSUhzS0lDQWdJQ0FnYVdZZ0tHVnljaWtnZEdoeWIzY2daWEp5T3dvS0lDQWdJQ0FnYzJWMFUzUmhkR1VvSWtGdVlXeHZaMjF2WkhWc0xrTm9ZVzV1Wld3eklpd29jbVZoWkdsdVp5NXlZWGRXWVd4MVpTa3BMSFJ5ZFdVN0NpQWdJQ0I5S1RzS0lDQjlMQ0JKYm5SbGNuWmhiQ2s3Q24wcE93cDlDZ3BtZFc1amRHbHZiaUJ5WldGa05TZ3Bld3BqYjI1emRDQnBibkIxZERVZ1BTQnRZM0JoWkdNdWIzQmxiazFqY0RNd01EZ29OQ3dnZTJKMWMwNTFiV0psY2pvZ1luVnpUblZ0WW1WeUxDQmtaWFpwWTJWT2RXMWlaWEk2WkdWMmFXTmxUblZ0WW1WeUxDQWdjM0JsWldSSWVqb2dNakF3TURCOUxDQW9aWEp5S1NBOVBpQjdDaUFnYVdZZ0tHVnljaWtnZEdoeWIzY2daWEp5T3dvS0lDQnpaWFJKYm5SbGNuWmhiQ2dvS1NBOVBpQjdDaUFnSUNCcGJuQjFkRFV1Y21WaFpDZ29aWEp5TENCeVpXRmthVzVuS1NBOVBpQjdDaUFnSUNBZ0lHbG1JQ2hsY25JcElIUm9jbTkzSUdWeWNqc0tDaUFnSUNBZ0lITmxkRk4wWVhSbEtDSkJibUZzYjJkdGIyUjFiQzVEYUdGdWJtVnNOQ0lzS0hKbFlXUnBibWN1Y21GM1ZtRnNkV1VwS1N4MGNuVmxPd29nSUNBZ2ZTazdDaUFnZlN3Z1NXNTBaWEoyWVd3cE93cDlLVHNLZlFvS1puVnVZM1JwYjI0Z2NtVmhaRFlvS1hzS1kyOXVjM1FnYVc1d2RYUTJJRDBnYldOd1lXUmpMbTl3Wlc1TlkzQXpNREE0S0RVc0lIdGlkWE5PZFcxaVpYSTZJR0oxYzA1MWJXSmxjaXdnWkdWMmFXTmxUblZ0WW1WeU9tUmxkbWxqWlU1MWJXSmxjaXdnSUhOd1pXVmtTSG82SURJd01EQXdmU3dnS0dWeWNpa2dQVDRnZXdvZ0lHbG1JQ2hsY25JcElIUm9jbTkzSUdWeWNqc0tDaUFnYzJWMFNXNTBaWEoyWVd3b0tDa2dQVDRnZXdvZ0lDQWdhVzV3ZFhRMkxuSmxZV1FvS0dWeWNpd2djbVZoWkdsdVp5a2dQVDRnZXdvZ0lDQWdJQ0JwWmlBb1pYSnlLU0IwYUhKdmR5Qmxjbkk3Q2dvZ0lDQWdJQ0J6WlhSVGRHRjBaU2dpUVc1aGJHOW5iVzlrZFd3dVEyaGhibTVsYkRVaUxDaHlaV0ZrYVc1bkxuSmhkMVpoYkhWbEtTa3NkSEoxWlRzS0lDQWdJSDBwT3dvZ0lIMHNJRWx1ZEdWeWRtRnNLVHNLZlNrN0NuMEtDbVoxYm1OMGFXOXVJSEpsWVdRM0tDbDdDbU52Ym5OMElHbHVjSFYwTnlBOUlHMWpjR0ZrWXk1dmNHVnVUV053TXpBd09DZzJMQ0I3WW5WelRuVnRZbVZ5T2lCaWRYTk9kVzFpWlhJc0lHUmxkbWxqWlU1MWJXSmxjanBrWlhacFkyVk9kVzFpWlhJc0lDQnpjR1ZsWkVoNk9pQXlNREF3TUgwc0lDaGxjbklwSUQwJTJCSUhzS0lDQnBaaUFvWlhKeUtTQjBhSEp2ZHlCbGNuSTdDZ29nSUhObGRFbHVkR1Z5ZG1Gc0tDZ3BJRDAlMkJJSHNLSUNBZ0lHbHVjSFYwTnk1eVpXRmtLQ2hsY25Jc0lISmxZV1JwYm1jcElEMCUyQklIc0tJQ0FnSUNBZ2FXWWdLR1Z5Y2lrZ2RHaHliM2NnWlhKeU93b0tJQ0FnSUNBZ2MyVjBVM1JoZEdVb0lrRnVZV3h2WjIxdlpIVnNMa05vWVc1dVpXdzJJaXdvY21WaFpHbHVaeTV5WVhkV1lXeDFaU2twTEhSeWRXVTdDaUFnSUNCOUtUc0tJQ0I5TENCSmJuUmxjblpoYkNrN0NuMHBPd3A5Q2dwbWRXNWpkR2x2YmlCeVpXRmtPQ2dwZXdwamIyNXpkQ0JwYm5CMWREZ2dQU0J0WTNCaFpHTXViM0JsYmsxamNETXdNRGdvTnl3Z2UySjFjMDUxYldKbGNqb2dZblZ6VG5WdFltVnlMQ0JrWlhacFkyVk9kVzFpWlhJNlpHVjJhV05sVG5WdFltVnlMQ0FnYzNCbFpXUkllam9nTWpBd01EQjlMQ0FvWlhKeUtTQTlQaUI3Q2lBZ2FXWWdLR1Z5Y2lrZ2RHaHliM2NnWlhKeU93b0tJQ0J6WlhSSmJuUmxjblpoYkNnb0tTQTlQaUI3Q2lBZ0lDQnBibkIxZERndWNtVmhaQ2dvWlhKeUxDQnlaV0ZrYVc1bktTQTlQaUI3Q2lBZ0lDQWdJR2xtSUNobGNuSXBJSFJvY205M0lHVnljanNLQ2lBZ0lDQWdJSE5sZEZOMFlYUmxLQ0pCYm1Gc2IyZHRiMlIxYkM1RGFHRnVibVZzTnlJc0tISmxZV1JwYm1jdWNtRjNWbUZzZFdVcEtTeDBjblZsT3dvZ0lDQWdmU2s3Q2lBZ2ZTd2dTVzUwWlhKMllXd3BPd3A5S1RzS2ZRbyUzRCUzQyUyRmZpZWxkJTNFJTNDY29tbWVudCUyMHBpbm5lZCUzRCUyMmZhbHNlJTIyJTIwaCUzRCUyMjgwJTIyJTIwdyUzRCUyMjE2MCUyMiUzRUxpZXN0JTIwZGllJTIwV2VydGUlMjBkZXMlMjA0LUthbmFsLUFuYWxvZ21vZHVscy5idXNOdW1iZXIlMjAlMjZndCUzQiUyME5yLiUyMGRlcyUyMFNQSS1CdXNzZXMlMjAoUmFzUGklMjAxJTNEJTIwMCUyQyUyMFJhc1BpMiUyRjMlM0QxJTJDJTIwVGlua2VyJTIwQm9hcmQlM0QyZGV2aWNlTnVtYmVyJTIwJTI2Z3QlM0IlMjBnZW51dHp0ZSUyMENTLUxlaXR1bmclMjAoMCUyMG9kZXIxKSUyMCUyMCUyMCUyMCUzQyUyRmNvbW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMiU1QkhhWVolMjUlNUIqSmVZJTYweFAlM0EhWEVIUiUyMiUyMHglM0QlMjI4OCUyMiUyMHklM0QlMjItMTEyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRTEwMDAwJTIwJTNEJTIwMTAlMjBzZWMlMjAlMjAlMjAzMDAwMDAlMjAlM0QlMjA1JTIwbWluJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19jYWxsY3VzdG9tbm9yZXR1cm4lMjIlMjBpZCUzRCUyMllhb1dHUkx5TSUyQ3VERiU1RTMlMkIlMkNMJTNEbCUyMiUzRSUzQ211dGF0aW9uJTIwbmFtZSUzRCUyMlJlYWRfOEFJX01vZHVsJTIyJTNFJTNDYXJnJTIwbmFtZSUzRCUyMmJ1c051bWJlciUyMiUzRSUzQyUyRmFyZyUzRSUzQ2FyZyUyMG5hbWUlM0QlMjJkZXZpY2VOdW1iZXIlMjIlM0UlM0MlMkZhcmclM0UlM0NhcmclMjBuYW1lJTNEJTIySW50ZXJ2YWwlMjIlM0UlM0MlMkZhcmclM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFSRzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyWFF3JTdDOHRjcShWNkdyJTVEWThtKiUyNHYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQVJHMSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJ5ZCU0MGtyWXJHWml+JTVFJTNBcSUzRCUzRFAlNDBDRyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBUkcyJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMjZoQWNJJTIzNlhtJTVFJTI0TnNZQ21MKiU0MCglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0U2MDAwMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb24lMjIlMjBpZCUzRCUyMn5TLSlZJTQwWFFLdmVnLWJKbTB+JTNGbyUyMiUyMHglM0QlMjI4OCUyMiUyMHklM0QlMjI2MyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5BbmFsb2dtb2R1bC5DaGFubmVsMCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09ORElUSU9OJTIyJTNFYW55JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBQ0tfQ09ORElUSU9OJTIyJTNFJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMiUzQmpqVm9kdSU3RE4lN0JLSCUyMyFGMnYzaWMlMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19vcGVyYXRpb24lMjIlMjBpZCUzRCUyMiU1QiU1RSUzQWJlJTNCJTNBUn5YJTYwRSUyQjdGX1ZpMCElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUFORCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMiUzRHF1bFdFJTIzUyUzQWJKSi0hWG9iZHY4JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VHVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIydFg0dCFmN1pSZSUzRiUyQ0NVYSgxMVVHJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLkFuYWxvZ21vZHVsLkNoYW5uZWwwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJfY25JOSFwU1FIMjBWdDNGOEElNjAlNjAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UyMzAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMihGV3UhfnElNUQlNUVQfmZfdiU3RCUyQldqJTVEJTI1JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VMVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIydWZpLi0lNUJFQiU3RHZzcyUyQlp1JTI1YipOISUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5BbmFsb2dtb2R1bC5DaGFubmVsMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIycyUyNEgpJTdEUnhmJTI1JTYwcmtMcWMlNUJGVSUzQkclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0U2MDAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJlJTYwVUgxVCU1RE9IJTJCcmxUb3JfKCUyNDFUJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIqNCU1RVNOciUyNTglN0NuJTNGcShZSUEyJTVEMiUyQiUyMiUzRWRyZWlzYXR6X3p3aXNjaGVud2VydCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2FyaXRobWV0aWMlMjIlMjBpZCUzRCUyMkluZlViN29YQ05aWEYtXyU3Q0k1RkglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRURJVklERSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyaWIlMjNOKSUzRCUyQmQlNUJGOXMlMkJkJTVCZyU1RSUyQ0d2JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMTAwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMi5Rb0glMkM3TiUyNU4lN0QlNDBaTXctJTJCM0VidyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTMyMCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMk4zOSUyM1R4Q2UxZms0SG8lM0F5JTdCVzMyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjVDJTVCN1dBJTdCQXQlM0YzSmJIRyUyNTMlMjQlNDAhJTIyJTNFRWluaGVpdCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2FyaXRobWV0aWMlMjIlMjBpZCUzRCUyMkhTJTNGb2glNjApT1l+b3E5dkElMjRkcSU1QkUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRU1JTlVTJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIpNmQlMjV2JTI0ZE5lTlZIWSUzQlFOWVclMkZvJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJ0JTJCJTQwRyUzRHJTdilRLUhJJTIzTi1nJTNBR28lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQW5hbG9nbW9kdWwuQ2hhbm5lbDAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIhTyoqdyU1QlFhTSUyRlZrJTNERyklNjBKYzAlNUIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UyNTUlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJHTiUyRm9LUm8xJTI1JTQwdmglM0ElN0JTLTRMcGolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMmNMWk8xJTI1UnUlMkIlM0E0bSUyQ0ZSJTJDS3I3cyUyMiUzRWRyZWlzYXR6X2VuZHdlcnQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9hcml0aG1ldGljJTIyJTIwaWQlM0QlMjJZKWMyZ2MlNUJvYSUyNGNVaSkxJTdCM2JmJTI1JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VNVUxUSVBMWSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIycyU2MFVSRDRZJTIzdjl+YjRrUSUzRCpDRCklMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJ0NzdQWk9YISU0MEpiJTdCJTYwZUx1Z2hQYiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyKjQlNUVTTnIlMjU4JTdDbiUzRnEoWUlBMiU1RDIlMkIlMjIlM0VkcmVpc2F0el96d2lzY2hlbndlcnQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJaTkklNURCJTVEJTNGa1h+bHZIUDkxQ1h0dyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMkQlNjBVNGNLQkN6JTJDZ3dvdmJCIUluUCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTI1QyU1QjdXQSU3QkF0JTNGM0piSEclMjUzJTI0JTQwISUyMiUzRUVpbmhlaXQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMjJCJTNGNkJrOWtFRXU1JTI0OW1Xb050UiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTdCM2dQJTI1UHZKNCU2MFhrJTJDRURqMCF5VyUyMiUzRUJvZGVuZmV1Y2hlX1Byb3plbnQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9yb3VuZCUyMiUyMGlkJTNEJTIyOUQlM0R0JTQwamdnd08zaCU1REwlM0JTUDFtciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFUk9VTkQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk5VTSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTNCJTNBb0R5WlZWSiUyQ19JcVpDc2RyJTNGNiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTMuMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTI1JTYwUWlwVyUzQkYlNDBoNyUzRE1CJTJCJTIzWiUyMyl5JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJjTFpPMSUyNVJ1JTJCJTNBNG0lMkNGUiUyQ0tyN3MlMjIlM0VkcmVpc2F0el9lbmR3ZXJ0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJIWE1mMEtBdXBtWU8lNUUlMjVWKEMxciglMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQW5hbG9nbW9kdWwuQ2hhbm5lbDBfaW5fJTI1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9hcml0aG1ldGljJTIyJTIwaWQlM0QlMjI4aSUyQ1klMjQ0QXIlM0YlMjQtTihPJTJGa3JKKWclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRU1JTlVTJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlM0ZuTyUyRnRrbnhRLkFRSyUyNUMlN0QucnFzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMTAwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMkM2b3UlNjBDeSUyM00lMkIlM0QlM0JoJTNBNGpfZTYzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyciUzRnpxQjBkbSh2QyU1RVcwJTNEaSU1QiUyNUthJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlN0IzZ1AlMjVQdko0JTYwWGslMkNFRGowIXlXJTIyJTNFQm9kZW5mZXVjaGVfUHJvemVudCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uJTIyJTIwaWQlM0QlMjJ3JTVCNSU2MGclNUQxTUwlMjR3dUxMKnludWUlMjQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQW5hbG9nbW9kdWwuQ2hhbm5lbDElM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTkRJVElPTiUyMiUzRWFueSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQUNLX0NPTkRJVElPTiUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJIZCUzQX4lMjVVKXZiMCUyMyUyRiUyMzQlN0R2VTElN0NoJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfb3BlcmF0aW9uJTIyJTIwaWQlM0QlMjIlMjRUQSElN0QlMjQlN0JRb1hGJTdEWSUyNG4lNDBUcFJOJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VBTkQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJjckY2JTYwV20wY08lMjNpTyExJTNGLkNHJTQwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VHVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyJTIzZHNKa0IlNURGKDhJaW82bFclMkNHJTJCMiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5BbmFsb2dtb2R1bC5DaGFubmVsMSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTdESSUzRnVpJTJDJTdEJTI1aSg2NzR6MUMxZUElN0QlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UyMzAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMiU2MENJJTJCUypEUFRTdChKeUNXJTQwRWdqJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VMVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIydTJ+TSU1QnYlMkIwTCUzQjFHQzk5JTJDaCUyMyUyM0wlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQW5hbG9nbW9kdWwuQ2hhbm5lbDElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMlQteHolM0FsZyo5eiklM0IlM0E1MzNqY0JSJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFNjAwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIydUxpdyUzRDFGX2NCJTdEc09+U0tVbUdqJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJtNSUyQkJ5diUyQ2YlN0JSRlhEMHBHWmJoUSUyMiUzRWRyZWlzYXR6X3p3aXNjaGVud2VydF9HYXJ0ZW4lM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9hcml0aG1ldGljJTIyJTIwaWQlM0QlMjIlNDBvTUolM0IlN0RXJTQwcF9ETSU1RTNOS3ZPTHclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRURJVklERSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyRmwzR0VzJTdCJTJCaFNqJTI0KSUyQiUyQ1Q5b0FhJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMTAwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMkJhSyUyQ1klMkN1eHhHRkpzYiUyQlglNUUlM0IlN0MqJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMzIwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIydShNSXRQbXklNjAlMjMlNDBVISUzRkJpLUF4JTVCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIxSV8qNmdiJTNBKGclMjMqfjFETTV4aCUyQyUyMiUzRUVpbmhlaXRfR2FydGVuJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyTmhHR3ElNUJzUTkoJTNEJTNGJTJGNlElMkJNa2wlMjMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRU1JTlVTJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlM0YzcDNuaEgqRG1JUXBmNyU1QjhSRF8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMmJ4QnRnJTNCKSU1RWVpJTQwNSUyNCpFdFNlLW8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQW5hbG9nbW9kdWwuQ2hhbm5lbDElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJ2dikyJTIzRDhiTyUzRG9jWUpCZFBxa1YlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UyNTUlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJGR19iJTNEJTVCa3p6V2xsKE8zbmlCVHElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMkUlNUR3MkxYUkY4QyU2MEx0Sm4lNUUlN0JvQzAlMjIlM0VkcmVpc2F0el9lbmR3ZXJ0X0dhcnRlbiUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2FyaXRobWV0aWMlMjIlMjBpZCUzRCUyMjNpcyUyRlBRJTNEfnZRNShoSCElMkY3YyUyMy4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRU1VTFRJUExZJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJOJTI0dnlsc19JJTdENWJsJTNEVyUzQSFWZS54JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyYTBBWiU1QjN+JTVEVXRQVkV1SyUyMypYJTNBcSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIybTUlMkJCeXYlMkNmJTdCUkZYRDBwR1piaFElMjIlM0VkcmVpc2F0el96d2lzY2hlbndlcnRfR2FydGVuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTVEb0IqJTdEZVBWJTYwUEJhT0UzKG4pUCglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJ1NHZLJTI0JTVFa3BpMTVCJTI1fiUzRClOcWZyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIxSV8qNmdiJTNBKGclMjMqfjFETTV4aCUyQyUyMiUzRUVpbmhlaXRfR2FydGVuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJvYXcuTFpmKms1JTJGIXclNUQzfmdLITYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyNSl3cjIlNUJkdnAlMkYlMkZCUyU3Qn5lc3VvdCUyMiUzRUJvZGVuZmV1Y2h0ZV9Qcm96ZW50X0dhcnRlbiUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX3JvdW5kJTIyJTIwaWQlM0QlMjIlM0ElM0QlNURJN2UlMkIlN0J4JTIzeG9SY0RYZyElNUJWJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VST1VORCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyTlVNJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlM0ZYZ3NTVkFWJTNGckFxQU4lMkIuU0pRSSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTMuMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIya1R5JTI1JTNCbGU0JTJDakNZTnh0cnF6OFYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMkUlNUR3MkxYUkY4QyU2MEx0Sm4lNUUlN0JvQzAlMjIlM0VkcmVpc2F0el9lbmR3ZXJ0X0dhcnRlbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyRjF2WGslMkJMJTdCSGIlMjNwTVo1Wn53WFklMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQW5hbG9nbW9kdWwuQ2hhbm5lbDFfaW5fJTI1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9hcml0aG1ldGljJTIyJTIwaWQlM0QlMjIlM0E2JTJDQWNvLSE0WVNBRyU1RTBzbi4lNUR+JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VNSU5VUyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyKG5rNkVBJTI0RTRWSjd5JTQwcSp2dUFjJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMTAwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiUyNSU1Qi4lM0E0JTI0SSU3RCU3QiU1RCU1RWJwLkZHZE1jVSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMmFKKClYTWclM0RkY0J1OSU3RCUyRm1qXyU1QiglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyNSl3cjIlNUJkdnAlMkYlMkZCUyU3Qn5lc3VvdCUyMiUzRUJvZGVuZmV1Y2h0ZV9Qcm96ZW50X0dhcnRlbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJRY00lMjMyfjhkajEtYyUyNU5Na0t0ViU0MCUyMiUyMHglM0QlMjI1NjMlMjIlMjB5JTNEJTIyMTM4JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUtsZWluc3RlciUyMFdlcnQlMjAtMjAlMjBpbiUyMG5hc3NlciUyMEVyZGUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyZXh5JTNENVklM0IlM0FGUE5TJTNCM1NaJTNEdm1zJTIyJTIweCUzRCUyMjEwNjIlMjIlMjB5JTNEJTIyMTM3JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUdyJUMzJUI2JUMzJTlGdGVyJTIwV2VydCUyMFRyb2NrZW4lMjAlMkIzMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJVZmNOS1hFJTQwX3gpTlF+JTJGNEhuayU3QyUyMiUyMHglM0QlMjI3ODglMjIlMjB5JTNEJTIyMjM4JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRSUyQiUyMDIwJTIwbWVociUyMGFscyUyMGRlbHRhJTIwVHJvY2tlbiUyRk5hc3MlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJCaiFvNiUzRDglNUROJTNCQk1TbHNvJTJDciUyRi0lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFJTJCNSUyMG1laHIlMjBhbHMlMjBXZXJ0JTIwaW4lMjBnYW56JTIwbmFzc2VyJTIwRXJkZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ4bWwlM0U=
              

              Brauche hier weiterhin eure Hilfe.

              Edit 13.02.2025: Es funktioniert!!! Leider kann ich aber nicht nachvollziehen warum. Aus lauter Frust hab ich nochmals
              https://www.raspilc.de/Tutorials/4-Kanal-Analog-Modul-in-ioBroker-nutzen über die Katze im IoBroker eingespielt. Ging ohne Fehler und ich hatte im Objekt 8 Kanäle und 1 und 5 hatten auch etwas angezeigt. Hab dann mein Java Script aufgerufen und auch das ging ohne Fehler. Was jetzt anders war als in den letzten Tagen kann ich leider nicht sagen. Falls jemand eine nachvollziehbare Idee hat kann das ja nicht schaden die hier zu posten.
              LG Horst

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

              Support us

              ioBroker
              Community Adapters
              Donate
              FAQ Cloud / IOT
              HowTo: Node.js-Update
              HowTo: Backup/Restore
              Downloads
              BLOG

              831
              Online

              31.9k
              Users

              80.2k
              Topics

              1.3m
              Posts

              2
              5
              167
              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