NEWS
[Frage] Realisierung Adapter UDP Keba Wallbox
-
OK hier ist der Code als JS
var Tag, Phasen, powerlist, zaehler, avg_value; function listsRepeat(value, n) { var array = []; for (var i = 0; i < n; i++) { array[i] = value; } return array; } function mathMean(myList) { return myList.reduce(function(x, y) {return x + y;}) / myList.length; } // Shelly schalten und den Schütz auf 1 Phase schalten async function my_1_Phase() { Phasen = 1; setState("kecontact.0.automatic.pauseWallbox"/*pause charging of vehicle*/, true); await wait(5000); setState("kecontact.0.automatic.calcPhases"/*count of phases to calculate with for KeContact Deutschland-Edition*/, 1, true); while (getState("kecontact.0.i1").val > 0) { await wait(5000); } setState("shelly.0.SHSW-1#48551903197D#1.Relay0.Switch"/*Switch*/, false); await wait(10000); setState("kecontact.0.automatic.pauseWallbox"/*pause charging of vehicle*/, false); await wait(10000); setState("kecontact.0.enableUser"/*Enable User*/, true); } // Shelly schalten und den Schütz auf 3 Phasen schalten async function my_3_Phasen() { Phasen = 3; setState("kecontact.0.automatic.pauseWallbox"/*pause charging of vehicle*/, true); await wait(5000); setState("kecontact.0.automatic.calcPhases"/*count of phases to calculate with for KeContact Deutschland-Edition*/, 3, true); while (getState("kecontact.0.i1").val > 0) { await wait(5000); } setState("shelly.0.SHSW-1#48551903197D#1.Relay0.Switch"/*Switch*/, true); await wait(10000); setState("kecontact.0.automatic.pauseWallbox"/*pause charging of vehicle*/, false); await wait(10000); setState("kecontact.0.enableUser"/*Enable User*/, true); } on({id: [].concat(['kecontact.0.plug']).concat(['kecontact.0.automatic.photovoltaics']).concat(Tag), change: "ne"}, async function (obj) { if (getState("kecontact.0.plug").val == 7) { if (compareTime(getAstroDate("sunrise", undefined, 0), getAstroDate("sunset", undefined, 0), "between", null) && getState("kecontact.0.automatic.photovoltaics").val == true) { if (parseFloat(getState("sma-em.0.3014002797.psurplus").val) + getState("0_userdata.0.Neuer_Ordner.Ladeleistung").val >= 3680) { await my_3_Phasen(); } else { await my_1_Phase(); } await wait(10000); powerlist = [listsRepeat(0, 90)]; zaehler = 1; while (compareTime(getAstroDate("sunset", undefined, 0), null, "<", null) && getState("kecontact.0.automatic.photovoltaics").val == 1) { powerlist[(zaehler - 1)] = parseFloat(getState("sma-em.0.3014002797.psurplus").val) + getState("0_userdata.0.Neuer_Ordner.Ladeleistung").val; if (zaehler == 90) { zaehler = 0; } zaehler = (typeof zaehler == 'number' ? zaehler : 0) + 1; avg_value = mathMean(powerlist); if (avg_value < 3450 && Phasen == 3) { await my_1_Phase(); } if (avg_value > 3680 && Phasen == 1) { await my_3_Phasen(); } await wait(10000); if (getState("kecontact.0.plug").val == 3) { break; } } } else if (getState("kecontact.0.automatic.photovoltaics").val == false) { await my_3_Phasen(); } else { await my_1_Phase(); } } }); schedule({astro: "sunrise", shift: 1}, async function () { if (getState("kecontact.0.plug").val == 7) { Tag = 1; } }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0N2YXJpYWJsZXMlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyJTNCJTI1aiEzbVdXdjZ3JTNGUDZQZnBiflElMjIlM0VUYWclM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjJLeiolM0RXVEh+QU4lNjBJekYuZUtfaH4lMjIlM0VQaGFzZW4lM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjIlM0ZxVDNDJTJDKjAuMGQlNDB0RUp3T00lMjRuJTIyJTNFcG93ZXJsaXN0JTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyfm8lMjV0KERTJTJDJTdEb0klM0YlM0RnJTIzLmQlNUQ3SiUyMiUzRXphZWhsZXIlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjJ6V2Z3JTNCU1JDUDMlN0MlMjMlM0FCVDI1JTVEaDUlMjIlM0VhdmdfdmFsdWUlM0MlMkZ2YXJpYWJsZSUzRSUzQyUyRnZhcmlhYmxlcyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX2V4dCUyMiUyMGlkJTNEJTIyZ0pjJTQwRSU3Q3N5dHFfdnYlNjA5TWN6cTElMjIlMjB4JTNEJTIyLTE0MDQlMjIlMjB5JTNEJTIyLTY2OSUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGl0ZW1zJTNEJTIyMyUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09ORElUSU9OJTIyJTNFbmUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRDAlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIyZmllbGRfb2lkJTIyJTIwaWQlM0QlMjJweFNBLl82IXdxR0wzJTQwRUYlM0IuN3MlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJvaWQlMjIlM0VkZWZhdWx0JTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMiUzRm9Cay54WTh5TzJvfihhRWE2JTdEViUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRWtlY29udGFjdC4wLnBsdWclM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJPSUQxJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMmZpZWxkX29pZCUyMiUyMGlkJTNEJTIySnBnTmR3JTQwMDc1JTVFaCUzREEyJTVFJTIzUyU1QlIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJvaWQlMjIlM0VkZWZhdWx0JTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMjFwWGQxVmJBZSU3REMlN0JpJTJGc0VYNzkoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFa2Vjb250YWN0LjAuYXV0b21hdGljLnBob3Rvdm9sdGFpY3MlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJPSUQyJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMmZpZWxkX29pZCUyMiUyMGlkJTNEJTIyX1lBJTJGJTJGN2RLaSUzRCUzRCU1QnElNUR4USU3Q1pneiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRWRlZmF1bHQlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlpBUmstcE51SlFPJTVFLklLKCUyQlIlN0JFJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlM0IlMjVqITNtV1d2NnclM0ZQNlBmcGJ+USUyMiUzRVRhZyUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIyMURGJTNBeS4lMjNjMCUyNGVqfmclMkZrel9IQSUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMnFMTl9Qc0ZKUSUzRiUyNU1kJTNGZiUzQiUzRlhBcCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFRVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMiU1QiUyNUpyY19QdyUyRmpvaiUyNSU1RVJhJTNEVDYlMjMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VrZWNvbnRhY3QuMC5wbHVnJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjI4JTVCOSU1QlNKYnUlMkYlMkZFUCU2MEU5dCUyQjl3dCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTclM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJKZDcxQ1IlNUQlNURlMSU0MDNwRSUzQTJGJTNCSSU3QiUyMiUzRSUzQ211dGF0aW9uJTIwZWxzZWlmJTNEJTIyMSUyMiUyMGVsc2UlM0QlMjIxJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19vcGVyYXRpb24lMjIlMjBpZCUzRCUyMi4lM0ElNURMJTI0MWkhVEslN0MlMkNKJTdCaHZ+JTVEKCUyQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZV9jb21wYXJlX2V4JTIyJTIwaWQlM0QlMjJERCU0MHo5JTVEIXNLJTJCMyU3Q2xXRzNfJTdDdHQlMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBlbmRfdGltZSUzRCUyMnRydWUlMjIlMjBhY3R1YWxfdGltZSUzRCUyMnRydWUlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVTRV9BQ1RVQUxfVElNRSUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QVElPTiUyMiUzRWJldHdlZW4lM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlNUQVJUX1RJTUUlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyazE1NjVFMiU2MCFqNSU1RU4lNjBuJTNGMyUyQkNwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRTEyJTNBMDAlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVfYXN0cm8lMjIlMjBpZCUzRCUyMiUyNCUyMyU2MCUzRHVGTCUyM2NsR2FlX044eTRFSyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRZUEUlMjIlM0VzdW5yaXNlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPRkZTRVQlMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyRU5EX1RJTUUlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIybDhwUzdnR19tZCU1QldOa0dfbCU1RFUlNUQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFMTglM0EwMCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZV9hc3RybyUyMiUyMGlkJTNEJTIyJTdDMkElM0E3QzQ4JTJDJTVCX1FKN2clMjUzY0clM0YlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJUWVBFJTIyJTNFc3Vuc2V0JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPRkZTRVQlMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJRd1ppLlAlM0Y1JTYwTCU1QiU2MHYlM0FPKDhzJTIzOCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFRVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMiU0MGdNeSg0UCUyQl85JTdDJTNGdEdHNSUzQkc0RSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWtlY29udGFjdC4wLmF1dG9tYXRpYy5waG90b3ZvbHRhaWNzJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2Jvb2xlYW4lMjIlMjBpZCUzRCUyMiU1RGdaQSU1QlJwLV8yKCU2MCUzRkxoJTJGM0VyJTVCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIyJTI1JTNBMXQlM0ZNODM2JTQwIVI0ZVp0ZmVDJTdEJTIyJTNFJTNDbXV0YXRpb24lMjBlbHNlJTNEJTIyMSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyaSU3RE1QRCUzRGwlM0JHaVkoenZPZkJ4JTdCbCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFR1RFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9hcml0aG1ldGljJTIyJTIwaWQlM0QlMjJ+JTVEKE5MQjJMKkYlM0ZLV0piYjYlMjRNWiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQUREJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJmaEElNUQlN0NuTjB2YiFmJTVFJTNGdylwajJ4JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFc21hLWVtLjAuMzAxNDAwMjc5Ny5wc3VycGx1cyUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMiU2MGtIOTAwQ1klMjNGSiUyQ3MxJTdEJTIzTGJWeSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRTBfdXNlcmRhdGEuMC5OZXVlcl9PcmRuZXIuTGFkZWxlaXN0dW5nJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTI1JTVENFVCdzhGJTI1Tm96NUpycXolN0R4ZyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTM2ODAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnByb2NlZHVyZXNfY2FsbG5vcmV0dXJuJTIyJTIwaWQlM0QlMjJKazNvb0wlM0Q3JTdEaSU2MH5pblYpQnRhTyUyMiUzRSUzQ211dGF0aW9uJTIwbmFtZSUzRCUyMjMlMjBQaGFzZW4lMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkVMU0UlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2NhbGxub3JldHVybiUyMiUyMGlkJTNEJTIyNyolN0JIVnR5R1klN0MlM0FEUyU3RHdIaTdUWSUyMiUzRSUzQ211dGF0aW9uJTIwbmFtZSUzRCUyMjElMjBQaGFzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfd2FpdCUyMiUyMGlkJTNEJTIySVJ6ZEx+NFBOTEFIZTkoWiU3Q3N4VSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZJTIyJTNFMTAlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VzZWMlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjIwYWElM0YlNUJXJTVFRWl6JTJGJTJCcyFiX2NqdiUzQSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTNGcVQzQyUyQyowLjBkJTQwdEVKd09NJTI0biUyMiUzRXBvd2VybGlzdCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsaXN0c19jcmVhdGVfd2l0aCUyMiUyMGlkJTNEJTIybCU3QilnZ0pVSUMlNUVNQjV+SG5wa0slMjIlM0UlM0NtdXRhdGlvbiUyMGl0ZW1zJTNEJTIyMSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxpc3RzX3JlcGVhdCUyMiUyMGlkJTNEJTIycVRxdWNoSVEyaHNMTyU0MCUyQm53ZGIlMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJOVU0lMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMk9PeENqOSU1RE1+dzZ4JTJDNEdqSVkxdyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTkwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklURU0lMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTdESiU0MFIlM0RoRCU3QmI0JTQwJTNBMSU3Q20lM0JmciU0MDElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyX3dKd09yREglNUItJTQweik3JTIzZi4lNUR+ZCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyfm8lMjV0KERTJTJDJTdEb0klM0YlM0RnJTIzLmQlNUQ3SiUyMiUzRXphZWhsZXIlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU1RTFxQ2xQS08pYnlpKiU1RSU3RHlybCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfd2hpbGVVbnRpbCUyMiUyMGlkJTNEJTIycHhFMmIlMjRHSlYuOX4lM0FROGglNUU3RWUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJNT0RFJTIyJTNFV0hJTEUlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19vcGVyYXRpb24lMjIlMjBpZCUzRCUyMjFnNTBFJTNEOSU1RV9oJTVFdUk1czZoJTI1QyUyQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZV9jb21wYXJlX2V4JTIyJTIwaWQlM0QlMjJxJTNBOWJUJTI0X19hJTJDRiUyM1MlMjRIYnIqJTNESCUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGVuZF90aW1lJTNEJTIyZmFsc2UlMjIlMjBhY3R1YWxfdGltZSUzRCUyMnRydWUlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVTRV9BQ1RVQUxfVElNRSUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QVElPTiUyMiUzRSUyNmx0JTNCJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJTVEFSVF9USU1FJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMi0odVglM0Q3JTJGXyUzRC5WZG5xSi4xJTVCTUslMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFMTIlM0EwMCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZV9hc3RybyUyMiUyMGlkJTNEJTIyVjlVayUzRFYpVGo1JTNBJTIzJTQwZmh5JTI1TCUzRGwlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJUWVBFJTIyJTNFc3Vuc2V0JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPRkZTRVQlMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJVISUyQ2IlM0YoTi44VHElMkNQJTJDR0YlNDBQaFYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjIlMkMydSUzRmVLU2RoUCUyNSU1RCU0MGUobCElN0RsYiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWtlY29udGFjdC4wLmF1dG9tYXRpYy5waG90b3ZvbHRhaWNzJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJQcko4KUVoTFdyZVEwWm9XOSUzQkd5JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybGlzdHNfc2V0SW5kZXglMjIlMjBpZCUzRCUyMmklNUI5ZWtiJTIzRnhETyU1QlElMkNYSlVmJTI1eiUyMiUzRSUzQ211dGF0aW9uJTIwYXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJNT0RFJTIyJTNFU0VUJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSEVSRSUyMiUzRUZST01fU1RBUlQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkxJU1QlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJyJTVERTklM0EwR0dVJTJDN3QlMjNUcW1zcjBBJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlM0ZxVDNDJTJDKjAuMGQlNDB0RUp3T00lMjRuJTIyJTNFcG93ZXJsaXN0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQVQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJPRXklMjNjSyU3QihvY1ctVyUyRlAlM0QwUkVqJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJ+byUyNXQoRFMlMkMlN0RvSSUzRiUzRGclMjMuZCU1RDdKJTIyJTNFemFlaGxlciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRPJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9hcml0aG1ldGljJTIyJTIwaWQlM0QlMjJMLk5jNGZBZ01LWXg4JTIzTE0lNUVST1ElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUFERCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTNCYXRuOCU1RWElNUIpcnhTZlJRJTJCfjElM0QlNjAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMnZHaCUzRi5YZSUyNCFJZ29lTGxSUE1tYyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRXNtYS1lbS4wLjMwMTQwMDI3OTcucHN1cnBsdXMlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJvJTYwOXQlNUJZKG1XJTJDVVElN0NFdCU3QilTa20lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMlglMkZvJTJCJTdEOCU2MCU1RCUyNXRsVSUzQXo2ZzNfTlAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0UwX3VzZXJkYXRhLjAuTmV1ZXJfT3JkbmVyLkxhZGVsZWlzdHVuZyUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMngoMyU1RDIlMkZQUiUzRCh5TUolN0R1RyUzRlVoJTJDJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIySHNTckxabE1EMGZEdmQlN0RMQkhSUCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFRVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJZUEhWb2hVZEdOJTJGWW1FVkQlN0J2JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJ+byUyNXQoRFMlMkMlN0RvSSUzRiUzRGclMjMuZCU1RDdKJTIyJTNFemFlaGxlciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyT0c2ejl0enNyVyU3Q01WbkYlNDBONTkwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFOTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiU3RDI2b3ApJTIzQUNGUyU0MDZHQ3JxZHNNJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJ+byUyNXQoRFMlMkMlN0RvSSUzRiUzRGclMjMuZCU1RDdKJTIyJTNFemFlaGxlciUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTNBVTJISF9UdzQzWjlkdyU1QkIoRTBaJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfY2hhbmdlJTIyJTIwaWQlM0QlMjIpRFlLJTI1RjU1M0R3emlva0UlNUQtcColMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMn5vJTI1dChEUyUyQyU3RG9JJTNGJTNEZyUyMy5kJTVEN0olMjIlM0V6YWVobGVyJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJERUxUQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyQjh4diU1RDIlNDAlN0RQdDhfbFlWJTNCWTZEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyN2otaGRubGpUZ34lMkJuJTNCaE1tJTIzaiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyeldmdyUzQlNSQ1AzJTdDJTIzJTNBQlQyNSU1RGg1JTIyJTNFYXZnX3ZhbHVlJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfb25fbGlzdCUyMiUyMGlkJTNEJTIyYilkMCU1RXQlN0JXMVYlMjMpejQ3WjFoKCUyMiUzRSUzQ211dGF0aW9uJTIwb3AlM0QlMjJBVkVSQUdFJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUFWRVJBR0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkxJU1QlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJyLSUyRnFQJTNGTUMpNCFPeFJuWWV4JTJGRiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTNGcVQzQyUyQyowLjBkJTQwdEVKd09NJTI0biUyMiUzRXBvd2VybGlzdCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMn4zRzJsNVYlM0FkJTI1NSUzQTlyMUdoNjVhJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfb3BlcmF0aW9uJTIyJTIwaWQlM0QlMjJSbnolN0JGfmUlN0NTQXFMZEs1Rk4lNUUlNUQxJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VBTkQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjIlMjVTSFolN0JfWW8lM0FlViUzRiU1RWU5QkglN0Q3YiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFTFQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjIuJTdCJTJCJTNEfmUhS2NydSU1REJzeSU3QiU0MCU1RWJqJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJ6V2Z3JTNCU1JDUDMlN0MlMjMlM0FCVDI1JTVEaDUlMjIlM0VhdmdfdmFsdWUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMlJEJTVFRGpxWlRMLjE2azkpJTQwbDUlMkMqJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMzQ1MCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyUjclM0ZJJTI1JTQwTkZjZCUzQXYlM0FSRSUyM19vMzUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyTVpuYzVxKGVOV0wlMjUlN0RDNjhsTEt4JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJLeiolM0RXVEh+QU4lNjBJekYuZUtfaH4lMjIlM0VQaGFzZW4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMk1aOXclM0F5JTQwaERzajRPdSU1REVjem8lM0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UzJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19jYWxsbm9yZXR1cm4lMjIlMjBpZCUzRCUyMnYlNUJ6cGYlN0IlNUV1JTNETSU2MEMhMTg1dTVpJTNCJTIyJTNFJTNDbXV0YXRpb24lMjBuYW1lJTNEJTIyMSUyMFBoYXNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIyRGpUTiUyNUwwMFREJTVCJTYwUCUyNCpraklmUSUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX29wZXJhdGlvbiUyMiUyMGlkJTNEJTIyVzBPJTNESGwlMjQtM2xEJTdDYmhsVzklMkZheSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyZnIlM0Z0MyU0MCUzQSU3QyUyNTklN0JBTkElMjQ0QiUzRDJfJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VHVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMiUyNF9lOFMlM0RLfmdGJTJGJTdCJTQwcVVlcHVSSSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyeldmdyUzQlNSQ1AzJTdDJTIzJTNBQlQyNSU1RGg1JTIyJTNFYXZnX3ZhbHVlJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJQY2g3JTIzMkooNClsVCUyQyglN0NLeiUyNURJJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMzY4MCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyaiU1RGpLJTdDJTJGNU5PVCU1QndRWnI1bWVqMiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFRVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjIuJTQwUCUzQkwlNUUzeCFJWFBpMDYqSHZGJTNBJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJLeiolM0RXVEh+QU4lNjBJekYuZUtfaH4lMjIlM0VQaGFzZW4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMm0yaHk4LVZvKV9ZbSlRT3hQMGElMkIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19jYWxsbm9yZXR1cm4lMjIlMjBpZCUzRCUyMjAlMkNVJTYwJTYwODAuJTVFR0IlMkZVbzdkJTQwJTdCdTYlMjIlM0UlM0NtdXRhdGlvbiUyMG5hbWUlM0QlMjIzJTIwUGhhc2VuJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0aW1lb3V0c193YWl0JTIyJTIwaWQlM0QlMjJ2NzZRVEhUJTNBNiUyRmZGMSU3QkJQJTJCKEoxJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVklMjIlM0UxMCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRXNlYyUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmRlYnVnJTIyJTIwaWQlM0QlMjIlM0YlM0QlM0YlNjAlNUUlNjBPbnRCOSU3Ql9lbGQlM0JjSiU1RSUyMiUyMGRpc2FibGVkJTNEJTIydHJ1ZSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlNldmVyaXR5JTIyJTNFbG9nJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFdGVzdCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjIlNjAwJTVFS3AlN0RfRkslNjBPJTdEX1NSLXQlNjBtJTVFJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFbW9kYnVzLjAuaW5wdXRSZWdpc3RlcnMuMzA3NzVfYWt0dWVsbGVfTGVpc3R1bmclM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZGVidWclMjIlMjBpZCUzRCUyMkY3ZzAlNUJZIVR0ZjIha0lITSU3RGYoJTI1JTIyJTIwZGlzYWJsZWQlM0QlMjJ0cnVlJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0Vsb2clM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0V0ZXN0JTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJYYyUyM0wlMkMlMkJYeDdiJTNBZE5rJTYwdHdxN3klMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnpXZnclM0JTUkNQMyU3QyUyMyUzQUJUMjUlNURoNSUyMiUzRWF2Z192YWx1ZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJkZWJ1ZyUyMiUyMGlkJTNEJTIyJTQwSEclNUQoJTVEJTNBZXdWbHVUbmZjNm8lN0JMJTIyJTIwZGlzYWJsZWQlM0QlMjJ0cnVlJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0Vsb2clM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0V0ZXN0JTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjI5NU8wJTdDR2RUbyUzRk56X0dka3NzJTNGeCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyS3oqJTNEV1RIfkFOJTYwSXpGLmVLX2h+JTIyJTNFUGhhc2VuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJGYSUyQiohJTdEWUwoc34pQy1JTCU3QiUzQWhZJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyN3dFMkRTcTAlM0FGUGRmJTVCZCUyNV8zYyUzRiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFRVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMlhiTiU1RSUzRDVtJTI1dSUyRiU1RSUyMyU1RGQlN0NfLjJZViUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWtlY29udGFjdC4wLnBsdWclM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiUyQiU1RS4wZVolNjB4JTJGKE5vZyUzRiUyQkIlNUIpTkclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UzJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19mbG93X3N0YXRlbWVudHMlMjIlMjBpZCUzRCUyMiUzQSU1Qk1MKVdZaVM3JTdCJTJDWTQyeVIlN0N3ViUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkZMT1clMjIlM0VCUkVBSyUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIySGk5JTVFJTVCOWNvJTNGRCU1QmYlMjQyKH4lN0JQSkElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJlNWdnQiUyQlNPajQzJTNEU3IlMkJVQi4xRCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWtlY29udGFjdC4wLmF1dG9tYXRpYy5waG90b3ZvbHRhaWNzJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2Jvb2xlYW4lMjIlMjBpZCUzRCUyMnFJJTNBJTJCKC1ZJTI1SVloaXIyJTdEJTdDfk5hNSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8xJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19jYWxsbm9yZXR1cm4lMjIlMjBpZCUzRCUyMjI0bnkqakcqdCU3RHV2eUJiT2pmWHMlMjIlM0UlM0NtdXRhdGlvbiUyMG5hbWUlM0QlMjIzJTIwUGhhc2VuJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZGVidWclMjIlMjBpZCUzRCUyMi5XcUozJTNCVUVVfiU0MCUzQk1wJTVCd2JJTEwlMjIlMjBkaXNhYmxlZCUzRCUyMnRydWUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTZXZlcml0eSUyMiUzRWxvZyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXRlc3QlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMjV4VyU1RSUyRk9BJTQwZFluanphb1hiaSklNUQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMkt6KiUzRFdUSH5BTiU2MEl6Ri5lS19ofiUyMiUzRVBoYXNlbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkVMU0UlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2NhbGxub3JldHVybiUyMiUyMGlkJTNEJTIyb0JKaCUzQSU1Qk0lM0RWT1dNWmpLRjR0IVglMjIlM0UlM0NtdXRhdGlvbiUyMG5hbWUlM0QlMjIxJTIwUGhhc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJkZWJ1ZyUyMiUyMGlkJTNEJTIyY3YlMkIlNDB6QyliSEUlNUQlNjAlN0JwJTVEWnpIdTQlMjIlMjBkaXNhYmxlZCUzRCUyMnRydWUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTZXZlcml0eSUyMiUzRWxvZyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXRlc3QlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMiUyRi16VU0lNURKb0R2aTNkd0FUUXZhbiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyS3oqJTNEV1RIfkFOJTYwSXpGLmVLX2h+JTIyJTNFUGhhc2VuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2RlZm5vcmV0dXJuJTIyJTIwaWQlM0QlMjIlMkIlM0FCZldBOEo4diU1RFNKJTVCQldXcSU1RUclMjIlMjBjb2xsYXBzZWQlM0QlMjJ0cnVlJTIyJTIweCUzRCUyMi01NjIlMjIlMjB5JTNEJTIyLTYyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRTElMjBQaGFzZSUzQyUyRmZpZWxkJTNFJTNDY29tbWVudCUyMHBpbm5lZCUzRCUyMmZhbHNlJTIyJTIwaCUzRCUyMjgwJTIyJTIwdyUzRCUyMjE2MCUyMiUzRVNoZWxseSUyMHNjaGFsdGVuJTIwdW5kJTIwZGVuJTIwU2NoJUMzJUJDdHolMjBhdWYlMjAxJTIwUGhhc2UlMjBzY2hhbHRlbiUzQyUyRmNvbW1lbnQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBQ0slMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjIlM0Y4SksxJTYwX3glNDBmVS54TGgheSU1RWd6JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJLeiolM0RXVEh+QU4lNjBJekYuZUtfaH4lMjIlM0VQaGFzZW4lM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMkN4LiU1REVVJTIzfkdCeWtSKSglM0ZNamNLJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJIJTIzOCU1QiU1RGljUiglN0RETmxaYzVXZzVCJTIyJTNFJTNDbXV0YXRpb24lMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhodG1sJTIyJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFa2Vjb250YWN0LjAuYXV0b21hdGljLnBhdXNlV2FsbGJveCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2Jvb2xlYW4lMjIlMjBpZCUzRCUyMiU1RDlXIXZCRm8uJTQwT1R6MWROSHklMkYlMjMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0aW1lb3V0c193YWl0JTIyJTIwaWQlM0QlMjIlMjQ5dCUyM21nbiUyNFMyQnREKDU4TmIlMjUlM0QlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWSUyMiUzRTUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VzZWMlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ1cGRhdGUlMjIlMjBpZCUzRCUyMmQlNjAlM0FIenMoJTNCT2clN0RsMlF2JTIzVCU1RX5HJTIyJTNFJTNDbXV0YXRpb24lMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhodG1sJTIyJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFa2Vjb250YWN0LjAuYXV0b21hdGljLmNhbGNQaGFzZXMlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTdDczclMjMlNURZblBJRVUlMjRNJTJCbEElM0J1T0MlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX3doaWxlVW50aWwlMjIlMjBpZCUzRCUyMiUyQ3VaRiU1QllYUXVSeUUuJTVFJTNCJTVFZnRKJTdCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTU9ERSUyMiUzRVdISUxFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCT09MJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyNm9QKE4wdiU3Q2I0JTVFZCU1REslM0JlNCU1RU1IJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VHVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyJTI1SFhNekxHJTIzJTdDU2s1JTVCZUxQMUEyeiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWtlY29udGFjdC4wLmkxJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJKV0hiLVNVJTQwREpIJTVEVyU1RFElMkJKMCU0MCU1QiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfd2FpdCUyMiUyMGlkJTNEJTIyKFZxOFh1JTdDKiU3QyUyQmwlNjBnbHAlMkZVUlBZJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVklMjIlM0U1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjIlM0YlN0JNNCUyQyUyQk8lNUVVaGVIUFYlMkYlM0RGc0MlMkIlMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VzaGVsbHkuMC5TSFNXLTElMjM0ODU1MTkwMzE5N0QlMjMxLlJlbGF5MC5Td2l0Y2glM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjIqb3J+JTNEKSU3Ql8lNUV1aiUzQU1yS0t0OSlsJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3dhaXQlMjIlMjBpZCUzRCUyMiUyNHVESEclN0J3VlFKb0MhXyU1RSU1RSU3RERKOSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZJTIyJTNFMTAlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VzZWMlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjI3VUJ3KkRxc3YuRWw2OUMlN0Q1JTNBQkolMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VrZWNvbnRhY3QuMC5hdXRvbWF0aWMucGF1c2VXYWxsYm94JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyUUVCcjQ2bUhzaVV+XyFDZTVvZmclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfd2FpdCUyMiUyMGlkJTNEJTIyc0klMjVlJTJGeXh+RCFtYzUlNUVpbTBvYUolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWSUyMiUzRTEwJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyaSU0MERHKn5aNF8lNUJGJTYwfjAheWUlMjVBeSUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWtlY29udGFjdC4wLmVuYWJsZVVzZXIlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJMU3J2azBBMjg0b0daZiUyQ0ZGJTJCTCUzRCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnByb2NlZHVyZXNfZGVmbm9yZXR1cm4lMjIlMjBpZCUzRCUyMjRKcCU1RGpSfmNTdTElMjRaSEsxdSUyNGJXJTIyJTIwY29sbGFwc2VkJTNEJTIydHJ1ZSUyMiUyMHglM0QlMjItMzEyJTIyJTIweSUzRCUyMi02MiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0UzJTIwUGhhc2VuJTNDJTJGZmllbGQlM0UlM0Njb21tZW50JTIwcGlubmVkJTNEJTIyZmFsc2UlMjIlMjBoJTNEJTIyODAlMjIlMjB3JTNEJTIyMTYwJTIyJTNFU2hlbGx5JTIwc2NoYWx0ZW4lMjB1bmQlMjBkZW4lMjBTY2glQzMlQkN0eiUyMGF1ZiUyMDMlMjBQaGFzZW4lMjBzY2hhbHRlbiUzQyUyRmNvbW1lbnQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBQ0slMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjIlNUVYJTNEOE44LnUlMjVlJTNCJTdEUlhjJTJCTXR0TSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyS3oqJTNEV1RIfkFOJTYwSXpGLmVLX2h+JTIyJTNFUGhhc2VuJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIyUiUyNDVueCkwdTlvYyU1RDlETXMlNUJQQyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTMlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyJTQwdlB0ZCUyQjMwSzJoQiUyM1JFcU00X3glMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VrZWNvbnRhY3QuMC5hdXRvbWF0aWMucGF1c2VXYWxsYm94JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyRCU3QyF2Vy1hUiU2MDRFVCUzRiUyNUptNDYlNDA5JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfd2FpdCUyMiUyMGlkJTNEJTIyU0t5JTI0JTJGKVAlNjAlMjVGQ34lNDBuTWVKMlZuJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVklMjIlM0U1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydXBkYXRlJTIyJTIwaWQlM0QlMjIhNEN5eGYlNUVvck95eGtEKC01UyU1QmQlMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VrZWNvbnRhY3QuMC5hdXRvbWF0aWMuY2FsY1BoYXNlcyUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJLNTUuJTJDbyUyNUNLRCUyNVRRYiUyM1p4blIxJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMyUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc193aGlsZVVudGlsJTIyJTIwaWQlM0QlMjJiKCU1RXZLdyU1RUNvUkZnS1klN0NmbDUlM0ZLJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTU9ERSUyMiUzRVdISUxFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCT09MJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyJTdDWmF2Lkd6MSpSaE0lNDAyU3cuWSEtJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VHVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyJTJDIUdpRzhJbVQlMkIlM0ElMkJLa1RXRGVDJTI1JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFa2Vjb250YWN0LjAuaTElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMlFrVFJud1QxSDUyMCktWEpTaFMlNUUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETyUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3dhaXQlMjIlMjBpZCUzRCUyMiUzRiUzQVlBTVQpYSglMkNKRVYyYkxpUCgtJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVklMjIlM0U1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjIlM0ElM0QlMjNxJTJDN3JvTnh0JTNBJTNBU1glM0EpalRrJTIyJTNFJTNDbXV0YXRpb24lMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhodG1sJTIyJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFc2hlbGx5LjAuU0hTVy0xJTIzNDg1NTE5MDMxOTdEJTIzMS5SZWxheTAuU3dpdGNoJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyTiglNURzYU16ciUzREF2R2wlM0QlMjNLX2lUISUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3dhaXQlMjIlMjBpZCUzRCUyMkVxJTNCS1ZyYSU1RUl4eHVfTG0oQSlrbiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZJTIyJTNFMTAlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VzZWMlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjIlM0QuQ0h6JTNCJTNBKiUzQiUzRik4Z29BbiU1RHowKCUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWtlY29udGFjdC4wLmF1dG9tYXRpYy5wYXVzZVdhbGxib3glM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJZeHhuKDl3KCpaa3NRJTVCQUtZZ3UpJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3dhaXQlMjIlMjBpZCUzRCUyMjVoSCUzQXNPJTIzWmZGaEpObGVQYyolN0RHJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVklMjIlM0UxMCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRXNlYyUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiUyNWZCbyU3Q09qYnh1XzdFVmxVVSUzRjNvJTIyJTNFJTNDbXV0YXRpb24lMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhodG1sJTIyJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFa2Vjb250YWN0LjAuZW5hYmxlVXNlciUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2Jvb2xlYW4lMjIlMjBpZCUzRCUyMjAtYi5LMSUzRDRzQkhHcFB4bCUyNTVhJTJCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyYXN0cm8lMjIlMjBpZCUzRCUyMlctQTJMekNBXzk5QlFvT2doZEslMkIlMjIlMjB4JTNEJTIyLTUzNyUyMiUyMHklM0QlMjIzOSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRZUEUlMjIlM0VzdW5yaXNlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPRkZTRVQlMjIlM0UxJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMjIlMjRTJTQwNXQxNSUyNDBKY2ZzcXE5NCUyM3AlMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJoLVhkenJpVjVMemN4WHh3ZTBsQSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFRVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMmJZITZpITA3bEklM0RycDYlM0RmU3UxMSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWtlY29udGFjdC4wLnBsdWclM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMkxSbS0hMXhjVyUzQlRmOXJwS0MwMm8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0U3JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjIlM0RaYi51bFAlN0MlMkNjZFFfdm9GSUprcyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTNCJTI1aiEzbVdXdjZ3JTNGUDZQZnBiflElMjIlM0VUYWclM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU3RHBlME96NWwlM0F5WCUyRkF+Rm9qcDdKJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnhtbCUzRQ==
-
@pengo sagte in [Frage] Realisierung Adapter UDP Keba Wallbox:
wie kann ich hier ein Blockly Code einfügen?
Einfach exportieren über den ioBroker Admin und dann die xml hier in code tags posten.
-
@darkiop Danke
Jetzt als Blockly
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id=";%j!3mWWv6w?P6Pfpb~Q">Tag</variable> <variable id="Kz*=WTH~AN`IzF.eK_h~">Phasen</variable> <variable id="?qT3C,*0.0d@tEJwOM$n">powerlist</variable> <variable id="~o%t(DS,}oI?=g#.d]7J">zaehler</variable> <variable id="zWfw;SRCP3|#:BT25]h5">avg_value</variable> </variables> <block type="on_ext" id="gJc@E|sytq_vv`9Mczq1" x="-1404" y="-669"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="3"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="pxSA._6!wqGL3@EF;.7s"> <field name="oid">default</field> </shadow> <block type="field_oid" id="?oBk.xY8yO2o~(aEa6}V"> <field name="oid">kecontact.0.plug</field> </block> </value> <value name="OID1"> <shadow type="field_oid" id="JpgNdw@075^h=A2^#S[R"> <field name="oid">default</field> </shadow> <block type="field_oid" id="1pXd1VbAe}C{i/sEX79("> <field name="oid">kecontact.0.automatic.photovoltaics</field> </block> </value> <value name="OID2"> <shadow type="field_oid" id="_YA//7dKi==[q]xQ|Zgz"> <field name="oid">default</field> </shadow> <block type="variables_get" id="ZARk-pNuJQO^.IK(+R{E"> <field name="VAR" id=";%j!3mWWv6w?P6Pfpb~Q">Tag</field> </block> </value> <statement name="STATEMENT"> <block type="controls_if" id="1DF:y.#c0$ej~g/kz_HA"> <value name="IF0"> <block type="logic_compare" id="qLN_PsFJQ?%Md?f;?XAp"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="[%Jrc_Pw/joj%^Ra=T6#"> <field name="ATTR">val</field> <field name="OID">kecontact.0.plug</field> </block> </value> <value name="B"> <block type="math_number" id="8[9[SJbu//EP`E9t+9wt"> <field name="NUM">7</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="Jd71CR]]e1@3pE:2F;I{"> <mutation elseif="1" else="1"></mutation> <value name="IF0"> <block type="logic_operation" id=".:]L$1i!TK|,J{hv~](+"> <field name="OP">AND</field> <value name="A"> <block type="time_compare_ex" id="DD@z9]!sK+3|lWG3_|tt"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"> <shadow type="text" id="k1565E2`!j5^N`n?3+Cp"> <field name="TEXT">12:00</field> </shadow> <block type="time_astro" id="$#`=uFL#clGae_N8y4EK"> <field name="TYPE">sunrise</field> <field name="OFFSET">0</field> </block> </value> <value name="END_TIME"> <shadow type="text" id="l8pS7gG_md[WNkG_l]U]"> <field name="TEXT">18:00</field> </shadow> <block type="time_astro" id="|2A:7C48,[_QJ7g%3cG?"> <field name="TYPE">sunset</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="QwZi.P?5`L[`v:O(8s#8"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="@gMy(4P+_9|?tGG5;G4E"> <field name="ATTR">val</field> <field name="OID">kecontact.0.automatic.photovoltaics</field> </block> </value> <value name="B"> <block type="logic_boolean" id="]gZA[Rp-_2(`?Lh/3Er["> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="%:1t?M836@!R4eZtfeC}"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="i}MPD=l;GiY(zvOfBx{l"> <field name="OP">GTE</field> <value name="A"> <block type="math_arithmetic" id="~](NLB2L*F?KWJbb6$MZ"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="fhA]|nN0vb!f^?w)pj2x"> <field name="ATTR">val</field> <field name="OID">sma-em.0.3014002797.psurplus</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="`kH900CY#FJ,s1}#LbVy"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Neuer_Ordner.Ladeleistung</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="%]4UBw8F%Noz5Jrqz}xg"> <field name="NUM">3680</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="Jk3ooL=7}i`~inV)BtaO"> <mutation name="3 Phasen"></mutation> </block> </statement> <statement name="ELSE"> <block type="procedures_callnoreturn" id="7*{HVtyGY|:DS}wHi7TY"> <mutation name="1 Phase"></mutation> </block> </statement> <next> <block type="timeouts_wait" id="IRzdL~4PNLAHe9(Z|sxU"> <field name="DELAY">10</field> <field name="UNIT">sec</field> <next> <block type="variables_set" id="0aa?[W^Eiz/+s!b_cjv:"> <field name="VAR" id="?qT3C,*0.0d@tEJwOM$n">powerlist</field> <value name="VALUE"> <block type="lists_create_with" id="l{)ggJUIC^MB5~HnpkK"> <mutation items="1"></mutation> <value name="ADD0"> <block type="lists_repeat" id="qTquchIQ2hsLO@+nwdb"> <value name="NUM"> <shadow type="math_number" id="OOxCj9]M~w6x,4GjIY1w"> <field name="NUM">90</field> </shadow> </value> <value name="ITEM"> <block type="math_number" id="}J@R=hD{b4@:1|m;fr@1"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="_wJwOrDH[-@z)7#f.]~d"> <field name="VAR" id="~o%t(DS,}oI?=g#.d]7J">zaehler</field> <value name="VALUE"> <block type="math_number" id="^1qClPKO)byi*^}yrl"> <field name="NUM">1</field> </block> </value> <next> <block type="controls_whileUntil" id="pxE2b$GJV.9~:Q8h^7Ee"> <field name="MODE">WHILE</field> <value name="BOOL"> <block type="logic_operation" id="1g50E=9^_h^uI5s6h%C+"> <field name="OP">AND</field> <value name="A"> <block type="time_compare_ex" id="q:9bT$__a,F#S$Hbr*=H"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="false" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION"><</field> <value name="START_TIME"> <shadow type="text" id="-(uX=7/_=.VdnqJ.1[MK"> <field name="TEXT">12:00</field> </shadow> <block type="time_astro" id="V9Uk=V)Tj5:#@fhy%L=l"> <field name="TYPE">sunset</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="U!,b?(N.8Tq,P,GF@PhV"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=",2u?eKSdhP%]@e(l!}lb"> <field name="ATTR">val</field> <field name="OID">kecontact.0.automatic.photovoltaics</field> </block> </value> <value name="B"> <block type="math_number" id="PrJ8)EhLWreQ0ZoW9;Gy"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> <statement name="DO"> <block type="lists_setIndex" id="i[9ekb#FxDO[Q,XJUf%z"> <mutation at="true"></mutation> <field name="MODE">SET</field> <field name="WHERE">FROM_START</field> <value name="LIST"> <block type="variables_get" id="r]E9:0GGU,7t#Tqmsr0A"> <field name="VAR" id="?qT3C,*0.0d@tEJwOM$n">powerlist</field> </block> </value> <value name="AT"> <block type="variables_get" id="OEy#cK{(ocW-W/P=0REj"> <field name="VAR" id="~o%t(DS,}oI?=g#.d]7J">zaehler</field> </block> </value> <value name="TO"> <block type="math_arithmetic" id="L.Nc4fAgMKYx8#LM^ROQ"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id=";atn8^a[)rxSfRQ+~1=`"> <field name="NUM">1</field> </shadow> <block type="get_value" id="vGh?.Xe$!IgoeLlRPMmc"> <field name="ATTR">val</field> <field name="OID">sma-em.0.3014002797.psurplus</field> </block> </value> <value name="B"> <shadow type="math_number" id="o`9t[Y(mW,UQ|Et{)Skm"> <field name="NUM">1</field> </shadow> <block type="get_value" id="X/o+}8`]%tlU:z6g3_NP"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Neuer_Ordner.Ladeleistung</field> </block> </value> </block> </value> <next> <block type="controls_if" id="x(3]2/PR=(yMJ}uG?Uh,"> <value name="IF0"> <block type="logic_compare" id="HsSrLZlMD0fDvd}LBHRP"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="YPHVohUdGN/YmEVD{v"> <field name="VAR" id="~o%t(DS,}oI?=g#.d]7J">zaehler</field> </block> </value> <value name="B"> <block type="math_number" id="OG6z9tzsrW|MVnF@N590"> <field name="NUM">90</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="}26op)#ACFS@6GCrqdsM"> <field name="VAR" id="~o%t(DS,}oI?=g#.d]7J">zaehler</field> <value name="VALUE"> <block type="math_number" id=":U2HH_Tw43Z9dw[B(E0Z"> <field name="NUM">0</field> </block> </value> </block> </statement> <next> <block type="math_change" id=")DYK%F553DwziokE]-p*"> <field name="VAR" id="~o%t(DS,}oI?=g#.d]7J">zaehler</field> <value name="DELTA"> <shadow type="math_number" id="B8xv]2@}Pt8_lYV;Y6D"> <field name="NUM">1</field> </shadow> </value> <next> <block type="variables_set" id="7j-hdnljTg~+n;hMm#j"> <field name="VAR" id="zWfw;SRCP3|#:BT25]h5">avg_value</field> <value name="VALUE"> <block type="math_on_list" id="b)d0^t{W1V#)z47Z1h("> <mutation op="AVERAGE"></mutation> <field name="OP">AVERAGE</field> <value name="LIST"> <block type="variables_get" id="r-/qP?MC)4!OxRnYex/F"> <field name="VAR" id="?qT3C,*0.0d@tEJwOM$n">powerlist</field> </block> </value> </block> </value> <next> <block type="controls_if" id="~3G2l5V:d%5:9r1Gh65a"> <value name="IF0"> <block type="logic_operation" id="Rnz{F~e|SAqLdK5FN^]1"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="%SHZ{_Yo:eV?^e9BH}7b"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id=".{+=~e!Kcru]Bsy{@^bj"> <field name="VAR" id="zWfw;SRCP3|#:BT25]h5">avg_value</field> </block> </value> <value name="B"> <block type="math_number" id="RD^DjqZTL.16k9)@l5,*"> <field name="NUM">3450</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="R7?I%@NFcd:v:RE#_o35"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="MZnc5q(eNWL%}C68lLKx"> <field name="VAR" id="Kz*=WTH~AN`IzF.eK_h~">Phasen</field> </block> </value> <value name="B"> <block type="math_number" id="MZ9w:y@hDsj4Ou]Eczo;"> <field name="NUM">3</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="v[zpf{^u=M`C!185u5i;"> <mutation name="1 Phase"></mutation> </block> </statement> <next> <block type="controls_if" id="DjTN%L00TD[`P$*kjIfQ"> <value name="IF0"> <block type="logic_operation" id="W0O=Hl$-3lD|bhlW9/ay"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="fr?t3@:|%9{ANA$4B=2_"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="$_e8S=K~gF/{@qUepuRI"> <field name="VAR" id="zWfw;SRCP3|#:BT25]h5">avg_value</field> </block> </value> <value name="B"> <block type="math_number" id="Pch7#2J(4)lT,(|Kz%DI"> <field name="NUM">3680</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="j]jK|/5NOT[wQZr5mej2"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id=".@P;L^3x!IXPi06*HvF:"> <field name="VAR" id="Kz*=WTH~AN`IzF.eK_h~">Phasen</field> </block> </value> <value name="B"> <block type="math_number" id="m2hy8-Vo)_Ym)QOxP0a+"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="0,U``80.^GB/Uo7d@{u6"> <mutation name="3 Phasen"></mutation> </block> </statement> <next> <block type="timeouts_wait" id="v76QTHT:6/fF1{BP+(J1"> <field name="DELAY">10</field> <field name="UNIT">sec</field> <next> <block type="debug" id="?=?`^`OntB9{_eld;cJ^" disabled="true"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="get_value" id="`0^Kp}_FK`O}_SR-t`m^"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30775_aktuelle_Leistung</field> </block> </value> <next> <block type="debug" id="F7g0[Y!Ttf2!kIHM}f(%" disabled="true"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="Xc#L,+Xx7b:dNk`twq7y"> <field name="VAR" id="zWfw;SRCP3|#:BT25]h5">avg_value</field> </block> </value> <next> <block type="debug" id="@HG](]:ewVluTnfc6o{L" disabled="true"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="95O0|GdTo?Nz_Gdkss?x"> <field name="VAR" id="Kz*=WTH~AN`IzF.eK_h~">Phasen</field> </block> </value> <next> <block type="controls_if" id="Fa+*!}YL(s~)C-IL{:hY"> <value name="IF0"> <block type="logic_compare" id="7wE2DSq0:FPdf[d%_3c?"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="XbN^=5m%u/^#]d|_.2YV"> <field name="ATTR">val</field> <field name="OID">kecontact.0.plug</field> </block> </value> <value name="B"> <block type="math_number" id="+^.0eZ`x/(Nog?+B[)NG"> <field name="NUM">3</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_flow_statements" id=":[ML)WYiS7{,Y42yR|wV"> <field name="FLOW">BREAK</field> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="Hi9^[9co?D[f$2(~{PJA"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="e5ggB+SOj43=Sr+UB.1D"> <field name="ATTR">val</field> <field name="OID">kecontact.0.automatic.photovoltaics</field> </block> </value> <value name="B"> <block type="logic_boolean" id="qI:+(-Y%IYhir2}|~Na5"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO1"> <block type="procedures_callnoreturn" id="24ny*jG*t}uvyBbOjfXs"> <mutation name="3 Phasen"></mutation> <next> <block type="debug" id=".WqJ3;UEU~@;Mp[wbILL" disabled="true"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="5xW^/OA@dYnjzaoXbi)]"> <field name="VAR" id="Kz*=WTH~AN`IzF.eK_h~">Phasen</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="procedures_callnoreturn" id="oBJh:[M=VOWMZjKF4t!X"> <mutation name="1 Phase"></mutation> <next> <block type="debug" id="cv+@zC)bHE]`{p]ZzHu4" disabled="true"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="/-zUM]JoDvi3dwATQvan"> <field name="VAR" id="Kz*=WTH~AN`IzF.eK_h~">Phasen</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> <block type="procedures_defnoreturn" id="+:BfWA8J8v]SJ[BWWq^G" collapsed="true" x="-562" y="-62"> <field name="NAME">1 Phase</field> <comment pinned="false" h="80" w="160">Shelly schalten und den Schütz auf 1 Phase schalten</comment> <statement name="STACK"> <block type="variables_set" id="?8JK1`_x@fU.xLh!y^gz"> <field name="VAR" id="Kz*=WTH~AN`IzF.eK_h~">Phasen</field> <value name="VALUE"> <block type="math_number" id="Cx.]EU#~GBykR)(?MjcK"> <field name="NUM">1</field> </block> </value> <next> <block type="control" id="H#8[]icR(}DNlZc5Wg5B"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">kecontact.0.automatic.pauseWallbox</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="]9W!vBFo.@OTz1dNHy/#"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_wait" id="$9t#mgn$S2BtD(58Nb%="> <field name="DELAY">5</field> <field name="UNIT">sec</field> <next> <block type="update" id="d`:Hzs(;Og}l2Qv#T^~G"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">kecontact.0.automatic.calcPhases</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="|s7#]YnPIEU$M+lA;uOC"> <field name="NUM">1</field> </block> </value> <next> <block type="controls_whileUntil" id=",uZF[YXQuRyE.^;^ftJ{"> <field name="MODE">WHILE</field> <value name="BOOL"> <block type="logic_compare" id="6oP(N0v|b4^d]K;e4^MH"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="%HXMzLG#|Sk5[eLP1A2z"> <field name="ATTR">val</field> <field name="OID">kecontact.0.i1</field> </block> </value> <value name="B"> <block type="math_number" id="JWHb-SU@DJH]W]Q+J0@["> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO"> <block type="timeouts_wait" id="(Vq8Xu|*|+l`glp/URPY"> <field name="DELAY">5</field> <field name="UNIT">sec</field> </block> </statement> <next> <block type="control" id="?{M4,+O^UheHPV/=FsC+"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#48551903197D#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="*or~=){_^uj:MrKKt9)l"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_wait" id="$uDHG{wVQJoC!_^^}DJ9"> <field name="DELAY">10</field> <field name="UNIT">sec</field> <next> <block type="control" id="7UBw*Dqsv.El69C}5:BJ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">kecontact.0.automatic.pauseWallbox</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="QEBr46mHsiU~_!Ce5ofg"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_wait" id="sI%e/yx~D!mc5^im0oaJ"> <field name="DELAY">10</field> <field name="UNIT">sec</field> <next> <block type="control" id="i@DG*~Z4_[F`~0!ye%Ay"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">kecontact.0.enableUser</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="LSrvk0A284oGZf,FF+L="> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="4Jp]jR~cSu1$ZHK1u$bW" collapsed="true" x="-312" y="-62"> <field name="NAME">3 Phasen</field> <comment pinned="false" h="80" w="160">Shelly schalten und den Schütz auf 3 Phasen schalten</comment> <statement name="STACK"> <block type="variables_set" id="^X=8N8.u%e;}RXc+MttM"> <field name="VAR" id="Kz*=WTH~AN`IzF.eK_h~">Phasen</field> <value name="VALUE"> <block type="math_number" id="2R$5nx)0u9oc]9DMs[PC"> <field name="NUM">3</field> </block> </value> <next> <block type="control" id="@vPtd+30K2hB#REqM4_x"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">kecontact.0.automatic.pauseWallbox</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="D|!vW-aR`4ET?%Jm46@9"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_wait" id="SKy$/)P`%FC~@nMeJ2Vn"> <field name="DELAY">5</field> <field name="UNIT">sec</field> <next> <block type="update" id="!4Cyxf^orOyxkD(-5S[d"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">kecontact.0.automatic.calcPhases</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="K55.,o%CKD%TQb#ZxnR1"> <field name="NUM">3</field> </block> </value> <next> <block type="controls_whileUntil" id="b(^vKw^CoRFgKY|fl5?K"> <field name="MODE">WHILE</field> <value name="BOOL"> <block type="logic_compare" id="|Zav.Gz1*RhM@2Sw.Y!-"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id=",!GiG8ImT+:+KkTWDeC%"> <field name="ATTR">val</field> <field name="OID">kecontact.0.i1</field> </block> </value> <value name="B"> <block type="math_number" id="QkTRnwT1H520)-XJShS^"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO"> <block type="timeouts_wait" id="?:YAMT)a(,JEV2bLiP(-"> <field name="DELAY">5</field> <field name="UNIT">sec</field> </block> </statement> <next> <block type="control" id=":=#q,7roNxt::SX:)jTk"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#48551903197D#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="N(]saMzr=AvGl=#K_iT!"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_wait" id="Eq;KVra^Ixxu_Lm(A)kn"> <field name="DELAY">10</field> <field name="UNIT">sec</field> <next> <block type="control" id="=.CHz;:*;?)8goAn]z0("> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">kecontact.0.automatic.pauseWallbox</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Yxxn(9w(*ZksQ[AKYgu)"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_wait" id="5hH:sO#ZfFhJNlePc*}G"> <field name="DELAY">10</field> <field name="UNIT">sec</field> <next> <block type="control" id="%fBo|Ojbxu_7EVlUU?3o"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">kecontact.0.enableUser</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="0-b.K1=4sBHGpPxl%5a+"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="astro" id="W-A2LzCA_99BQoOghdK+" x="-537" y="39"> <field name="TYPE">sunrise</field> <field name="OFFSET">1</field> <statement name="STATEMENT"> <block type="controls_if" id="2$S@5t15$0Jcfsqq94#p"> <value name="IF0"> <block type="logic_compare" id="h-XdzriV5LzcxXxwe0lA"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="bY!6i!07lI=rp6=fSu11"> <field name="ATTR">val</field> <field name="OID">kecontact.0.plug</field> </block> </value> <value name="B"> <block type="math_number" id="LRm-!1xcW;Tf9rpKC02o"> <field name="NUM">7</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="=Zb.ulP|,cdQ_voFIJks"> <field name="VAR" id=";%j!3mWWv6w?P6Pfpb~Q">Tag</field> <value name="VALUE"> <block type="math_number" id="}pe0Oz5l:yX/A~Fojp7J"> <field name="NUM">1</field> </block> </value> </block> </statement> </block> </statement> </block> </xml>
Ist es so OK?
-
Aktuell bin ich dabei, eine 1p/3-Steuerung für die Wallbox zu implementieren, muss aber erst noch ein wenig programmieren und dann den Schütz einbauen.
In der Zwischenzeit habe ich ma die 3. Phase der Wallbox abgeklemmt, um gerade jetzt im Winter mit 2 Phasen und damit bereits ab 2.760W Überschuss zu laden.
Dabei fiel mir heute auf, dass der ID.3 sehr flexibel ist und wohl allen Strom nimmt, den er bekommen kann:
Ich hatte die Wallbox auf volle Ladeleistung gestellt, da mir gerade die Sonne, aber auch der Strom im Akku fehlt.
In diesem Fall lädt er mit 32A auf Phase 1 und 16A auf Phase 2, so dass er selbt bei 2 Phasen auf die volle Ladesteitung von 11 kW kommt. Da finde ich erstaunlich aber auch cool. Vermutlich geht es, wiel der Lader auf Phase 1 eben bis 32 A ausgelegt ist, um auch einphasig mit 7,6 kW laden zu können.Ich dachte eigentlich, dass die Keba von sich aus hier eine Schieflast begrenzt. Aber entweder sind 32A/16A/0A keine Schieflast oder die Wallbox macht es doch nicht.
Aber dann dürfte die Wallbox so ja garn icht in Deutschland laufen, denn normalerweise würde sie ja immer mit voller Leistung laden... -
Hallo,
ich habe eine Keba P30c v 3.10.36 (211117-093932) und in iobroker (1.5.2) eingebunden. Ich sehe die Keba auch und kann Werte auslesen. z.b. Firmware oder kecontact.0.statistics.lastChargeAmount etc. Leider bleiben bei mir das Feld: kecontact.0.statistics.rfid_tag leer. Ich habe im Debug Log folgenden Fehler:Unknown Session value received: RFID tag=0f4XXXXXX0000000
aber auch
Unknown Session value received: RFID class=00000000000000000000
und weitere ..Wenn ich über ein UDP Tool report 100 hole, bekomme ich auch den RFID tag
Könnt Ihr mir helfen?
Danke
shiva -
@shiva-mann Hallo Shiva, das ist komisch. Ich sehe die Logik und auch den Key, der dafür im Adapter definiert ist.
Gibt es bei Dir bei den Channel "Sessions" udn die States "Sessions.Session_nn" bzw. hast du den Schalter "lade letzte Ladesitzungen" in den Einstellungen aktiviert?
Falls nein, probiere mal, diese zu aktivieren und schau, ob der Fehler weg und dafür die Werte da sind.Ich vermute, dass es der Adapter derezeit nur mit Vorhandensein der Ladesitzungen hinbekommt. Falls dem so ist, passe ich das entpsrechend an.
-
@Shiva-Mann Ach ja, jetzt sehe ich es. Schlecht programmiert. Über den Schalter werden nicht nur die Session-Werte für vergangene Sessions deaktiviert sondern auch die der aktuellen Session.
Mir sind die Meldungen bishern icht aufgefallen, weil sie nur im Debug-Level ausgegeben werden.
Also mach einmal die Option "lade letzte Ladesitzungen" an. Dann kannst Du die Option wieder ausmachen und alle Sessions_01 bis Session_nn löschen (nur die Session_00 stehen lassen).
Dann sollte es erstmal gehen.
Den Rest passe ich mit der nächsten Version an. Kannst aber schon testen, wenn Du die Version von github installierst. -
@sneak-l8
Super jetzt funktioniert es Tausend Dank!
Ich habe die neuste Version aus dem GIT installiert, jetzt wird meine RFID_Tag angezeigt.
Great Job! -
Hmm bei mir ist der Tag auch leer, wie kann ich den RFID Tag rausfinden, ich brauchen den ja um automatisch zu laden oder?
Momentan halte ich mein Token immer vor die Wallbox damit der zu laden anfängt -
@malz1902 Hast Du es mal mit der Version von github probiert? Wenn du die nicht nutzen willst, dann aktiviere mal das Laden der letzten Ladesessions. solange dann die Sessions in den Datenpunkten drinstehen, sollten rfid_class und rfid_tag gefüllt werden.
Danach kannst du die Option wieder rausnehmen und auch die Ladesessions löschen.
In einer neuen Version wird das dann behoben sein. Die braucht aber noch etwas. Muss jetzt mal meinen Installationsschhütz morgen einbauen und dann testen, ob das Umschalten auf zunächst (bei wenig PV-Überschuss) 1-phasigen und später auf 3-phasiges Laden auch klappt. -
Github Version klappt, danke
-
Hallo zusammen und einen schönen Abend
Mir ist gerade aufgefallen, das ich die Lade/Verbrauchsdaten meiner Keba noch nicht logge ... g
Was schreibt ihr Weg und von welchen DPs?
Interessant wäre:
- Summe Tag in kWh
- Davon jeweils Netzbezug und PV - auch jeweils in kWh
Muss später mal die vorhandenen DPs durchschauen und prüfen mit welchen ich zu meiner Anforderung komme.
-
@darkiop Hallo über den Rhein
unter kecontact.0.statistics.lastChargeFinish findest Du immer den Strombezug der letzten Ladesitzung. Und kecontact.0.eTotal könntest du im 24h-Rhythmus loggen. Also einfach über den SQL-Adapter in ne DB schreiben.
Den Unterschied Netzbezug und PV-Leistung wird schwierig zu ermitteln... -
@sneak-l8 sagte in [Frage] Realisierung Adapter UDP Keba Wallbox:
Hallo über den Rhein
Zurück
@sneak-l8 sagte in [Frage] Realisierung Adapter UDP Keba Wallbox:
kecontact.0.statistics.lastChargeFinish
Hab jetzt auch mal geschaut, und
kecontact.0.statistics.lastChargeAmount
in die DB aufgenommen.
Und mit
kecontact.0.eTotal
lässt sich die Tagesmenge berechnen. Danke für den Hinweis, irgenwie übersehen
@sneak-l8 sagte in [Frage] Realisierung Adapter UDP Keba Wallbox:
Den Unterschied Netzbezug und PV-Leistung wird schwierig zu ermitteln...
Wäre aber Interessant ... g
-
über welchen state kann man das laden starten?
-
wie genau klappt das? was muss bei dem state eintragen?
-
@malz1902 Kannst Du die Frage etwas konkretisieren?
Denn pauschal würde ich sagen: Du kannst das Laden starten, in dem Du die Automatik (kecontact.0.automatic.photovoltaics auf false) ausschaltest oder für genügend Stromüberschuss sorgst. -
@sneak-l8 said in [Frage] Realisierung Adapter UDP Keba Wallbox:
@malz1902 Kannst Du die Frage etwas konkretisieren?
Denn pauschal würde ich sagen: Du kannst das Laden starten, in dem Du die Automatik (kecontact.0.automatic.photovoltaics auf false) ausschaltest oder für genügend Stromüberschuss sorgst.Pv automatik steht auf false da noch keine pv Anlage. Ich würde das Laden gerne per iobroker starten, da ich manchmal meinen rfid chip vergesse und dann könnte ich das Laden später am Pc starten. Jedoch weiß ich nicht wie ich das machen muss.
Hatte bei dem state start rfid class und rfid tag eingegeben aber auch dann fing das Laden nicht an
-
@malz1902 Ich nutze leider keine Freigabe, habe die Funktion daher nur auf Anforderung anderer eingebaut.
Aber es müsste gehen, indem Du kecontact.0.start mit id und class befüllst. Laut Keba-Doku sind das ein 8 und 10 byte hex string. Die Werte müssen ggf. auch als autorisierter Lader freigegbeen sein.
Wenn Du mit der vorhandenen Karte die Ladung freigibst, dann solltest du deren Werte unter kecontact.0.statistics.rfid_tag und kecontact.0.statistics.rfid_class finden. -
@sneak-l8
ja unter kecontact.0.statistics.rfid_tag und kecontact.0.statistics.rfid_class stehen auch die beiden keys.
Habe unter kecontact.0.start dann folgendes eingegeben: dxxxxxx000000000 axxxxxx8000000000000 und auch [dxxxxxx000000000] [axxxxxx8000000000000] aber beides klappte nicht. Muss das ganze ein besonderes Format sein? Hat das evtl. schonmal einer probiert